feat(web): add an open-monitoring-column button to the server list

When a server is connected, has monitor screens to show, and the monitoring
column isn't open, show an "open monitoring column" button to the right of the
list expand/collapse toggle on the server list. It reuses PinColumnButton (the
same right-sidebar affordance the monitor screens use, now with an optional
label), so opening the column is reachable from the server list — not only from
a monitor screen's pin button. InspectorView gates it on
`canPin && monitorAvailable.length > 0 && !effectivePinned`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BrihGWcrM9JGRyu41nzZYw
This commit is contained in:
cliffhall 2026-07-10 20:23:27 -04:00
commit 0c6fafbf60

View file

@ -850,6 +850,10 @@ export function InspectorView({
// column. Gated by `canPin` so the pin affordance only appears when a click
// would actually take effect (wide + connected).
const canPin = !!isWide && connected;
// Offer an "open monitoring column" affordance on the server list when a
// connected server has monitor screens to show but the column isn't open yet.
const canOpenMonitor =
canPin && monitorAvailable.length > 0 && !effectivePinned;
function pinMonitor(tab: MonitorTab) {
setMonitorTab(tab);
setMonitorPinned(true);
@ -1068,6 +1072,11 @@ export function InspectorView({
onClearHighlight={onClearHighlight}
compact={serversCompact}
onToggleCompact={() => setServersCompact((c) => !c)}
onOpenMonitor={
canOpenMonitor
? () => pinMonitor(effectiveMonitorTab)
: undefined
}
/>
</ScreenStage>
<ScreenStage active={activeTab === "Tools"}>