feat(orchestration): live activity line in Mission Control Spawned Work rows - #32
Merged
Merged
Conversation
…rk rows Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
What
Adds a live activity line beneath each worker name in the Orchestrator Mission Control "Spawned Work" rows, so a worker row shows what its agent is currently doing — not just a status dot.
Why
Mirrors the activity line
DashboardAgentRowalready renders elsewhere in the app. Previously a spawned-work row showed only the agent state dot + worker name, giving no at-a-glance signal of the agent's current activity.How
selectFreshestWorktreeAgentEntryfromderiveWorktreeAgentDotStateinworktree-agent-dot-state.tsso the dot and the activity line derive from one rule (the freshest agent-status entry among a worktree's tabs), instead of duplicated logic that could drift.selectWorktreeAgentActivityText(worktree-agent-activity-text.ts): returns the freshest agent's orchestration label / prompt viagetAgentRowPrimaryText, falls back to the state label when the agent is live but reported no prompt, and returnsnullwhen no agent has reported (so the row omits the line rather than showing a placeholder).OrchestratorMissionControl.tsxrenders the worker name + truncated activity line (withtitletooltip) in the row header.Tests
New
OrchestratorMissionControl.spawned-activity.test.tsxcovers: prompt text rendered under the worker name, state-label fallback on empty prompt, and the line omitted when no agent has reported.Typecheck, full
pnpm test(20498 passed), oxlint on changed files, and the electron-vite build all pass.🤖 Generated with Claude Code