TUI polish: alternate screen, safe actions, detail panel, log viewer#17
Merged
TUI polish: alternate screen, safe actions, detail panel, log viewer#17
Conversation
- Alternate screen buffer — eliminates scrollback bleed completely Uses ESC[?1049h/l to isolate TUI from terminal history. Hidden cursor during TUI, restored on exit in a finally block. - HEAVY borders + row padding for breathing room Switched from ROUNDED to HEAVY box style (thick borders). Added vertical padding between rows. Session count shown in title: "Sessions (3)" - Safe action handlers — no action crashes out of the TUI Enter on dead session: "Session not running" status message x on completed task: "Already completed" status message Removed os.execvp entirely — all tmux ops use subprocess.run Status messages auto-clear after 3 seconds - Detail panel (d / Space) — split-pane task preview Shows task metadata: branch, state, PR, iteration, elapsed Tails last 8 lines of orchestrator log Table switches to compact mode when panel is open Press d again or Esc to close - Log viewer (l) — full-screen scrollable log view j/k scroll, G jump to end, g jump to top Auto-refreshes log on timeout (catches new lines) Line position indicator: "Line 45-80 of 120" q/Esc returns to session list - Dynamic footer — changes based on current view mode - New key bindings: l (logs), d/Space (detail), G (end), g (top) - 39 new tests in test_dashboard.py (136 total, all passing) - Updated README with full keybinding tables for all views - Updated copilot-instructions with TUI safety conventions Closes #11
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
Major TUI polish: alternate screen buffer, safe actions, detail panel, built-in log viewer. Closes #11.
Alternate Screen Buffer
ESC[?1049h/ESC[?1049lto isolate the TUI from terminal scrollback historyfinallyblockHEAVY Borders + Row Padding
ROUNDEDtoHEAVYbox style — thick borders that pop on dark terminals"Sessions (3)"Safe Action Handlers
Every keybinding action catches errors and shows a temporary status message instead of crashing:
Enteron a dead session → "Session not running — task is COMPLETE"xon a completed task → "Already complete"os.execvpcompletely removed — all tmux operations usesubprocess.runDetail Panel (
d/Space)Split-pane preview showing task metadata + log tail:
dagain orEscto closeLog Viewer (
l)Full-screen scrollable log viewer:
j/kto scroll,Gto jump to end,gto jump to topq/Escreturns to session listDynamic Footer
Changes based on current view mode:
j/k navigate Enter attach x stop l logs d detail r refresh q quitj/k navigate d close detail l full logs q quitj/k scroll G end g top q backTests
test_dashboard.pycovering:Docs Updated