Present useful operative state #14
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
Depends on
#16 Replace the old workspace shell
lab/pilcrow
#3 Establish the next exact producer interface
lab/pilcrow
#12 Replace notification attention with Overview
lab/pilcrow
Reference
lab/pilcrow#14
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What to build
Add restrained operative presentation for supervision without turning Pilcrow into an operative-management product. Overview shows aggregate working and attention counts. The current turn shows compact operative rows containing display name, lifecycle state, and current activity status. Persisted TUI-visible operative messages remain ordinary chronological stream entries under the visible-custom-message policy.
Consume a versioned, provider-neutral status interface over Pi's shared extension event bus. Pilcrow must not import the subagents package or depend on its private registry. Validate every snapshot and tolerate absent, malformed, throwing, replaced, or disposed providers without corrupting session state.
Do not show task descriptions or duplicate latest reports in the live row. Do not add child-session links, browser navigation into operative sessions, messaging, cancellation, room controls, or registry inspection.
Acceptance criteria
Blocked by
Implemented and independently audited across two practical jj revisions:
18aed34a3cac—feat(operative-status): add provider-neutral operative status projections9c9b4d4d7b34—feat(subagents): expose bounded operative status provider over event busWhat shipped:
operative-status:api:request:v1snapshots over Pi's shared event bus without importing the subagents package or its private registry.agent_start, so presentation does not depend on extensionsession_startorder; connected-session polling remains the bounded replacement fallback.Audit fixes covered same-provider A → B → A revision reset, stale callbacks, consumer-first/provider-second startup order, worst-case JSON escaping, disconnected dock counts, synchronous burst coalescing, and the provider budget hot path.
Verification:
vp exec tsc --noEmitandvp check: passed with zero errors (four pre-existing unrelated lint warnings).vp run build:hub,vp run build:browser, andvp build: passed;dist/refreshed.vp run validate: typecheck passed; 12 files, 128 tests passed.git diff --check: passed.