TUI Epic 2: Project observability screen - #158
Conversation
Pure buildProjectObservability() derives a Project overview from already-read sessions/services/worktrees/tasks/notifications: a summary rollup, a task-progress breakdown by status, and a merged tasks + notifications story feed sorted newest-first. Backs the upcoming TUI Project screen; no I/O so it is unit-tested directly. Epic 2 (Project observability) phase 1 of 2. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
New read-only "project" screen (key y) backing onto buildProjectObservability: a summary rollup (agents/services/worktrees/ tasks/unread), a task-progress breakdown by status, and a selectable merged tasks+notifications story feed with a detail pane. Wired like the other subscreens (union, statusline tab, nav cycle, dispatch, render switch, footer + help). 'y' was freed by the Coordination merge and has no action-key collision. Epic 2 (Project observability) phase 2 of 2. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
@coderabbitai review |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughA new ChangesProject Dashboard Screen
Sequence Diagram(s)sequenceDiagram
participant stdin as stdin (keypress "y")
participant dashboardInteraction as dashboard-interaction
participant project as project.ts
participant observability as buildProjectObservability
participant renderer as renderProjectScreen
stdin->>dashboardInteraction: onKeyPress("y")
dashboardInteraction->>project: showProject(host)
project->>observability: refreshProjectObservability(host)
observability-->>project: ProjectObservability
project->>renderer: renderProjectScreen(ctx)
renderer-->>stdin: frame written to TUI
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
✅ Action performedReview finished.
|
renderProject ran refreshProjectObservability on every nav keystroke (two exchange-store reads per keypress) and double-refreshed on entry. Make renderProject a pure render that only builds the snapshot when missing; refresh stays on screen entry and the explicit [r] key. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Sub-agent review pass. One finding, fixed:
Model, controller index-clamping, renderer null/empty handling, and all screen-enumeration wiring reviewed clean. |
Second epic of the TUI IA redesign. Adds the Project observability screen — a terminal-native overview of what's happening across the project, derived from the project's current direction (not a port of the app GUI).
What changed
Phase 1 — Node observability model. New pure
src/project-observability.ts:buildProjectObservability({sessions, services, worktrees, tasks, notifications})→{summary, progress, story}. No I/O; unit-tested directly.Phase 2 — Project TUI screen. New read-only screen (key
y): summary rollup + task-progress breakdown + a selectable story feed with a detail pane. Wired like the other subscreens (DashboardScreen union, statusline tab, nav cycle, key dispatch, render switch, footer + help).ywas freed by the Coordination merge and has no action-key collision.This is where Workflow's task data now surfaces as the progress lens (the other half — actionable task items — lives in Coordination from Epic 1).
Verification
yarn typecheck,yarn lint,yarn buildcleanyarn vitest run— 1383 tests pass (5 new model tests)Dashboard and Graveyard untouched.
🤖 Generated with Claude Code
Summary by CodeRabbit