Skip to content

feat(tui): add cockpit panels — Mission, Safety Shield, Pulse, Reach#4

Open
TSchonleber wants to merge 1 commit into
mainfrom
devin/1777019966-cockpit-panels
Open

feat(tui): add cockpit panels — Mission, Safety Shield, Pulse, Reach#4
TSchonleber wants to merge 1 commit into
mainfrom
devin/1777019966-cockpit-panels

Conversation

@TSchonleber
Copy link
Copy Markdown
Owner

Summary

Redesigns strand tui --dashboard from a flat status dump into a compact operator command center with four bordered panels in a 2×2 grid:

Panel Contents Color coding
Mission mode, halt status, tier, provider/model green=shadow, yellow=gated, red=live; halt indicator
Safety Shield review queue, DLQ count, health bar with run totals yellow=queued, red=failed, green=clear
Pulse reasoner ticks, candidates, tool calls, cost ASCII bars [####──────], yellow cost
Reach followers, 24h delta, X usage, X health placeholder (no live X calls from TUI)

Below the cockpit grid, existing TaskGraphsPane, InvocationsPane, and Footer are preserved unchanged.

Key constraints respected:

  • Dashboard remains read-only
  • No live X calls from TUI
  • No data query changes (uses existing RunSummary + env data)
  • 80-column readability via two 40-col bordered panels per row
  • Legacy Header and RunSummaryPane components retained in components.tsx for backward compat

Review & Testing Checklist for Human

  • Run strand tui --dashboard in a real terminal (≥80 cols) and verify the 2×2 panel layout renders cleanly with no overflow
  • Confirm color coding: shadow=green, gated=yellow, live=red; halt indicator toggles correctly based on STRAND_HALT
  • Verify ASCII bars in Pulse panel scale proportionally (ticks bar, tool calls bar)
  • Check that Reach panel shows placeholders gracefully when no X telemetry is available

Notes

  • The Reach panel currently shows placeholder values since the TUI cannot make live X calls and the existing TuiDataSource interface doesn't expose follower/health data. When a hooks owner adds X telemetry queries, the ReachPanel component accepts optional followers, delta24h, xUsage, and xHealth props ready to display real data.
  • Safety Shield maps consolidator data: queued → review queue, failed → DLQ, completed/total → health bar. For richer safety data (cooldowns table, dedup hash counts), the hooks interface would need to be extended.

Link to Devin session: https://app.devin.ai/sessions/6b21ab54f260444d96838afc6007c634
Requested by: @TSchonleber

Replace the flat status dump with a 2×2 operator command center layout:
- Mission: mode, halt status, tier, provider/model
- Safety Shield: review queue, DLQ, health bar with run totals
- Pulse: reasoner ticks, candidates, tool calls, cost with ASCII bars
- Reach: followers, delta, X usage/health (awaiting telemetry)

Preserves TaskGraphsPane, InvocationsPane, Footer below the cockpit.
Uses green/yellow/red/cyan for severity. ASCII bars via [####──────].
80-column readability maintained with two 40-col bordered panels per row.
Dashboard remains read-only; no live X calls from TUI.

Co-Authored-By: Terrence Schonleber <TVschonleber@gmail.com>
TSchonleber added a commit that referenced this pull request Apr 24, 2026
…d device-code scaffolding

- Provider registry for anthropic, openai, xai, gemini, openai-compat
- CockpitAuthStore (~/.strand/auth.json) with single-writer lock
- External credential discovery for Claude Code and gemini-cli
- OpenAI oauth_device_code flow with mockable HTTP client
- Enforce hard constraints #3 (oauth_external local-only), #4 (billing warning), #5 (no implicit activation)
- 39 tests across 4 test files

Co-Authored-By: Terrence Schonleber <TVschonleber@gmail.com>
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.

1 participant