Rebuild the Virtual Environment Runner card - #381
Merged
Merged
Conversation
The card clipped its own content everywhere it could: - The body is a max-height flex column, and a flex container under height pressure shrinks its children below their content size unless told not to. Every textarea and section was being compressed until it cut its own text mid-glyph: a two-row requirements box showing 1.6 rows, the prompt cut through its descenders, the terminal showing half a line. flex-shrink: 0 on every body child is the actual fix. - Requirements, prompt, code and terminal each carried their own scroll region inside the scrolling body - up to five nested scrollbars on one 420px card. - The requirements manifest sat first, permanently open, above the prompt - the qualifier before the question. - A permanent "No output yet." terminal rendered on every fresh node. - "Code" + "PYTHON" stacked two all-caps headers over the same pane. - Run was a neutral chip identical to Cancel, and kept reading "Run", merely disabled, while a run was in flight. Changes: - flex-shrink: 0 on all body children; nothing clips mid-line again. - The prompt leads. Both inputs auto-size to their content (field-sizing, capped, no resize handles) - an input never scrolls what was just typed. - Requirements fold into a native <details> whose summary carries the package count; the blur/Enter commit contract is unchanged. - Only the two outputs scroll themselves (code 185, terminal 150), and the card budget (560, body 520) is spent so the common full state - code plus terminal - fits with no outer scrollbar. An outer scroll on this card is what cut through the middle of whichever pane straddled its edge. - The terminal renders only when a run is in flight or output exists. - The duplicate "Code" label is gone; the fence's own PYTHON header names the pane once. The run button is the card's one filled primary and reads "Running…" while busy; Cancel is quiet with a destructive hover. - The terminal keeps its deep inset; the machine-output posture (plain preformatted text, never the markdown pipeline) is unchanged, as are all intents, the stream subscription, and the approval panel wiring. Tests: 61 pass; two assertions updated for the deliberate changes (the busy label, the removed duplicate header). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Problem
The Virtual Environment Runner card clipped its own content at every level.
Change
flex-shrink: 0on every body child - the mid-glyph clipping's actual cause.field-sizing: content, capped, no resize handles); an input never scrolls what was just typed.<details>whose summary carries the package count. The blur/Enter commit contract is unchanged.Test plan
CodeSandboxNodeView.test.tsx: 61 pass. Two assertions updated for the deliberate changes: the busy-state label ("Running…" disabled, rather than a disabled button still reading "Run"), and the removed duplicate header (asserted as absent, with the pane's presence checked by class).npm run check(schema drift, typecheck, lint, vitest, build, bundle size) against a clean checkout of this branch: 2135 pass.