To fix T2241, a new method of Interfaces was created, add_to_bridge(), to allow any interface to add itself to the bridge when it needs to, not only when the bridge interface code is ran. The port config was already moved out to vyos.util.get_bridge_member_config() to allow it to be queried from different places.
The only thing left to do is apply this member/port config in add_to_bridge.
The current interfaces-bridge.py code uses the STP class, I'm not exactly sure how it was meant to operate - it seems to extend an empty BridgeIf class with STP STPBridgeIf= STP.enable(BridgeIf), but then applies its methods to a member interface i = STPBridgeIf(member['name']); i.set_arp_cache_tmo(member['arp_cache_tmo']). Confusingly STP.enable doesn't seem to enable STP at all, it just extends the class it was passed with its own methods for STP.
It's all pretty confusing to me and I'd appreciate the owner of that code to sort this out.