Task-Run Coordination Conversations
How future coordinated task runs opt into bounded Live conversations without moving task ownership into Network.
- Audience
- Operators running durable agent work
- Focus
- Autonomy guidance shaped for scanability, day-two clarity, and operator context.
Coordination conversations are optional. A task run resolves Local unless an explicit request, its task execution profile, or the workspace coordination record selects Live.
There is no channel bound to every run. The rule is: resolve once, persist the snapshot, and create conversation state only for Live.
Resolution precedence
For a new task run, Compozy resolves participation in this order:
- explicit start, enqueue, or fan-out request
- the task's
network_participationexecution-profile block - the workspace coordination record
- built-in Local
The result is stored on the run as resolved_network_participation. Existing runs never change
when a profile, workspace setting, or config default changes.
Workspace opt-in
Inspect or change the default for future coordinated runs:
compozy network coordination status --workspace checkout-api -o json
compozy network coordination enable --workspace checkout-api -o json
compozy network coordination disable --workspace checkout-api -o jsonThe web invitation writes the same versioned record. Accepting it affects future coordinated runs, not the run currently on screen. Dismissal is invitation state, not participation state; resetting the invitation does not enable coordination.
Explicit run opt-in
Choose Live for one run without changing the workspace default:
compozy task start task-123 \
--network live \
--network-channel-strategy run \
--network-bounds '{"max_wakes":6,"max_wake_depth":2}' \
-o jsonrun derives one stable workspace channel from the run identity. A named channel uses
--network-channel-strategy named --network-channel <id> instead.
Conversation is not ownership
| Network conversation evidence | Task-service authority |
|---|---|
| requests, replies, blockers, and handoffs | claim through ClaimNextRun |
| public-thread and direct-room history | heartbeat with the fenced claim token |
| receipts and progress traces | complete, fail, release, or recover the run |
| admitted-wake and usage ledger | review request and reviewer-bound verdict |
A message can describe progress but cannot change task or run state. The task service remains the only authority even when every participant can see the conversation.
Live admission in a coordinated run
Coordinator and worker sessions bind the run's immutable Live snapshot. A say can wake one of
them only when it is directly addressed or explicitly mentioned and the finite bounds still allow
the turn. Unaddressed history, capability claims, receipts, and traces do not fan out model turns.
The run detail view shows:
- the resolved mode, source, strategy, and channel
- conversation history for Live runs
- bound consumption and exhaustion evidence
- actual aggregate token usage or
usage_unavailable
Local runs show an oriented empty state instead of a plausible empty conversation.