2350f4dc60
Re-fronting the Bots home tab is a close followed by a re-open, which tears down and rebuilds the entire Bots view. `openBotsHomeWorkspace` took that path on EVERY passive reconcile that found the tab open but not holding its zone's active slot, with nothing bounding the retries. That condition is not always transient. `revealTreePane` returns early for a pane in `$hiddenTreePanes` without ever activating it, `isPaneVisible` is false for a minimized zone, and a pane the tree never adopted has no group to be active in. Pinned in any of those states, every signal that reaches a surface sync — sidebar visibility flips, focus churn, group changes — bought one more full remount, and the view visibly strobed. A passive reconcile now gets one attempt. The reveal has already granted or refused the active slot by the time `openWorkspace` returns, so the budget settles on that answer directly instead of waiting for a visibility notification that is not coming: a computed store stays silent when the value does not change. Retiring the tab starts a fresh budget, and an explicit gesture is never blocked. Giving up keeps the surface rather than closing it — a closed home drops the Bots tab through to the ownerless Sessions composer, which is the hole the home exists to plug.