feat(ux): consolidate Launch Swarm + telemetry UX with minimized strip
- 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>
This commit is contained in:
parent
65d69ecbbc
commit
c246ceaf21
165 changed files with 13730 additions and 1132 deletions
35
docs/protocols/2026-02-28-agent-first-ui-decisions.md
Normal file
35
docs/protocols/2026-02-28-agent-first-ui-decisions.md
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
# Agent-First UI Decisions for Coordination Migration
|
||||
|
||||
Date: 2026-02-28
|
||||
Status: Approved implementation defaults
|
||||
|
||||
## Decision Summary
|
||||
|
||||
1. Coordination writes are agent-first by default.
|
||||
2. Human operators supervise, comment, and override only when needed.
|
||||
3. Sessions conversation timeline remains a merged feed (activity + protocol + comments).
|
||||
|
||||
## Interaction Ownership
|
||||
|
||||
### Agent-owned by default
|
||||
|
||||
- `SEND`, `READ`, `ACK`, `RESERVE`, `RELEASE`, `TAKEOVER` protocol events.
|
||||
- Routine reservation and handoff execution.
|
||||
|
||||
### Human-owned by default
|
||||
|
||||
- `bd comments` discussion entries.
|
||||
- Override intervention decisions (for blocked/conflict situations).
|
||||
|
||||
## UI Behavior
|
||||
|
||||
1. Conversation actions (`Seen`, `Accept`) emit `coord.v1` events via `/api/coord/events`.
|
||||
2. Comment composer includes explicit `Comment as` username field; value is persisted locally for convenience.
|
||||
3. Human comments use provided actor handle (instead of default email) when supplied.
|
||||
4. Incursions are computed from reservation projections and shown in sessions feed context.
|
||||
|
||||
## Identity Policy
|
||||
|
||||
1. Human comments should use user handle (for example `zenchant`) not raw email whenever available.
|
||||
2. Protocol events should use agent identity in `actor`.
|
||||
3. Timeline rendering must preserve actor attribution so human and agent actions stay distinguishable.
|
||||
24
docs/protocols/2026-02-28-bb-deprecation-notes.md
Normal file
24
docs/protocols/2026-02-28-bb-deprecation-notes.md
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
# BB Deprecation Notes (Draft)
|
||||
|
||||
Date: 2026-02-28
|
||||
Status: Legacy compatibility removed from migrated coordination path
|
||||
|
||||
## Intent
|
||||
|
||||
`bb` coordination paths are legacy compatibility behavior while `bd` audit/event protocol paths are rolled out.
|
||||
|
||||
## Runtime Behavior
|
||||
|
||||
- Sessions communication now uses `coord.v1` projections only.
|
||||
- Legacy mailbox fallback is removed from the migrated sessions path.
|
||||
|
||||
## Removal Criteria
|
||||
|
||||
1. Sessions and conversation flows operate correctly using only `coord.v1` projections.
|
||||
2. Read/ack actions are emitted via `/api/coord/events`.
|
||||
3. `npm run typecheck`, `npm run lint`, `npm run test` results are reviewed for migration-related regressions.
|
||||
|
||||
## Post-Approval Work
|
||||
|
||||
1. Update `skills/beadboard-driver` to `bd`-only commands and projection APIs.
|
||||
2. Remove deprecated route handlers that mutate legacy mailbox state.
|
||||
120
docs/protocols/2026-02-28-bd-audit-coordination-schema.md
Normal file
120
docs/protocols/2026-02-28-bd-audit-coordination-schema.md
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
# 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
|
||||
|
||||
1. Append-only event log fits protocol timelines.
|
||||
2. Dolt history gives immutable version snapshots and diffability across event evolution.
|
||||
3. 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`):
|
||||
|
||||
```json
|
||||
{
|
||||
"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:
|
||||
- `kind` remains compatible with `bd audit` entry typing.
|
||||
- protocol-specific fields live under `data`.
|
||||
- `event_id` MUST be globally unique and stable for dedupe.
|
||||
|
||||
## Canonical Event Types
|
||||
|
||||
Required for parity with current `bb` behavior:
|
||||
1. `SEND`: directed message created (`to_agent` required, `state=unread`)
|
||||
2. `READ`: message seen (`event_ref` to prior `SEND`)
|
||||
3. `ACK`: message accepted (`event_ref` to prior `SEND`)
|
||||
4. `RESERVE`: scope reservation created
|
||||
5. `RELEASE`: scope reservation released
|
||||
6. `TAKEOVER`: stale/evicted reservation force-acquired
|
||||
7. `RESUME`: identity adoption event
|
||||
8. `BLOCKED`: explicit blocker signal
|
||||
9. `HANDOFF`: explicit transfer signal
|
||||
10. `INCURSION`: overlap warning signal
|
||||
|
||||
## Required Fields by Event
|
||||
|
||||
Shared required fields:
|
||||
- `event_type`
|
||||
- `event_id`
|
||||
- `project_root`
|
||||
- `issue_id`
|
||||
- `actor`
|
||||
- `timestamp`
|
||||
|
||||
Extra required fields:
|
||||
- `SEND`: `to_agent`, `payload.subject`, `payload.body`
|
||||
- `READ`: `event_ref`
|
||||
- `ACK`: `event_ref`
|
||||
- `RESERVE`: `scope`, `payload.ttl_minutes`
|
||||
- `RELEASE`: `scope`
|
||||
- `TAKEOVER`: `scope`, `takeover_mode` (`stale` | `evicted`), `reason`
|
||||
- `RESUME`: `payload.prior_agent`, `reason` (`uncommitted_scope` | `in_progress_ownership`)
|
||||
- `BLOCKED`: `to_agent`, `payload.blocker`, `payload.requested_action`
|
||||
- `HANDOFF`: `to_agent`, `payload.summary`, `payload.next_action`
|
||||
- `INCURSION`: `scope`, `payload.incursion_kind` (`exact` | `partial`), `payload.owner_liveness`
|
||||
|
||||
## Derivation Rules (Frontend/API)
|
||||
|
||||
Inbox projection:
|
||||
- unread: `SEND` with no later `READ`/`ACK` on same `event_id`
|
||||
- read: `READ` exists, no later `ACK`
|
||||
- acked: `ACK` exists
|
||||
|
||||
Reservation projection:
|
||||
- active reservation = latest event for `(project_root, scope)` is `RESERVE` or `TAKEOVER` and not superseded by `RELEASE`
|
||||
- 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
|
||||
|
||||
1. Never rewrite prior protocol events; only append.
|
||||
2. Treat projections as computed views, never source of truth.
|
||||
3. Use Dolt history for postmortems (`bd history`/`bd diff`) against protocol incidents.
|
||||
4. 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:
|
||||
1. Replace `bb agent send/inbox/read/ack` with `bd audit` event writes + API-derived inbox reads.
|
||||
2. Replace `bb reserve/release/status` with `bd audit` reservation events + API overlap/liveness checks.
|
||||
3. Keep `bd` lifecycle commands unchanged.
|
||||
4. Keep human summaries in `bd comments` for operator readability.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# Operative Protocol v1 (Session Constitution)
|
||||
|
||||
Date: 2026-02-14
|
||||
Status: Approved for implementation
|
||||
Status: Approved for implementation (superseded for migration planning by `docs/protocols/2026-02-28-bd-audit-coordination-schema.md`)
|
||||
Scope: `bb-u6f.6.1`
|
||||
Applies to: `bb-u6f.6.2`, `bb-u6f.6.3`, `bb-u6f.6.4`, `bb-u6f.6.5`
|
||||
|
||||
|
|
@ -15,6 +15,10 @@ Boundaries:
|
|||
3. No direct writes to `.beads/issues.jsonl`.
|
||||
4. User-facing labels must stay plain language.
|
||||
|
||||
Migration note:
|
||||
1. New work should target the `coord.v1` `bd audit` event model documented in `docs/protocols/2026-02-28-bd-audit-coordination-schema.md`.
|
||||
2. `bb` coordination semantics are legacy compatibility behavior pending removal after migration sign-off.
|
||||
|
||||
## 2. Normative Language
|
||||
|
||||
1. MUST: required behavior.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue