feat(cards): left accent bar on done assistant replies#126
Merged
Conversation
Add a brand-toned borderLeft to the done-state Markdown so long replies are visually distinguishable from tool/reasoning cards in scrollback. Ink's <Box> doesn't accept backgroundColor; a left bar is the terminal-native equivalent and works on light + dark themes.
Comments added in the #120 migration violated CLAUDE.md: multi-paragraph module headers, defensive justification, incident narrative ("lamyc-video trigger"). Reduced to single lines where the why is genuinely non-obvious.
esengine
added a commit
that referenced
this pull request
May 2, 2026
* feat(tui): right-side context panel with Ctrl+\ toggle (#122) Sidebar shows current plan steps, running tools, and last-turn usage as a read-only HUD. Defaults open on cols ≥ 120, off below; persisted in ~/.reasonix/config.json.sidebarOpen. Below 88 cols total the panel hides regardless of preference. Carries the StreamingCard hook-order fix from #126. * fix(sidebar): hide entirely when no active plan Empty sidebar default-on was visual noise — 28 cols of blank panel on every fresh session. Now the panel returns null unless an active plan exists. Drop the Usage section: same data already lives in the inline UsageCard. * fix(sidebar): hide on rejected plans (require actual progress) submit_plan creates the plan card with all steps "queued" before PlanConfirm even pops; cancelling the modal leaves the card behind unchanged. Sidebar was treating "variant=active" as enough and stayed mounted after rejection. Now also require at least one step to have started — distinguishes pending-approval / cancelled ("all queued, forever") from running / partially-done plans. * refactor(sidebar): divider uses borderTop instead of hardcoded char repeat The divider rendered "─".repeat(SIDEBAR_WIDTH - 2), which would break the moment the panel width or padding changed. An empty box with borderTop lets Yoga compute the line width from the parent — adapts automatically. * fix(plan): drop the active plan card on PlanConfirm cancel submit_plan creates the plan card up-front (variant=active, all steps queued) before the user picks approve / cancel. On cancel nothing was clearing the card, so the existing activePlanCard selector + the new sidebar both kept it visible as if the plan was running. New plan.drop reducer action flips the latest active plan's variant to "replay" (already-existing archive variant). Sidebar + bottom PlanCard now honor cancel correctly. Approved-but-not-yet-started plans render as before — variant is still "active", just with all steps queued.
This was referenced May 2, 2026
esengine
added a commit
that referenced
this pull request
May 3, 2026
PR #126 (0.23.0) gave done assistant Markdown a brand-toned borderLeft per lamyc's RFC #20 readability ask. The #136 card redesign extracted CardBox but flipped the done-state color to FG.faint, defeating the contrast that lets long replies stand out in scrollback. Now matches the streaming-state color so the bar reads continuously across the streaming → done flip. Aborted state stays on FG.faint (correctly de-emphasized).
3 tasks
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.
Refs #122 — partial. The bg-highlight half; sidebar tracked separately.
Long Markdown answers had no visual indicator distinguishing them from tool/reasoning cards in scrollback. This adds a left accent bar (brand tone) to the done-state assistant Markdown, mirroring the live-streaming bar treatment.
Picked borderLeft over backgroundColor: Ink's doesn't accept backgroundColor (only does, and Text's bg only colors the actual text cells, not the row width). A left bar works on light + dark themes equally.
Bundled a chore commit that trims comment essays added in the #120 layout migration — those violated CLAUDE.md (multi-paragraph headers, defensive justification, incident narrative).
Verification