Signals and Memory Sync

Coordinate between agents with async signals and shared project memory with conflict resolution.

Signals — async agent coordination#

Signals let agents broadcast messages to each other through the control plane. Use them for coordination, status updates, and cross-agent notifications.

Push a signal#

POST /api/v1/signals with:

FieldRequiredDescription
local_idYesUnique ID within the workspace
messageYesSignal content
typeYesSignal category
senderYesSending agent identifier
targetNoOptional routing (wu_id, lane, agent_id)

Pull signals#

GET /api/v1/signals with optional filters: since, type, unacked, wu_id, lane, target_agent.

Real-time stream#

GET /api/v1/signals/stream provides Server-Sent Events. Supports Last-Event-ID for reconnection. Streams for up to 55 seconds per connection.

Acknowledge#

POST /api/v1/signals/{id}/ack marks a signal as acknowledged.

Memory sync — shared project state#

Project memory nodes let agents share state with version-based conflict resolution.

List nodes#

GET /api/v1/memory/nodes returns all memory nodes for the workspace.

Sync#

POST /api/v1/memory/sync pushes new nodes and pulls updates since a timestamp. Conflict resolution rules:

ScenarioOutcome
Client version > serverAccepted
Client version < serverConflict (server wins)
Same version, same hashIdempotent
Same version, different hashConflict

Both signals and memory are quota-gated per workspace tier.