Skip to content

feat: show Board in an automatic three-line HUD#111

Open
qiankunli wants to merge 2 commits into
mainfrom
feat/board-ui
Open

feat: show Board in an automatic three-line HUD#111
qiankunli wants to merge 2 commits into
mainfrom
feat/board-ui

Conversation

@qiankunli

@qiankunli qiankunli commented Jul 22, 2026

Copy link
Copy Markdown
Owner

Add a read-only Board HUD that starts automatically for tmux sessions.
The first two lines keep focus and health visible while the third line
shows the latest Board revision change. Reuse panes per CLI session,
clean up stale owners, and keep prompt delivery receipts independent.

Document the tmux fallback and bump devloop to 0.2.2.

Render Board context and health through Claude Code's command-backed native
status line, with a safe one-time setup and version-aware plugin launcher.

Keep the tmux sidecar for Codex, preserve critical blockers at narrow widths,
and update the Board documentation and regression coverage.

Add a read-only Board HUD that starts automatically for tmux sessions.
The first two lines keep focus and health visible while the third line
shows the latest Board revision change. Reuse panes per CLI session,
clean up stale owners, and keep prompt delivery receipts independent.

Document the tmux fallback and bump devloop to 0.2.2.
lines = "\n".join("\x1b[2K" + line for line in text.splitlines())
sys.stdout.write("\x1b[H" + lines + "\x1b[J")
sys.stdout.flush()
time.sleep(1)

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 devloop code-review · seed-2.1-pro

The watch loop does not catch exceptions from _snapshot(), frame_from_snapshot(), or render_frame(). If BoardRuntime.resolve() raises (e.g., due to corrupted state files, permission errors, or transient I/O failures), the HUD process crashes and the dashboard disappears. The finally block does restore the cursor, but the service still stops unexpectedly. Consider wrapping the snapshot + render logic in a try/except that falls back to a minimal error display and continues the loop.

ccr:fp=cfd64e2511ae

signal.signal(signal.SIGTERM, stop)
tracker = HudPulseTracker()
inactive_leader_ticks = 0
shell_commands = {"bash", "dash", "fish", "sh", "zsh"}

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 devloop code-review · deepseek-v4-pro

The set of shell commands used to detect an idle leader pane is limited to {"bash", "dash", "fish", "sh", "zsh"}. If a user runs a different shell (e.g., ksh, tcsh, csh, or a custom command wrapper like tmuxinator), the HUD will never auto-exit when the leader pane is idle — the counter inactive_leader_ticks will keep resetting to 0. The HUD will still exit when the leader pane disappears (pane_command returns None) or via signal, so this is a minor UX issue rather than a correctness bug.

ccr:fp=408ae41ebf6d

@qiankunli

Copy link
Copy Markdown
Owner Author

🤖 devloop code-review · origin/main..HEAD · 638cc59c9 · models: deepseek-v4-pro×22, seed-2.1-pro×20, seed-2.1-turbo×19 · cost: 663s · ccr v1.9.0

2 finding(s)(2 条已锚到 diff)

Render Board context and health through Claude Code's command-backed native
status line, with a safe one-time setup and version-aware plugin launcher.

Keep the tmux sidecar for Codex, preserve critical blockers at narrow widths,
and update the Board documentation and regression coverage.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants