ui: brand palette, rendered markdown, and a vertical session nav#83
Merged
Conversation
Repaint the whole console in the Ellipsis dark palette, render agent markdown as styled ANSI, and turn the horizontal session bar into a vertical list. Ink 7 / React 19 and SDK 0.4.0 come along for the ride.
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.
Summary
src/lib/theme.ts, the Ellipsis dark palette, as the one source of color for the CLI. Every hardcodedcyan/green/rednow reads from it.src/lib/markdown.ts. Bold, headings, bullets, tables, and fenced code stop showing raw asterisks and pipes.→reveals config and sandbox lines,→again opens the phase panel,←collapses back.+ New sessionplus 5 recent sessions, one row each.↑/↓(was←/→).escor↑off the top row returns to chat. NewnavSlicekeeps one row of lookahead as the list scrolls.ellipsis.devat the left edge, the focused session'sid · model · $cost · N tokensat the right, with fallbacks that drop the link, then the model, then the spend.@ghLogin in customerLoginwhen no session is focused, so the header always says who you are.Default (detected)row.idle_start, so the sandbox spins up and the first composer message opens turn 0.src/lib/facts.ts, capped at 72 columns.ink-spinner, and declareschalkandcli-table3(imported directly, previously only transitive).connectnow renders every frame off-TTY so the documented--no-inputheadless path is not silenced.Test plan
npm test: 351 tests pass, including new suites forcompactTokens,rowMeta,sessionSource,mergeSidebarSessions,navSlice,withRenderedMarkdown, and factsnpm run typechecknpm run buildagentinteractively: markdown rendering, vertical nav keys, sandbox collapse, idle start from an empty prompt