Repository navigation
feat(tui): compact todo panel above the prompt - #150
Merged
Merged
Conversation
While the sidebar is hidden and the session has unfinished todos, render up to 4 items windowed around the active one directly above the input, with an adaptive summary line (`2 of 6 finished · ctrl+b to show full TODO`, or `still N items in the TODO list · …` before anything is done). The full list stays in the sidebar; the prompt-footer hint now reports only modified files since the panel covers todos. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Split the summary helper so the view renders the progress text (`3 of 12 finished`) in theme.success once anything is completed, while the `· ctrl+b to show full TODO` suffix and the not-started form stay muted. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Prefix the summary line with cli-spinners "star", colored like the progress text (success green once something is finished, muted before). Follows the fork's spinner conventions: inlined frames with MIT attribution, 120 ms interval (stock cli-spinners timing feels too fast), and a static ⋯ fallback when animations are disabled. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The star spinner (and its static fallback) now uses theme.warning — the same accent as the [•] in_progress item — instead of following the summary text's green/muted color. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The star spinner now animates only while the session is busy (same session_status source as the prompt footer); when idle or interrupted it parks on a static sixteen-pointed star, which also replaces the old animations-disabled fallback glyph. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 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.
Summary
While the sidebar is hidden and the session has unfinished todos, a compact panel now renders directly above the prompt input:
in_progressitem, then what follows; falls back to the firstpending, then the last item).3 of 6 finished · ctrl+b to show full TODOonce anything is completed,still 6 items in the TODO list · …before that.cancellednever counts as finished, so a visible panel can't claim everything is done.Since the panel now covers todos, the fork's prompt-footer hint (
3 todos · 5 files) drops its todo part and reports only modified files;sidebar-hint.tsis simplified to one argument accordingly.New fork-only files:
routes/session/todo-panel-model.ts(pure window/label helpers) andtodo-panel.tsx(view reusingTodoItem). TheDIVERGENCES.mdrow forroutes/session/index.tsxis amended with merge guidance, and CHANGELOG has an Unreleased → TUI entry.Test plan
bun typecheck(packages/tui)test/routes/todo-panel-model.test.ts: window clamping (active first/last, ≤4 items, pending fallback, all-cancelled fallback) and summary labels (singular, cancelled-not-finished)test/todo-panel.view.test.tsx: hydrated window, live window shift ontodo.updated, panel disappears when all completed, singular remaining formsidebar-hintunit + view tests for the files-only hintpackages/tuisuite: 259 pass / 1 skip / 0 failctrl+bswaps panel ↔ sidebar and back🤖 Generated with Claude Code