feat(orchestration): connect status presentation - #79
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
The OrchestrationGet error path can emit an unbounded details.expanded payload (missing workId) and should use the same bounded presentation used elsewhere to avoid UI overflow and to match the PR’s “bounded details” contract.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR centralizes and humanizes durable subagent orchestration status/presentation across the main user surfaces (tools, widget, /loop, and wakes) while keeping the persisted orchestration state vocabulary unchanged.
Changes:
- Introduces a shared orchestration presentation module (status labels, progress labels, tone, bounded inspection/details) and wires it into widget, tools, command UI, and notification wakes.
- Updates orchestration-facing outputs from reducer terms (
active,pending,completed,provider_owned, etc.) to the UX contract (running,queued,complete,Output: provider-owned, etc.). - Expands test coverage (unit + e2e) to lock in the new tone/status/progress/output-ownership behaviors and terminal visibility semantics.
File summaries
| File | Description |
|---|---|
| test/widget.test.ts | Updates widget rendering expectations; adds coverage for keeping completed orchestrations visible until deletion. |
| test/orchestration-tools.test.ts | Adjusts tool output assertions to the new humanized status/progress + tool details payloads. |
| test/orchestration-presentation.test.ts | New unit tests for shared orchestration presentation helpers (labels/tone/bounding/output ownership). |
| test/notification-runtime.test.ts | Updates wake message assertions to match new headings/status/progress lines and removes “requires parent attention” on success. |
| test/loop-tools.test.ts | Updates LoopList orchestration summary output to new [orchestration:<label>] <progress> format. |
| test/loop-command.test.ts | Updates /loop UI selection expectations to include orchestration status/progress inspection and improved delete notifications. |
| test/index.test.ts | Updates orchestration wiring assertions to use the new “Progress:” presentation and complete label. |
| test/e2e/orchestration-conformance.mjs | Aligns conformance checks with new “Output: provider-owned” and work/controller label text. |
| src/ui/widget.ts | Switches widget orchestration summary to shared presentation and makes paused orchestrations visible. |
| src/ui/orchestration-presentation.ts | Adds the centralized orchestration presentation utilities used across surfaces. |
| src/tools/tool-result.ts | Extends tool display kind union to include orchestration. |
| src/tools/subagent-orchestration-tools.ts | Uses shared orchestration presentation for create/get tool summaries/details and output ownership wording. |
| src/tools/loop-tools.ts | Uses shared orchestration status/progress labels in LoopList output. |
| src/runtime/notification-runtime.ts | Uses shared orchestration heading/status/progress/work-status labels in wake messages and improves omission projection. |
| src/commands/loop-command.ts | Adds orchestration-aware list/detail rendering and more accurate notifications for orchestration vs loop actions. |
| README.md | Clarifies orchestration as durable batch intent and distinct from provider-native SubagentWorkflow. |
| docs/USAGE_GUIDE.md | Documents the orchestration UX contract and visibility/ownership boundaries. |
| docs/REFERENCE.md | Updates reference to include the new humanized orchestration presentation semantics and terminal visibility. |
Review details
- Files reviewed: 18/18 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
🟢 Approval recommended
The changes are presentation-focused, consistently centralized, and backed by updated unit/integration/e2e tests that codify the stated UX contract.
Review details
- Files reviewed: 18/18 changed files
- Comments generated: 0 new
- Review effort level: Lite
Summary
/loop, and completion wakesSubagentWorkflowUX contract
running,needs attention,complete,cancelledqueued,running,complete,failed,uncertain,cancelledcompleted/total · running · queued/failure counts when relevantOutput: provider-owned, not an internal consume stateThis PR does not duplicate provider FleetView, conversations, transcripts, or native
SubagentWorkflowstate. LoopStore remains authoritative only for durable batch intent and bounded evidence.