Make the bottom dock a real panel - #65
Merged
Merged
Conversation
It was a list of lines under a thin strip: the sandbox owning each pane was only legible from the tab's name, the policy banner reprinted above every render, the input sat in a bar detached from its own output, and there was no way to make the thing bigger. Now it is a panel with three tabs, actions on the right, and — in Terminal — the sessions down the side, each naming its sandbox and state. The policy is stated once, at the head of that session's log, and the prompt is the last line of the stream rather than a bar beneath it, which is how a shell actually reads. The panel maximises to fill the work area and restores to the height it had; maximised it turns opaque, because a panel you can read the view through is not a panel. Problems and Output are not placeholders. Problems gathers what the snapshot already says is broken and names the path each row came from: models that are not ready, providers that are not connected, skills whose permission is missing, servers that are blocked, sandboxes with no account of their own, engine modules that are planned rather than built. Errors first, then warnings, then what is merely worth knowing. `lib/problems.ts` derives it; nothing there is invented. Output keeps every refusal and reason this window reported, after the toast carrying it has gone — held in memory only, and the tab says that durable logs belong to the daemon. A new terminal and a split terminal report the same reason they always did: a live pty runs as the sandbox user and needs workbenchd. Closes #63
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change
The bottom dock was a list of lines under a thin strip. The sandbox owning a pane was legible only from the tab's name, the policy banner reprinted above every render, the input sat in a bar detached from its own output, and there was no way to make it bigger.
It is a panel now:
Problems,Output,Terminal— underlined rather than boxed, with actions on the right.Maximised, the panel turns opaque (
--bg-sidebar): with the panel material alone you could read the view through it, which is not a panel.Problems and Output are not placeholders
Problemsgathers what the snapshot already says is broken, and every row names the path it was read from:models/*providers/*library/skills/*library/mcp/*sandboxes/*capabilities/modules/*Errors first, then warnings, then what is merely worth knowing.
lib/problems.tsderives it; nothing is invented.Outputkeeps every refusal and reason this window reported, after the toast carrying it has gone — in memory only, and the tab says durable logs belong to the daemon.Validation
pnpm build(style check, Next build, TypeScript) clean.⌘Jopened the panel, the tallies read2 · 3 · 7for problems and2for terminals; switched tabs; maximised and restored; confirmed the maximised panel is opaque in light and dark; ranhelpand a refused command in a session and watched the prompt stay at the end of the stream.Security impact
None. It reports refusals that already existed, and it still refuses every command that would need a live pty — a new terminal and a split terminal report the same reason.
Closes #63.