/layout deterministic showcase - #201
Merged
Merged
Conversation
/layout (also Config → Layout) previews composer position (Bottom, Top, Flow) and transcript presentation (Normal, Chat) before choosing. The preview renders a fixed sample (a folded build, a multi-line command, a failure and a running command) through the real transcript presenter and planScreen, in its own OutputBuffer, so nothing runs and nothing reaches the transcript, journal or /copy. It is sized to show the whole sample when the terminal allows, so Flow's prompt visibly follows the output, with a caption describing each position. Up/Down move, Left/Right change, Enter saves and applies live through the existing settings path, Esc cancels. The choices come from shared value lists that the Config rows now use too, so there is one configuration. Also: the Flow end-to-end test resends its exit key until the fullscreen app takes it, instead of assuming passthrough was already active.
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.
Closes #133
Behavior
/layout(also/settings→ Config → Layout) opens a panel on the shared panel shell with two rows: Composer position ‹Bottom | Top | Flow› and Transcript ‹Normal | Chat›. ↑↓ move, ←→ change, Enter saves and applies live, and Esc cancels. When the draft differs, the rows showsaved:hints and the header says unsaved preview.planScreen. Only the prompt and input text are placeholders, and completion times use a fixed date.OutputBuffer, so nothing runs and nothing reaches the transcript, journal or/copy.Composition with Bottom / Top / Flow and Chat
composerPositionandtranscriptPresentationsettings as the Config rows and the palette toggles. New shared value/label lists inconfiguration.tsfeed both the Config rows and the panel, so there's one configuration and only implemented values ever appear.applySettingsConfiguration: it persists the settings, sets the presenter layout live, and the nextplanScreenuses the new position.planScreen, including Flow's stack.Notes
Tests
tests/layoutPanel.test.ts:tests/fixtures/layout-preview.txt(regenerate withUPDATE_SNAPSHOTS=1), with determinism checked including styling./copyuntouched, and Enter persists (to a temporary config dir), applies the presentation live and switches the plan to Flow. Esc discards.git diff --checkare clean. The last local full runs passed 586/586, except one miss by the pre-existing suggestion-latency benchmark under load.Limitations
/prompthas its own showcase).