bd: backup 2026-03-03 05:36

This commit is contained in:
zenchantlive 2026-03-02 21:36:27 -08:00
parent e72a99e629
commit 037bf4ea7f
5 changed files with 80 additions and 9 deletions

View file

@ -351,6 +351,8 @@
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Fixed: removed shell layer from runBdCommand. Now uses spawn(bd, args, {shell:false}) directly — args array is verbatim, no quoting issues on Windows or Linux.","closed_at":"2026-03-02T04:38:51Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"0deb8e2899d4a3230895444ff99fefff1b658bbf2ee6cb2c776e54c52e48d3a3","created_at":"2026-03-02T03:58:40Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"When adding a long comment via bd comment, only the first word is stored/displayed. Reproduced: zenchant added a full comment to beadboard-d2x.1 but only 'we' was persisted. Likely a shell quoting or argument parsing issue in the bd comment command or its JSON serialization. Investigate bd comment --help and the API route at src/app/api/beads/comment/route.ts and src/lib/mutations.ts comment handler.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-2qo","is_template":0,"issue_type":"bug","last_activity":null,"metadata":"{}","mol_type":"","notes":"Root cause: Next.js server runs on Windows (process.platform=win32). buildShellCommand wrapped text in double quotes, but Node.js spawn adds another quoting layer on top, mangling the inner quotes. cmd.exe received 'this as first arg instead of 'this is a multi word comment'. Fix: removed shell entirely. execShellCommand replaced with execDirectCommand which uses spawn(executable, args, {shell:false}) — args array passed verbatim to OS, no quoting layer needed. Verified: API call with text='this is a multi word comment after the fix' now stores full text. Gates: typecheck clean, 29/31 tests pass (2 pre-existing url-state failures unrelated).","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Bug: bd comments truncates content after first word","updated_at":"2026-03-02T04:38:51Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Not doing today - just reviewing bead setup","closed_at":"2026-03-02T05:44:56Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"6d0e239ddfcc6aad2a5ba4b8ca969d57d389113db0e7b8405cd457061a84e042","created_at":"2026-03-02T05:44:05Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Rewrites beadboard-driver SKILL.md to v4 contract","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-2qy","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Agent: skill-rewriter","updated_at":"2026-03-02T05:44:56Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"e2b97837e61514dddcc83954d6025f909f9147e5ddc0d8b84af4e517579ea756","created_at":"2026-02-21T04:00:53Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-2ua","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"Implement Frontend UI","updated_at":"2026-02-21T04:00:53Z","waiters":"","wisp_type":"","work_type":"mutex"}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"all steps complete","closed_at":"2026-03-03T05:33:39Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"db4890641dd1d9e1962ff7f013483c5a1b4e87dc0c9fe8ea78482c460e96c861","created_at":"2026-03-03T05:31:10Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\\n- Goal: keep status usable in shell scripts and interactive terminals.\\n\\nTASK CONTRACT\\n- Success Criteria:\\n - non-json status is usable even when server is down\\n - tests cover exit behavior\\n- Scope:\\n - launcher status exit semantics\\n- Out of Scope:\\n - JSON schema changes\\n\\nVERIFICATION REQUIREMENTS\\n- npm run typecheck\\n- npm run lint\\n- npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-3cv","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"[EPIC] Status Exit-Code UX","updated_at":"2026-03-03T05:33:39Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-1kt","await_id":"","await_type":"","close_reason":"Made bb/beadboard status usable without --json by ensuring human mode exits successfully even when runtime is down.","closed_at":"2026-03-03T05:33:38Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"ad6b5e34c5380a5df481f688367fb43a8f327f278c2b8f9ead4957be6de01a8f","created_at":"2026-03-03T05:31:23Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\\n- Parent/Epic: beadboard-3cv\\n\\nTASK CONTRACT\\n- Goal: ensure bb/beadboard status works without --json even when runtime is down.\\n- Success Criteria:\\n - status exits 0 in human mode\\n - JSON still returns diagnostics and stable fields\\n - tests updated accordingly\\n- Scope:\\n - install/beadboard.mjs status exit logic\\n - launcher status tests\\n- Out of Scope:\\n - command surface redesign\\n\\nVERIFICATION REQUIREMENTS\\n- node --import tsx --test tests/scripts/beadboard-launcher-status-text.test.ts\\n- node --import tsx --test tests/scripts/beadboard-launcher-runtime.test.ts\\n- npm run typecheck\\n- npm run lint\\n- npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-3cv.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Memory review: no new reusable memory.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Make status command non-failing in human mode","updated_at":"2026-03-03T05:33:38Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Completed: Standardized icon buttons across DAG nodes and social cards. Commits c246cea, a0787f8.","closed_at":"2026-03-02T02:26:54Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"ce2604a43d4092c254caa1254fcab4a65f940b754ff465699c5a14ee8b47598d","created_at":"2026-03-02T02:25:54Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Standardized icon buttons across DAG nodes and social cards. Removed deprecated Orbit/Activity buttons, replaced with MessageSquare (view details/conversation), GitBranch (DAG view), Rocket (assign), and Signal (telemetry). Conversation priority: taskId always shows conversation panel over assign panel. Scope: graph-node-card.tsx, social-card.tsx, social-page.tsx. Success Criteria: Consistent icon set across all card types with correct panel behavior.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-3de","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Standardize DAG node and social card icon buttons","updated_at":"2026-03-02T02:26:54Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"Document root cause, exact repair commands, final counts, and restart steps for dolt server","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Recovered active Dolt dataset to 381 issues, restored non-empty ready queue, and documented repeatable repair steps + server prerequisites.","closed_at":"2026-02-28T18:21:01Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"bada9a1f2c63666e70f1d526e68d101e47b518b2b5106a852a00e4c2c5599a38","created_at":"2026-02-28T18:20:48Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Capture successful Dolt reconciliation after bd 0.56.1 migration and lock/server failures.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-3t8","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Root cause: state divergence and backend drift. .beads/issues.jsonl + beads.db had 381 issues, while active Dolt DB exposed only 4 due stale/incorrect Dolt dataset, stale lock files, and server-mode requirements after upgrading bd.\\n\\nRepair sequence that worked:\\n1) Upgraded bd to 0.56.1.\\n2) Installed local dolt binary (~/.local/bin/dolt).\\n3) Started local dolt sql-server on 127.0.0.1:3307 rooted at .beads/dolt.\\n4) Verified source-of-truth candidate counts: issues.jsonl=381 and beads.db=381 matched.\\n5) Recovered known-good 381-issue Dolt dataset from backup path and restored into active .beads/dolt/beadboard.\\n6) Set active dolt database via 'bd dolt set database beadboard'.\\n7) Re-ran status/ready/list verification.\\n\\nFinal verification:\\n- bd status =\u003e Total 381, Open 66, Blocked 23, Closed 219, Ready 43\\n- bd ready -n 20 =\u003e non-empty (42 ready total)\\n- bd list --all --json =\u003e total 381; status counts {open:66, closed:219, tombstone:94, deferred:2}\\n\\nOperational note:\\n- bd 0.56.1 is server-mode for Dolt; ensure dolt sql-server is running on configured host/port before bd commands.\\n- If unavailable, restart from repo with: cd .beads/dolt \u0026\u0026 dolt sql-server --host 127.0.0.1 --port 3307","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Dolt/JSONL recovery: restore beadboard issue inventory","updated_at":"2026-02-28T18:21:01Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"b7358e2500ddbd6ab2157d800925c3e62edee73814034f7c334eeebef9528256","created_at":"2026-02-21T04:00:36Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-3xc","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"Swarm Test: Order Processing System","updated_at":"2026-02-21T04:00:36Z","waiters":"","wisp_type":"","work_type":"mutex"}
@ -454,6 +456,8 @@
{"acceptance_criteria":"Given independent subtasks, when execution starts, then each subtask has explicit ownership and verification evidence.\nVerification command(s): bd dep tree \u003cepic-id\u003e; bd ready; git status --short","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Ratified canonical memory","closed_at":"2026-03-02T00:39:57Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"58dedbce1a26e2564d00aa59ee8560b614f3e5f388d7006ae544abf591f37d40","created_at":"2026-03-02T00:39:56Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Scope: Any task with 2+ independent units of work.\nOut of Scope: Single-file trivial edits.\nRule: Parallelize independent reads/exploration and isolate ownership for independent execution threads.\nRationale: Reduces cycle time while preserving traceability.\nFailure Mode: Serial execution on independent work causes avoidable delays.\n","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-dvp","is_template":0,"issue_type":"decision","last_activity":null,"metadata":"{\"domain\":\"memory-agent\",\"effective_date\":\"2026-03-02\",\"evidence_ids\":\"bb-u6f.6,bb-u6f.6.1,beadboard-r1i\",\"memory_strength\":\"soft\",\"memory_version\":1,\"owner\":\"team\",\"plan_refs\":\"docs/plans/2026-02-28-bd-only-coordination-migration-plan.md\",\"superseded_by\":null,\"supersedes\":null}","mol_type":"","notes":"Provenance linked: bb-u6f.6, bb-u6f.6.1, beadboard-r1i","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"[MEMORY][AGENT][SOFT] Parallelize independent work with clear ownership","updated_at":"2026-03-02T00:53:58Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"Given a new panel-switching trigger from any view, when implementation is reviewed, then the trigger routes through unified-shell handler props, not local component state.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Ratified canonical memory","closed_at":"2026-03-02T02:28:51Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"dc81055193cbc3465d327d4277ed0f5cf12f672a711ce291286f3631d0702b7b","created_at":"2026-03-02T02:28:44Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: Right panel mode switching (conversation, assign, telemetry, minimize/restore). Out of Scope: Left panel and top bar state. Rule: unified-shell.tsx is the single source of truth for right panel state (assignMode, taskId, lastTaskId, lastAssignMode). All panel-switching flows from any view (DAG nodes, social cards, top bar) must route through unified-shell handlers, not manage panel state locally. Rationale: LaunchSwarmDialog failed because it was a parallel panel system. Centralizing in unified-shell prevents state desync across views. Failure Mode: Local panel state in child components causes inconsistent behavior depending on which view the user entered from.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-e6w","is_template":0,"issue_type":"decision","last_activity":null,"metadata":"{\"domain\":\"memory-ux\",\"effective_date\":\"2026-03-02\",\"evidence_ids\":\"beadboard-dud,beadboard-8yd\",\"memory_strength\":\"soft\",\"memory_version\":1,\"owner\":\"team\",\"plan_refs\":\"\",\"superseded_by\":null,\"supersedes\":null}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"[MEMORY][UX][SOFT] Unified-shell owns all right-panel state transitions","updated_at":"2026-03-02T02:28:51Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"sysarchitect-01","await_id":"","await_type":"","close_reason":"","closed_at":"2026-02-26T01:53:00Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"8f7527a166f80da24341c6f5e75236a288ffeeb01edae418ed05484aec5a767f","created_at":"2026-02-21T04:01:11Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-eo8","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Design New Component","updated_at":"2026-02-26T01:53:00Z","waiters":"","wisp_type":"","work_type":"mutex"}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"all steps complete","closed_at":"2026-03-03T05:27:11Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"0c13dab585565ea73ec6cdb9b9d81d5c5b795eb77fc7c9d2b28553e1ab8bd796","created_at":"2026-03-03T05:24:24Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\\n- Goal: make bb/beadboard help output human-usable by default.\\n\\nTASK CONTRACT\\n- Success Criteria:\\n - --help prints readable command guide\\n - --json retains structured output\\n- Scope:\\n - cli help rendering path\\n- Out of Scope:\\n - command behavior changes beyond help text\\n\\nVERIFICATION REQUIREMENTS\\n- npm run typecheck\\n- npm run lint\\n- npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-f31","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"[EPIC] CLI Help UX","updated_at":"2026-03-03T05:27:11Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-1kt","await_id":"","await_type":"","close_reason":"Made --help human-readable by default with json opt-in preserved and tests verified.","closed_at":"2026-03-03T05:27:10Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"a56d75f6441a8742a556f3d866efaa90f8c0b4bb2d23a59362c3929e83e30928","created_at":"2026-03-03T05:24:31Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\\n- Parent/Epic: beadboard-f31\\n\\nTASK CONTRACT\\n- Goal: return readable help text for bb/beadboard --help unless --json requested.\\n- Success Criteria:\\n - bb --help prints usage and command groups\\n - --json still returns structured payload\\n - tests cover both paths\\n- Scope:\\n - src/cli/beadboard-cli.ts output path\\n- Out of Scope:\\n - new command implementations\\n\\nVERIFICATION REQUIREMENTS\\n- node --import tsx --test tests/cli/beadboard-help-output.test.ts\\n- npm run typecheck\\n- npm run lint\\n- npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-f31.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Memory review: no new reusable memory.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Make --help human-readable by default","updated_at":"2026-03-03T05:27:10Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"Given a workaround task, when created, then trigger, rollback criteria, and retirement owner are present.\nVerification command(s): bd show \u003cworkaround-id\u003e","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Ratified canonical memory","closed_at":"2026-03-02T00:40:03Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"b63e0ea4d4920bde46d19ad0a3bbe214fb4669e0f0a1d346cca2a4dabe8d252e","created_at":"2026-03-02T00:40:02Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Scope: Temporary workaround decisions under delivery pressure.\nOut of Scope: Final architecture decisions already ratified.\nRule: Any workaround must include trigger conditions, rollback criteria, and owner for retirement.\nRationale: Keeps tactical decisions from becoming accidental permanent architecture.\nFailure Mode: Undocumented workaround debt accumulates and obscures system intent.\n","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-fga","is_template":0,"issue_type":"decision","last_activity":null,"metadata":"{\"domain\":\"memory-reliability\",\"effective_date\":\"2026-03-02\",\"evidence_ids\":\"bb-ff6,bb-6bx,beadboard-5vs\",\"memory_strength\":\"soft\",\"memory_version\":1,\"owner\":\"team\",\"plan_refs\":\"docs/plans/2026-02-28-bd-only-coordination-migration-plan.md,docs/plans/2026-02-22-dag-views-ux-design.md\",\"superseded_by\":null,\"supersedes\":null}","mol_type":"","notes":"Provenance linked: bb-ff6, bb-6bx, beadboard-5vs","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"[MEMORY][RELIABILITY][SOFT] Workarounds require trigger rollback and owner","updated_at":"2026-03-02T00:54:07Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"Canonical UI/UX memories are related to this anchor via bd dep relate.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"20f7b859593b2616b5e07a51d20d07e392aa37468421e31d2854243508fbacde","created_at":"2026-03-02T00:39:16Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Domain anchor for UI/UX rules, accessibility constraints, and component usage patterns.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-fld","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"[MEMORY-ANCHOR] UI/UX","updated_at":"2026-03-02T00:39:16Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"6 archetypes with comprehensive system prompts (200-400 lines each), handoff protocols defined, all prompts follow structured format (phases, output format, examples), archetypes load correctly in UI, test-agent.json deleted","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Completed 6 comprehensive agent archetypes with detailed system prompts (200-400 lines each), handoff protocols, workflow phases, and examples. All verification gates pass.","closed_at":"2026-02-26T03:14:31Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"35fb89e510008e4ecc977565f01996e074296f356dce072ed6d74097d8a87fcb","created_at":"2026-02-26T02:52:12Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-fp5","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"Created 6 comprehensive archetypes: architect, engineer, reviewer, tester, investigator, shipper. Each has 200+ line system prompts with workflow phases, handoff protocols, and examples. Deleted test-agent.json placeholder. All verification gates pass (typecheck, lint warnings only, tests pass).","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Comprehensive Agent Archetype System v2","updated_at":"2026-02-26T03:14:31Z","waiters":"","wisp_type":"","work_type":"mutex"}
@ -496,13 +500,15 @@
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Added taskId and swarmId to ContextualRightPanelProps. UnifiedShell now passes both. TypeScript clean. Stubs ready for r1i.2 and r1i.3.","closed_at":"2026-02-28T21:55:18Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"3ef20d3633b6b730d2be311b235b917e037bd189fa15aad32e4eab5cc7ca53b4","created_at":"2026-02-28T21:44:20Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-r1i.1\n- Title: Extend ContextualRightPanel props and thread taskId/swarmId from UnifiedShell\n- Parent/Epic: beadboard-r1i\n- Dependencies: none (first in phase)\n\nTASK CONTRACT\n- Goal: Add taskId and swarmId to ContextualRightPanelProps and pass them from UnifiedShell, so child tasks can implement per-branch rendering. No visible change yet — stubs only.\n- Success Criteria:\n - ContextualRightPanelProps includes taskId?: string | null and swarmId?: string | null\n - UnifiedShell passes both params to \u003cContextualRightPanel\u003e\n - TypeScript compiles clean (npm run typecheck passes)\n - Existing epicId branch and ActivityPanel fallback continue working\n- Scope:\n - src/components/activity/contextual-right-panel.tsx — props interface only\n - src/components/shared/unified-shell.tsx — pass taskId, swarmId to ContextualRightPanel call (~line 162)\n- Out of Scope:\n - Implementing the actual task or swarm branch content (that is r1i.2, r1i.3)\n - Adding agentId (no agent detail view planned for this phase)\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\n- Reuse shared components and logic; avoid one-off forks.\n- Keep changes targeted and minimal for this bead.\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Report any remaining risks and follow-up beads explicitly.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-r1i.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Extend ContextualRightPanel props and thread taskId/swarmId from shell","updated_at":"2026-02-28T21:55:18Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"TaskId branch added to ContextualRightPanel: ThreadDrawer in embedded mode renders task thread and issue metadata when taskId is set. No new typecheck errors.","closed_at":"2026-02-28T22:57:02Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"74cfd55061e51e0650d1de80be05f566293b27fb3b0657a2fcd5139353680776","created_at":"2026-02-28T21:53:57Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-r1i.2\n- Title: Implement task branch in ContextualRightPanel (?task=X)\n- Parent/Epic: beadboard-r1i\n- Dependencies: beadboard-r1i.1 (taskId prop must exist on ContextualRightPanel)\n\nTASK CONTRACT\n- Goal: When a task is selected (taskId is set), the right panel shows the task thread and issue metadata using ThreadDrawer in embedded mode.\n- Success Criteria:\n - Selecting any task card opens right panel showing that task's thread (comments, events)\n - ThreadDrawer renders in embedded mode (no modal/overlay behaviour)\n - Issue title, status badge, and thread items are visible in the right panel\n - Deselecting the task (clearing taskId) returns right panel to ActivityPanel global feed\n - npm run typecheck passes\n- Scope:\n - src/components/activity/contextual-right-panel.tsx — add taskId branch before the ActivityPanel fallback\n - ThreadDrawer already exists at src/components/shared/thread-drawer.tsx with embedded prop\n - Use ThreadDrawer with: embedded=true, isOpen=true, issue from issues array, projectRoot\n- Out of Scope:\n - Agent assignment controls in the right panel (Phase 3)\n - Creating a new component — reuse ThreadDrawer embedded mode\n - Modifying ThreadDrawer itself\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\n- Reuse shared components and logic; avoid one-off forks.\n- Keep changes targeted and minimal for this bead.\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Report any remaining risks and follow-up beads explicitly.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-r1i.2","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Implement task branch in ContextualRightPanel (?task=X)","updated_at":"2026-02-28T22:57:02Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"SwarmId branch added via SwarmIdBranch inner component (hooks-safe): MissionInspector renders with useSwarmList for title lookup. assignedAgents wired to swarm.agents (TODO: populate from agent-registry). No new typecheck errors.","closed_at":"2026-02-28T22:57:02Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"0df7a8334f864d76d49b9a9cee494425371e6487079465a3019470ff277007ca","created_at":"2026-02-28T21:54:08Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-r1i.3\n- Title: Implement swarm branch in ContextualRightPanel (?swarm=X)\n- Parent/Epic: beadboard-r1i\n- Dependencies: beadboard-r1i.1 (swarmId prop must exist on ContextualRightPanel)\n\nTASK CONTRACT\n- Goal: When a swarm is selected (swarmId is set), the right panel shows MissionInspector with that swarm's topology, agent roster, and mission status.\n- Success Criteria:\n - Navigating to ?swarm=X renders MissionInspector in the right panel\n - MissionInspector receives correct missionId, missionTitle, projectRoot, assignedAgents\n - Existing epicId and task branches are unaffected\n - npm run typecheck passes\n- Scope:\n - src/components/activity/contextual-right-panel.tsx — add swarmId branch\n - MissionInspector at src/components/mission/mission-inspector.tsx (props: missionId, missionTitle, projectRoot, assignedAgents, onClose, onAssign)\n - Resolve assignedAgents: check useSwarmList hook or /api/agents — use whatever UnifiedShell already has available\n - onClose: clear swarmId from URL state; onAssign: call /api/mission/assign\n- Out of Scope:\n - Building a new swarm inspector UI — MissionInspector already exists\n - Graph swarm overlay highlighting (Phase 3)\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\n- Reuse shared components and logic; avoid one-off forks.\n- Keep changes targeted and minimal for this bead.\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Report any remaining risks and follow-up beads explicitly.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-r1i.3","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Implement swarm branch in ContextualRightPanel (?swarm=X)","updated_at":"2026-02-28T22:57:02Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"all steps complete","closed_at":"2026-03-03T05:23:17Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"1c26a7ef1465aa879d62169dad4adbafcc8e1d12dbe9e2e8fdba2aedf93fccd3","created_at":"2026-03-03T05:20:30Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\\n- Goal: Improve non-json status UX with complete operational diagnostics.\\n\\nTASK CONTRACT\\n- Success Criteria:\\n - prints runtime + bd diagnostics clearly\\n - output remains stable and parse-friendly for humans\\n- Scope:\\n - launcher text rendering for status\\n- Out of Scope:\\n - redesigning JSON schema\\n\\nVERIFICATION REQUIREMENTS\\n- npm run typecheck\\n- npm run lint\\n- npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-rc8","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"[EPIC] Status UX Diagnostics (Text Mode)","updated_at":"2026-03-03T05:23:17Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-1kt","await_id":"","await_type":"","close_reason":"Added full non-json status diagnostics output with tests and full verification evidence.","closed_at":"2026-03-03T05:23:16Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"77246652eb00507727d8f21b3f9dfaa8cf34f4c0c9675354cd1514871855daf1","created_at":"2026-03-03T05:20:44Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\\n- Parent/Epic: beadboard-rc8\\n\\nTASK CONTRACT\\n- Goal: Make status output (without --json) print complete runtime and bd diagnostics.\\n- Success Criteria:\\n - text output includes running/url/port/runtime/installMode/shimTarget/bd/project checks\\n - focused tests cover text mode\\n- Scope:\\n - install/beadboard.mjs text output path\\n - new/updated launcher status tests\\n- Out of Scope:\\n - adding new commands\\n\\nVERIFICATION REQUIREMENTS\\n- node --import tsx --test tests/scripts/beadboard-launcher-status-text.test.ts\\n- npm run typecheck\\n- npm run lint\\n- npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-rc8.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Memory review: no new reusable memory.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Add comprehensive non-json status diagnostics","updated_at":"2026-03-03T05:23:16Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Session ended","closed_at":"2026-03-02T06:35:25Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"f3fd2e66f7e34039954ee1a1697e3af1d6a040797dc882261600a87e477a772f","created_at":"2026-03-02T03:38:27Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Main Claude Code session acting as orchestrator for Phase 4 (beadboard-x3l) and related epics. Responsible for planning, dispatching parallel agents, and integration verification.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-rnk","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Agent: claude-orchestrator","updated_at":"2026-03-02T06:35:25Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Recreating as proper children of Phase 0 epic with correct naming","closed_at":"2026-02-28T21:02:57Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"d17805f0481b485f2e4b35b96ad1ad0633bc21989a9db4622fb7270e3945aefd","created_at":"2026-02-28T20:59:48Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"The views array in LeftPanel and the tabs array in MobileNav both only have Social and Graph. Activity is a valid view but unreachable from navigation.\n\nFile 1: src/components/shared/left-panel.tsx\nLocation: views array (~line 188)\nChange:\n const views: Array\u003c{ id: ViewType; label: string }\u003e = [\n { id: 'social', label: 'Social' },\n { id: 'graph', label: 'Graph' },\n { id: 'activity', label: 'Activity' }, // add this\n ];\n\nFile 2: src/components/shared/mobile-nav.tsx\nLocation: tabs array (~line 6)\nChange: Add Activity tab and replace Unicode glyphs with Lucide icons:\n import { LayoutList, Share2, Activity } from 'lucide-react';\n const tabs = [\n { id: 'social', label: 'Social', icon: \u003cLayoutList className='h-5 w-5' /\u003e },\n { id: 'graph', label: 'Graph', icon: \u003cShare2 className='h-5 w-5' /\u003e },\n { id: 'activity', label: 'Activity', icon: \u003cActivity className='h-5 w-5' /\u003e },\n ];\nAlso add aria-label={tab.label} to each tab button, and update render to use {tab.icon} JSX (not string).\n\nCheck mobile-nav.tsx current icon rendering before changing - confirm the tab type and render pattern.\n\nAcceptance: Left panel and mobile nav both show three tabs (Social, Graph, Activity). Mobile nav icons are Lucide SVGs with aria-labels.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-t83","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"P0.3: Add Activity tab to LeftPanel and MobileNav","updated_at":"2026-02-28T21:02:57Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Fixed: filtered memory-anchor and brainstorm epics, added hideClosed check for epic status","closed_at":"2026-03-02T07:10:54Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"7d6965a299fa1a0f55665eb1203e1a1385b3f1b453676d145b50722be65c8c85","created_at":"2026-03-02T07:05:48Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"## Context\nEpics with zero child tasks are hidden in the left panel when hideClosed=true (the default).\n\n## Root Cause\nLine 327 in left-panel.tsx:\n\n\nThis hides ANY epic with matchedChildren=0 when filters are active. Since hideClosed defaults to true, this hides ALL epics that have no children (which is ALL epics currently since none have parent-child deps).\n\n## Fix\nChange condition to only hide if the epic HAS children but they're all filtered out:\n","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-tmj","is_template":0,"issue_type":"bug","last_activity":null,"metadata":"{}","mol_type":"","notes":"Fixed two issues in left-panel.tsx:\n1. Line 73: Filter out memory-anchor and brainstorm epics from epic list\n2. Line 327: Added check to hide closed/tombstone epics when hideClosed=true\n\nBefore: ALL epics were hidden because:\n- hideClosed defaults to true\n- No code checked epic status, only matchedChildren\n- All 0-child epics were hidden\n\nAfter:\n- Memory anchors (memory-anchor label) filtered out\n- Brainstorm epics (brainstorm label) filtered out \n- Closed/tombstone epics hidden when hideClosed=true\n- Epics with children only hidden when all children filtered\n\nVerification: npm run typecheck PASS, npm run lint PASS (warnings only), npm run test PASS (2 pre-existing failures)","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"[BUG] Epics with no children hidden by hideClosed filter","updated_at":"2026-03-02T07:10:54Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"377b5d4104ed31da8b821ae918d2d8ad5683c0a0328cf5b3e4a5f8f0488fa778","created_at":"2026-03-03T03:35:22Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: Improve the Dependency Graph and Workflow Graph views to clearly indicate critical paths, differentiate between direct and indirect (transitive) blocks, and use status colors effectively. Out of scope: Other graph layouts. Success Criteria: Edges correctly reflect their dependency types visually.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-txj","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"Epic: Enhanced Graph Edge Visualization","updated_at":"2026-03-03T03:35:22Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"377b5d4104ed31da8b821ae918d2d8ad5683c0a0328cf5b3e4a5f8f0488fa778","created_at":"2026-03-03T03:35:22Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: Improve the Dependency Graph and Workflow Graph views to clearly indicate critical paths, differentiate between direct and indirect (transitive) blocks, and use status colors effectively. Out of scope: Other graph layouts. Success Criteria: Edges correctly reflect their dependency types visually.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-txj","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"Epic: Enhanced Graph Edge Visualization","updated_at":"2026-03-03T05:25:20Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-8bs","await_id":"","await_type":"","close_reason":"Core calculation algorithm implemented successfully.","closed_at":"2026-03-03T03:45:29Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"a563eaa2c8d8a9c0a243bb4c01a4cce5a8f7115faa877fb20eab12e2c7d041d2","created_at":"2026-03-03T03:36:09Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: Write a robust algorithm that processes DAG nodes to identify transitive (redundant) edges across paths.\\nOut of scope: UI rendering.\\nSuccess Criteria: Takes nodes and edges, returns map of edges indicating if they are transitive or direct.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-txj.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Transitive Reduction implemented via BFS path search. Test coverage added in graph-view.test.ts. bun run lint/typecheck/test passed cleanly.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Implement graph transitive reduction algorithm","updated_at":"2026-03-03T03:45:29Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-8bs","await_id":"","await_type":"","close_reason":"Transitive edges \u0026 status colors successfully implemented and tested.","closed_at":"2026-03-03T04:39:01Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"cc808e100e7509c2123748fe9dc1d30000e7bc86393c218de0b2101533a03553","created_at":"2026-03-03T03:36:41Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: Update ReactFlow Edge generation in workflow-graph.tsx, dependency-graph-page.tsx, and specialized-agent-dag.tsx.\\nOut of scope: Algorithm calculation.\\nSuccess Criteria: Critical/in-progress edges glow bright amber. Standard direct edges are blue/slate. Transitive edges are dimmed/dashed dark gray.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-txj.2","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"npm run test passed. Transitive edge styling verified.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Apply Status Colors and Transitive Context to Graph Edges","updated_at":"2026-03-03T04:39:01Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-agent-anti","await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"aef161a5808c27085a8c50f34a4c620aab93c63c3a10b38ab193f3b6db9dcd92","created_at":"2026-03-03T03:36:42Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: When a node is clicked, highlight inbound/outbound blockers clearly, fading out the rest of the graph.\\nSuccess Criteria: The critical chain of a selected task is visually obvious.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-txj.3","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"in_progress","target":"","timeout_ns":0,"title":"Implement Graph Focus (Selection) Interactivity","updated_at":"2026-03-03T04:43:33Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-8bs","await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"cc808e100e7509c2123748fe9dc1d30000e7bc86393c218de0b2101533a03553","created_at":"2026-03-03T03:36:41Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: Update ReactFlow Edge generation in workflow-graph.tsx, dependency-graph-page.tsx, and specialized-agent-dag.tsx.\\nOut of scope: Algorithm calculation.\\nSuccess Criteria: Critical/in-progress edges glow bright amber. Standard direct edges are blue/slate. Transitive edges are dimmed/dashed dark gray.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-txj.2","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"npm run test passed. Transitive edge styling verified.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"Apply Status Colors and Transitive Context to Graph Edges","updated_at":"2026-03-03T05:25:20Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-agent-anti","await_id":"","await_type":"","close_reason":"Critical chain focus highlighting successfully implemented.","closed_at":"2026-03-03T05:21:57Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"aef161a5808c27085a8c50f34a4c620aab93c63c3a10b38ab193f3b6db9dcd92","created_at":"2026-03-03T03:36:42Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: When a node is clicked, highlight inbound/outbound blockers clearly, fading out the rest of the graph.\\nSuccess Criteria: The critical chain of a selected task is visually obvious.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-txj.3","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Completed critical chain highlighting using BFS on the graph edges, and tests pass cross-platform.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Implement Graph Focus (Selection) Interactivity","updated_at":"2026-03-03T05:21:57Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"4dcd31b65efe95769e88dce31f997399a2273058aa1354b9c991484eb54aaac9","created_at":"2026-03-02T23:06:25Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\\n- Parent: beadboard-c70 / beadboard-05a\\n\\nTASK CONTRACT\\n- Goal: Add installer and launcher smoke tests for Windows/Linux/mac and wire CI matrix.\\n- Success Criteria:\\n - install smoke tests per OS\\n - reinstall/idempotency + failure-mode checks\\n - CI matrix jobs for installer smoke\\n- Scope: tests and workflow config\\n- Out of Scope: enterprise installer signing pipeline\\n\\nVERIFICATION REQUIREMENTS\\n- npm run typecheck\\n- npm run lint\\n- npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-u4i","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Superseded by hierarchical execution tree under beadboard-05a.x","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"deferred","target":"","timeout_ns":0,"title":"Installer test matrix + CI smoke coverage","updated_at":"2026-03-02T23:16:16Z","waiters":"","wisp_type":"","work_type":""}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"3763e0c47b3c3d6a4bd7e3ac46608778454e56437df140bdd9d09185198cd7d0","created_at":"2026-02-24T01:36:39Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-uui","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"## Goal\nMerge the duplicate graph implementations (?view=graph, ?view=swarm, and /graph page) into one enhanced graph view with two modes:\n- Analysis mode (default): Full dependency DAG with progressive disclosure\n- Assign mode (toggled): DAG highlights ready nodes, right panel shows assignment controls\n\n## Problem\nBeadBoard has two views (`?view=graph` and `?view=swarm`) that both render the same `WorkflowGraph` DAG component, creating duplication. The standalone `/graph` page (`DependencyGraphPage`) has rich dependency analysis features (hop depth, focus workspace, cycle detection, flow strip) that are stranded -- the shell's `?view=graph` is a bare 49-line wrapper (`SmartDag`) with none of them.\n\n## Success Criteria\n- ?view=graph shows enhanced DAG with all dependency analysis features\n- 'Assign' toggle enables task assignment workflow\n- ?view=swarm deprecated (falls back to default view)\n- Archetypes/Templates accessible from assign mode right panel\n- All implementation steps completed\n- npm run typecheck, lint, test all pass\n\n## Scope\n- SmartDag rewrite with progressive disclosure + tabs + assign mode\n- AssignmentPanel component for assign mode\n- useGraphAnalysis hook extraction\n- Swarm view removal from navigation\n- Delete deprecated swarm files\n\n## Out of Scope\n- Backend API changes (use existing /api/swarm/prep)\n- New archetypes/templates features\n- Mobile-specific layouts\n\n## Reference\nPRD: docs/prd/unified-graph-view.md","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"tombstone","target":"","timeout_ns":0,"title":"Unify Graph + Swarm into Single Enhanced Graph View","updated_at":"2026-02-24T01:40:52Z","waiters":"","wisp_type":"","work_type":"mutex"}
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Cleaning up test bead","closed_at":"2026-02-21T21:16:00Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"f09f1a0a8263bb776250a97189934101bb7629cc7ef72bab18cf0b8ce5bfbeef","created_at":"2026-02-21T20:59:15Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-uuo","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"SSE Test Bead","updated_at":"2026-02-21T21:16:00Z","waiters":"","wisp_type":"","work_type":"mutex"}