Thanks again for the heads-up on the observer. I was unaware it’s not recommended.
I removed it everywhere except the composer (the live preview and the # dropdown), since no hook is available for those. And instead of watching the whole page, each one now just watches its own little area.
If a Discourse update ever changes things and it stops working, the composer would just show the full “Parent > Child” name like it normally does. ![]()