Skip to content

feat(orchestration): connect status presentation - #79

Merged
trvon merged 4 commits into
masterfrom
feat/orchestration-status-ux
Sep 3, 2026
Merged

feat(orchestration): connect status presentation#79
trvon merged 4 commits into
masterfrom
feat/orchestration-status-ux

Conversation

@trvon

@trvon trvon commented Sep 3, 2026

Copy link
Copy Markdown
Owner

Summary

  • centralize durable orchestration presentation across create/get, LoopList, status widget, /loop, and completion wakes
  • replace reducer vocabulary with human status and progress labels while preserving persisted state unchanged
  • keep completed/attention batches visible until explicit deletion
  • distinguish pi-loop durable batches from provider-native SubagentWorkflow
  • add RED→GREEN coverage for tone, status, output ownership, bounded details, command inspection, and terminal visibility

UX contract

  • controller: running, needs attention, complete, cancelled
  • work: queued, running, complete, failed, uncertain, cancelled
  • progress: completed/total · running · queued/failure counts when relevant
  • provider completion is shown as Output: provider-owned, not an internal consume state
  • successful completion no longer says “requires parent attention”

This PR does not duplicate provider FleetView, conversations, transcripts, or native SubagentWorkflow state. LoopStore remains authoritative only for durable batch intent and bounded evidence.

Copilot AI lite review requested due to automatic review settings September 3, 2026 20:28

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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.

Comment thread src/tools/subagent-orchestration-tools.ts

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 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

@trvon
trvon merged commit 9735bf1 into master Sep 3, 2026
6 checks passed
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.

2 participants