Skip to content

TUI Epic 5: cut Activity + Graveyard fixes - #161

Merged
TraderSamwise merged 2 commits into
masterfrom
chore/tui-next-16
Jun 17, 2026
Merged

TUI Epic 5: cut Activity + Graveyard fixes#161
TraderSamwise merged 2 commits into
masterfrom
chore/tui-next-16

Conversation

@TraderSamwise

@TraderSamwise TraderSamwise commented Jun 17, 2026

Copy link
Copy Markdown
Owner

Final epic of the TUI IA redesign — two small cleanups that complete the north-star screen set.

What changed

Phase 1 — Cut the Activity screen. Activity was a filtered "needs attention" list, but the dashboard already surfaces attention via its status pills/colors and the [u] next-attention jump (activateNextAttentionEntry, kept). Removed the screen and its a key from the union, statusline tabs, nav cycle, dispatch, render switch, footer + help, and host state. Persisted activity falls back to the dashboard.

Phase 2 — Graveyard: surface graveyardedAt. The worktree detail showed Last Used but not when the worktree was graveyarded — added a "Graveyarded · N ago" line. The other two items from the original audit were verified false/already-handled and are noted in the commit (the detail-index "desync" can't occur — nav stays within selectableRows and the detail is guarded; orphan-teammate rows are already labelled "missing parent" and non-selectable).

Final screen set

Dashboard (untouched) · Coordination · Project · Library · Topology · Graveyard. Keys: i coordination · y project · p library · t topology · g graveyard; u next-attention on the dashboard.

Verification

  • yarn typecheck, yarn lint, yarn build clean
  • yarn vitest run — 1397 tests pass

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Graveyard screen now displays the timestamp indicating when items were graveyarded.
  • Documentation

    • Revised help overlays and navigation shortcuts throughout the dashboard. The activity screen has been removed from available dashboard screens, and keyboard shortcut references have been updated accordingly.

test and others added 2 commits June 17, 2026 14:48
The Activity screen was a filtered "needs attention" list, but the
dashboard already surfaces attention via its status pills/colors and the
[u] next-attention jump (activateNextAttentionEntry, kept). Remove the
screen and its 'a' key: drop it from the DashboardScreen union,
statusline tabs, nav cycle, dispatch, render switch, footer + help, and
the host state. Persisted 'activity' falls back to the dashboard.

Epic 5 (final cleanup) phase 1 of 2: cut Activity.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The graveyard worktree detail showed Last Used but not when the worktree
was actually moved to the graveyard. Add a "Graveyarded · N ago" line
from the entry's graveyardedAt. (The earlier audit's detail-index-desync
and resurrect-hint findings were false/already-handled: nav stays within
selectableRows and orphan-teammate rows are already labelled "missing
parent" and non-selectable.)

Epic 5 (final cleanup) phase 2 of 2: graveyard fixes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
app Ready Ready Preview, Comment Jun 17, 2026 6:54am

@TraderSamwise

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 17, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: a00a449d-309a-43d1-a85d-f563eef51845

📥 Commits

Reviewing files that changed from the base of the PR and between eda76ff and d0fd91e.

📒 Files selected for processing (15)
  • src/dashboard/state.ts
  • src/dashboard/ui-state-store.ts
  • src/multiplexer/dashboard-actions-methods.ts
  • src/multiplexer/dashboard-control.ts
  • src/multiplexer/dashboard-interaction.ts
  • src/multiplexer/index.ts
  • src/multiplexer/navigation.ts
  • src/multiplexer/runtime-state.ts
  • src/multiplexer/session-launch.ts
  • src/multiplexer/subscreens.ts
  • src/statusline-model.ts
  • src/tui/screens/dashboard-renderers.ts
  • src/tui/screens/overlay-renderers.ts
  • src/tui/screens/subscreen-renderers.test.ts
  • src/tui/screens/subscreen-renderers.ts
💤 Files with no reviewable changes (10)
  • src/multiplexer/runtime-state.ts
  • src/dashboard/ui-state-store.ts
  • src/multiplexer/index.ts
  • src/tui/screens/overlay-renderers.ts
  • src/multiplexer/navigation.ts
  • src/multiplexer/session-launch.ts
  • src/multiplexer/dashboard-interaction.ts
  • src/multiplexer/dashboard-control.ts
  • src/multiplexer/subscreens.ts
  • src/multiplexer/dashboard-actions-methods.ts

📝 Walkthrough

Walkthrough

The "activity" dashboard screen is removed end-to-end: its type is dropped from DashboardScreen and related models, its exported functions are deleted from subscreens.ts and dashboard-actions-methods.ts, its "a" key bindings are removed from all key handlers and routing paths, and its TUI renderer is deleted. Keycap hint strings across all subscreen footers are updated accordingly. A new "Graveyarded" timestamp field is added to the graveyard worktree detail pane.

Changes

Remove Activity Dashboard Screen

Layer / File(s) Summary
Type and model contracts: remove activity, add help
src/dashboard/state.ts, src/dashboard/ui-state-store.ts, src/statusline-model.ts
DashboardScreen union drops "activity"; VALID_SCREENS whitelist removes "activity"; StatuslineData.dashboardScreen removes "activity" and adds "help"; DASHBOARD_SCREEN_TABS removes the activity tab entry.
Core implementation: remove activity state and exports
src/multiplexer/index.ts, src/multiplexer/subscreens.ts, src/multiplexer/dashboard-actions-methods.ts
Removes activityEntries and activityIndex fields from Multiplexer; deletes four exported activity-dashboard functions (getActivityEntries, showActivityDashboard, renderActivityDashboard, handleActivityKey) from subscreens.ts and their corresponding dashboardActionMethods wrappers; drops the renderActivityScreen import.
Key handling and routing: remove activity dispatch
src/multiplexer/dashboard-control.ts, src/multiplexer/dashboard-interaction.ts, src/multiplexer/navigation.ts, src/multiplexer/session-launch.ts, src/multiplexer/runtime-state.ts
Removes the "a" key case from handleDashboardSubscreenNavigationKey, handleDashboardKey, and handleHelpKey; removes the activity-screen stdin routing branch from runDashboard; removes the "activity" early-return branch from renderCurrentDashboardView.
TUI rendering: remove activity screen, update hints, add graveyard detail
src/tui/screens/subscreen-renderers.ts, src/tui/screens/dashboard-renderers.ts, src/tui/screens/overlay-renderers.ts, src/tui/screens/subscreen-renderers.test.ts
Deletes renderActivityScreen; updates d/a/... keycap hints to d/i/... in coordination, project, topology, graveyard, and library footers; adds conditional Graveyarded timestamp to graveyard detail pane; removes [a] activity from buildHelpLine and buildHelpOverlayOutput; adds test for graveyard detail timestamp.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • TraderSamwise/aimux#115: Modifies the same buildHelpOverlayOutput in overlay-renderers.ts, removing the a→activity shortcut and adjusting the same help-output code path.
  • TraderSamwise/aimux#149: Touches the same key-hint rendering logic in dashboard-renderers.ts and overlay-renderers.ts, refactoring how keycap hints are formatted.
  • TraderSamwise/aimux#160: Modifies the same dashboard navigation and screen-union code paths in the multiplexer and TUI, removing "activity"/"a" wiring while integrating the "topology"/"t" screen.

Poem

🐇 Hop, hop — the "activity" tab is gone,
No more [a] key to press along!
The graveyard now shows when things died,
A timestamp added with bunny pride.
Keycap hints now say d/i instead,
Clean code, clean keys — the past is shed! 🪦

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main changes: removing the Activity screen and fixing the Graveyard feature, which are the two primary objectives outlined in the PR.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/tui-next-16

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai

coderabbitai Bot commented Jun 17, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

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