- Removed broken LaunchSwarmDialog (formula-based) from TopBar/LeftPanel - All Rocket buttons (TopBar, LeftPanel, DAG nodes, social cards) now open AssignmentPanel (archetype-based) which actually works - Every Rocket clears taskId first so assignMode && !taskId condition passes - Conversation button priority: taskId always shows conversation, not assign panel - Added TelemetryStrip: minimized right sidebar with status dots when non-telemetry panel (conversation/assignment) is active - Live feed has minimize button → restores last taskId or assignMode - DAG nodes: Signal icon → restores telemetry feed - Social button on DAG nodes: single router.push to avoid race (setView + setTaskId) - Fixed social card message button: opens right panel with drawer:closed (no popup) Co-Authored-By: Oz <oz-agent@warp.dev>
4.1 KiB
4.1 KiB
BD Audit Coordination Schema (Draft)
Date: 2026-02-28
Status: Draft for skill migration planning
Scope: Replace bb coordination semantics with bd-native event/audit contracts
Related protocol baseline:
docs/protocols/operative-protocol-v1.md
Intent
Use bd as the only required system in agent work repos. Keep coordination state in append-only audit events, and keep human context in bead comments.
Primary storage:
- protocol state:
bd audit record --stdin - lifecycle state:
bd update,bd close,bd agent state,bd agent heartbeat - narrative context:
bd comments add
Why Audit-First
- Append-only event log fits protocol timelines.
- Dolt history gives immutable version snapshots and diffability across event evolution.
- Frontend projections (inbox, reservation map, takeover eligibility) can be derived deterministically from event history.
Event Envelope (v1)
Every coordination event SHOULD use this envelope (JSON sent through bd audit record --stdin):
{
"version": "coord.v1",
"kind": "coord_event",
"issue_id": "bb-123",
"actor": "amber-otter",
"timestamp": "2026-02-28T18:00:00.000Z",
"data": {
"event_type": "RESERVE",
"event_id": "evt_01JN6Y1Q7R80E8P6K1Q5",
"project_root": "/abs/path/to/repo",
"to_agent": "cobalt-harbor",
"scope": "src/lib/*",
"state": "unread",
"takeover_mode": "none",
"reason": "",
"payload": {}
}
}
Notes:
kindremains compatible withbd auditentry typing.- protocol-specific fields live under
data. event_idMUST be globally unique and stable for dedupe.
Canonical Event Types
Required for parity with current bb behavior:
SEND: directed message created (to_agentrequired,state=unread)READ: message seen (event_refto priorSEND)ACK: message accepted (event_refto priorSEND)RESERVE: scope reservation createdRELEASE: scope reservation releasedTAKEOVER: stale/evicted reservation force-acquiredRESUME: identity adoption eventBLOCKED: explicit blocker signalHANDOFF: explicit transfer signalINCURSION: overlap warning signal
Required Fields by Event
Shared required fields:
event_typeevent_idproject_rootissue_idactortimestamp
Extra required fields:
SEND:to_agent,payload.subject,payload.bodyREAD:event_refACK:event_refRESERVE:scope,payload.ttl_minutesRELEASE:scopeTAKEOVER:scope,takeover_mode(stale|evicted),reasonRESUME:payload.prior_agent,reason(uncommitted_scope|in_progress_ownership)BLOCKED:to_agent,payload.blocker,payload.requested_actionHANDOFF:to_agent,payload.summary,payload.next_actionINCURSION:scope,payload.incursion_kind(exact|partial),payload.owner_liveness
Derivation Rules (Frontend/API)
Inbox projection:
- unread:
SENDwith no laterREAD/ACKon sameevent_id - read:
READexists, no laterACK - acked:
ACKexists
Reservation projection:
- active reservation = latest event for
(project_root, scope)isRESERVEorTAKEOVERand not superseded byRELEASE - owner liveness from
bd agent heartbeat/state
Takeover policy:
- owner active: deny takeover
- owner stale: allow only explicit stale takeover mode
- owner evicted: allow takeover and mark prior reservation expired in projection
Dolt Considerations
- Never rewrite prior protocol events; only append.
- Treat projections as computed views, never source of truth.
- Use Dolt history for postmortems (
bd history/bd diff) against protocol incidents. - Keep schema versioned (
coord.v1-> future upgrades by additive fields and new event types).
Skill Migration Guidance (Later Work)
When updating skills/beadboard-driver, use this contract:
- Replace
bb agent send/inbox/read/ackwithbd auditevent writes + API-derived inbox reads. - Replace
bb reserve/release/statuswithbd auditreservation events + API overlap/liveness checks. - Keep
bdlifecycle commands unchanged. - Keep human summaries in
bd commentsfor operator readability.