TreeStore.insert_before/after no longer behaves as documented when parent=None and row is provided.
Following 908d099c and !48 (merged) (included in release 3.29.1) TreeStore.insert_before/after can no longer be called with parent=None if row is provided. Under these circumstances insertion is performed using TreeStore._do_insert and TreeStore.insert_with_values, which take a positional argument relative to the parent but if the parent is None then this is interpreted as being relative to the root of the tree rather than the depth in the tree at which the sibling was.
This is a change in behavior from before !48 (merged) and contradicts (my interpretation of) the documentation (https://lazka.github.io/pgi-docs/#Gtk-3.0/classes/TreeStore.html#Gtk.TreeStore.insert_after), which states: "When sibling is set, parent is optional."