de46fb0365
Dragging the terminal to the bottom stacks logs into its zone, and every tool-panel toggle broke in that stack. Boot revealed instead of leaving the tree alone: bindPaneCollapse ran setPaneCollapsed(id, !open), and `false` there fronts the pane. Logs binds last, so it stole the active tab from the persisted tree. Ctrl-` then asked to collapse a terminal that was no longer the active tab, the shared-zone branch declined by design, and the key did nothing until the stack was broken up. Boot now only ever collapses. The toggles also asked the wrong question. !$terminalTakeover.get() flips a boolean that has no idea what is on screen, so once anything else moved the pane the press spent itself re-asserting a value the store already held. toggleToolPane derives from the tree instead, and ctrl-`, Cmd+J's terminal fallback, the statusbar button and the logs palette row all route through it. The terminal cycle/close keys drop the same stale boolean. bindPaneCollapse moves into the tree store as bindToolPaneCollapse so the boot rule is testable against the real function rather than a copy.