diff --git a/.beads/backup/backup_state.json b/.beads/backup/backup_state.json index 5677cc0..849aa1a 100644 --- a/.beads/backup/backup_state.json +++ b/.beads/backup/backup_state.json @@ -1,13 +1,13 @@ { - "last_dolt_commit": "4th7doshs1ur27doeflphub7vt24idp4", + "last_dolt_commit": "q7va64sf888hsbbva1if09hd9efsvh2q", "last_event_id": 0, - "timestamp": "2026-03-03T05:36:26.4556258Z", + "timestamp": "2026-03-03T05:53:41.9181695Z", "counts": { - "issues": 536, - "events": 857, + "issues": 538, + "events": 866, "comments": 12, - "dependencies": 746, - "labels": 907, + "dependencies": 747, + "labels": 913, "config": 14 } } \ No newline at end of file diff --git a/.beads/backup/dependencies.jsonl b/.beads/backup/dependencies.jsonl index 1f219af..25f739f 100644 --- a/.beads/backup/dependencies.jsonl +++ b/.beads/backup/dependencies.jsonl @@ -682,6 +682,7 @@ {"created_at":"2026-03-01T18:28:26Z","created_by":"zenchantlive","depends_on_id":"beadboard-6wv","issue_id":"beadboard-mdo","type":"relates-to"} {"created_at":"2026-03-01T18:28:25Z","created_by":"zenchantlive","depends_on_id":"beadboard-76p","issue_id":"beadboard-mdo","type":"relates-to"} {"created_at":"2026-03-01T18:28:26Z","created_by":"zenchantlive","depends_on_id":"beadboard-y8k","issue_id":"beadboard-mdo","type":"relates-to"} +{"created_at":"2026-03-02T21:45:41Z","created_by":"ZenchantLive","depends_on_id":"beadboard-mmd","issue_id":"beadboard-mmd.1","type":"parent-child"} {"created_at":"2026-03-01T22:50:04Z","created_by":"zenchantlive","depends_on_id":"beadboard-n1h","issue_id":"beadboard-n1h.1","type":"parent-child"} {"created_at":"2026-03-01T22:50:15Z","created_by":"zenchantlive","depends_on_id":"beadboard-n1h","issue_id":"beadboard-n1h.2","type":"parent-child"} {"created_at":"2026-03-01T22:50:29Z","created_by":"zenchantlive","depends_on_id":"beadboard-n1h","issue_id":"beadboard-n1h.3","type":"parent-child"} diff --git a/.beads/backup/events.jsonl b/.beads/backup/events.jsonl index a0ce049..6d7b269 100644 --- a/.beads/backup/events.jsonl +++ b/.beads/backup/events.jsonl @@ -855,3 +855,12 @@ {"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T21:33:38Z","event_type":"closed","id":860,"issue_id":"beadboard-3cv.1","new_value":"Made bb/beadboard status usable without --json by ensuring human mode exits successfully even when runtime is down.","old_value":""} {"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T21:33:38Z","event_type":"updated","id":861,"issue_id":"beadboard-3cv.1","new_value":"{\"notes\":\"Memory review: no new reusable memory.\"}","old_value":"{\"id\":\"beadboard-3cv.1\",\"title\":\"Make status command non-failing in human mode\",\"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\",\"notes\":\"Adjusted status exit semantics: in non-json mode status now exits 0 even when runtime is down; in --json mode preserves machine-friendly 0/1 by running state. Added regression assertion in tests/scripts/beadboard-launcher-status-text.test.ts for down-runtime exit code. Verification PASS: node --import tsx --test tests/scripts/beadboard-launcher-status-text.test.ts; node --import tsx --test tests/scripts/beadboard-launcher-runtime.test.ts; npm run typecheck; npm run lint (0 errors, warnings only); npm run test.\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-1kt\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-03T05:31:23Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-03T05:33:38Z\"}"} {"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T21:33:38Z","event_type":"closed","id":862,"issue_id":"beadboard-3cv","new_value":"all steps complete","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T21:45:26Z","event_type":"created","id":863,"issue_id":"beadboard-mmd","new_value":"","old_value":""} +{"actor":"ZenchantLive","comment":"Added label: cli","created_at":"2026-03-02T21:45:26Z","event_type":"label_added","id":864,"issue_id":"beadboard-mmd","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: status","created_at":"2026-03-02T21:45:26Z","event_type":"label_added","id":865,"issue_id":"beadboard-mmd","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: diagnostics","created_at":"2026-03-02T21:45:26Z","event_type":"label_added","id":866,"issue_id":"beadboard-mmd","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T21:45:41Z","event_type":"created","id":867,"issue_id":"beadboard-mmd.1","new_value":"","old_value":""} +{"actor":"ZenchantLive","comment":"Added label: cli","created_at":"2026-03-02T21:45:41Z","event_type":"label_added","id":868,"issue_id":"beadboard-mmd.1","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: status","created_at":"2026-03-02T21:45:41Z","event_type":"label_added","id":869,"issue_id":"beadboard-mmd.1","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: diagnostics","created_at":"2026-03-02T21:45:41Z","event_type":"label_added","id":870,"issue_id":"beadboard-mmd.1","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T21:46:07Z","event_type":"status_changed","id":871,"issue_id":"beadboard-mmd.1","new_value":"{\"assignee\":\"beadboard-1kt\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-mmd.1\",\"title\":\"Clarify backend diagnostics in status output\",\"description\":\"TASK CONTEXT\\\\n- Parent/Epic: beadboard-mmd\\\\n\\\\nTASK CONTRACT\\\\n- Goal: replace ambiguous '.beads DB' status with backend-aware diagnostics.\\\\n- Success Criteria:\\\\n - text status shows sqlite legacy file, sqlite migrated file, dolt repo presence\\\\n - json status includes backend diagnostics object\\\\n - tests validate new fields/labels\\\\n- Scope:\\\\n - install/beadboard.mjs\\\\n - tests/scripts/beadboard-launcher-runtime.test.ts\\\\n - tests/scripts/beadboard-launcher-status-text.test.ts\\\\n- Out of Scope:\\\\n - altering bd storage implementation\\\\n\\\\nVERIFICATION REQUIREMENTS\\\\n- node --import tsx --test tests/scripts/beadboard-launcher-runtime.test.ts\\\\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\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-03T05:45:40Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-03T05:45:40Z\"}"} diff --git a/.beads/backup/issues.jsonl b/.beads/backup/issues.jsonl index dccc9d9..b44c034 100644 --- a/.beads/backup/issues.jsonl +++ b/.beads/backup/issues.jsonl @@ -484,6 +484,8 @@ {"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":"152289ad0c00d2b2df2ceeb196f990229285b157af3494200feb48423aba27ad","created_at":"2026-03-02T23:06:27Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\\n- Parent: beadboard-c70 / beadboard-05a\\n\\nTASK CONTRACT\\n- Goal: Publish final user docs for one-liner install and command usage.\\n- Success Criteria:\\n - docs show windows + linux/mac one-liners\\n - docs explain bb vs beadboard and launcher behavior\\n - docs align with shipped behavior only\\n- Scope: docs + skill boundary notes\\n- Out of Scope: non-shipped roadmap claims\\n\\nVERIFICATION REQUIREMENTS\\n- npm run lint","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-lgs","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 docs: one-liner UX + operator quickstart","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":"SSE refresh test complete - bead should appear and disappear without page reload","closed_at":"2026-02-21T20:50:23Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"e7bc06d037451c7ce09c7f8809077e907db3b57b82cad71b4520b1b165b177cc","created_at":"2026-02-21T20:49:59Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Testing that SSE events trigger UI refresh without manual page reload. This bead will be closed immediately after creation.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-m4f","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":3,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Test Bead - SSE Refresh Verification","updated_at":"2026-02-21T20:50:23Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"Given a multi-param URL update, when the code is reviewed, then it must use a single buildUrlParams then router.push call, not sequential setX() calls.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Ratified canonical memory","closed_at":"2026-03-02T02:28:25Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"3b834ed2860e79b1560932a39726c0e89b1830b64e4c1684115aeb8cc2897f54","created_at":"2026-03-02T02:28:17Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: Any code that updates multiple URL search params (view, taskId, assignMode, graphTab, etc.) in sequence. Out of Scope: Single-param updates. Rule: Never call multiple sequential setX() functions that each rebuild the URL from the same stale searchParams snapshot. Instead, use a single buildUrlParams() call to construct all params atomically, then one router.push(). Rationale: Each setX() reads the current searchParams at call time; if two run in the same tick, the second overwrites the first changes. Failure Mode: Params silently dropped, e.g. view changes but taskId reverts to previous value.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-mdo","is_template":0,"issue_type":"decision","last_activity":null,"metadata":"{\"domain\":\"memory-arch\",\"effective_date\":\"2026-03-02\",\"evidence_ids\":\"beadboard-y8k\",\"memory_strength\":\"hard\",\"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][ARCH][HARD] Atomic URL param updates to avoid stale closure races","updated_at":"2026-03-02T02:28:25Z","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":"1a878a6b4232da5118ec1b3debc7a4a99197e65dfdd956fe55cab2eea5e0ad9a","created_at":"2026-03-03T05:45:26Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\\n- Goal: make status backend diagnostics explicit and unambiguous.\\n\\nTASK CONTRACT\\n- Success Criteria:\\n - status text distinguishes sqlite legacy/migrated and dolt backend presence\\n - status json includes structured backend diagnostics\\n- Scope:\\n - install/beadboard.mjs status payload + rendering\\n - status tests updates\\n- Out of Scope:\\n - backend migration logic 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-mmd","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":"[EPIC] Status Backend Clarity","updated_at":"2026-03-03T05:45:26Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-1kt","await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"e1e371ce42ffb0b37ef2759b377863c6f81462c1334974218a8a4d15c4428686","created_at":"2026-03-03T05:45:40Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\\n- Parent/Epic: beadboard-mmd\\n\\nTASK CONTRACT\\n- Goal: replace ambiguous '.beads DB' status with backend-aware diagnostics.\\n- Success Criteria:\\n - text status shows sqlite legacy file, sqlite migrated file, dolt repo presence\\n - json status includes backend diagnostics object\\n - tests validate new fields/labels\\n- Scope:\\n - install/beadboard.mjs\\n - tests/scripts/beadboard-launcher-runtime.test.ts\\n - tests/scripts/beadboard-launcher-status-text.test.ts\\n- Out of Scope:\\n - altering bd storage implementation\\n\\nVERIFICATION REQUIREMENTS\\n- node --import tsx --test tests/scripts/beadboard-launcher-runtime.test.ts\\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-mmd.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":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"in_progress","target":"","timeout_ns":0,"title":"Clarify backend diagnostics in status output","updated_at":"2026-03-03T05:46:09Z","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":"3f141a037b52de0cc681e41306734997b6a1f7ba63a8a2a3447ea0a5ed8ecb2f","created_at":"2026-03-02T06:49:45Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Parent: None (top-level epic)\n- Dependencies: None yet\n\nTASK CONTRACT\n- Goal: Establish verification confidence through tests and performance baselines\n- Success Criteria:\n - Tests pass before any feature is closed\n - Performance baselines documented\n- Scope:\n - Unit tests for core libs\n - API integration tests\n - Performance baselines\n - Verification gates\n- Out of Scope:\n - Feature implementation\n\nIMPLEMENTATION CONSTRAINTS\n- Tests in tests/ directory\n- Follow TDD workflow\n\nVERIFICATION REQUIREMENTS\n- Required commands: npm run typecheck, npm run lint, npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-n1h","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":"[EPIC] Quality Gates and Testing","updated_at":"2026-03-02T06:49:45Z","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":"98e46be01e4890e7f8ca7f00fa3832dd6d2afa7abeccca9434c8c8feb75603ea","created_at":"2026-03-02T06:50:05Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-n1h.1\n- Parent: beadboard-n1h\n- Dependencies: None\n\nTASK CONTRACT\n- Goal: Implement unit tests for core libraries\n- Success Criteria:\n - Parser tests pass\n - Pathing tests pass\n - Scanner tests pass\n- Scope:\n - src/lib/parser.ts\n - src/lib/pathing.ts\n - src/lib/scanner.ts\n- Out of Scope:\n - Integration tests\n\nVERIFICATION REQUIREMENTS\n- Required commands: npm run typecheck, npm run lint, npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-n1h.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":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"Unit Tests: Core Libraries","updated_at":"2026-03-02T06:50:05Z","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":"47a25adabd198dfe5fda0a4e4341e21dac6baae1ee24c5e28b00a58b75061edd","created_at":"2026-03-02T06:50:16Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-n1h.2\n- Parent: beadboard-n1h\n- Dependencies: None\n\nTASK CONTRACT\n- Goal: Implement API integration tests\n- Success Criteria:\n - Read route tests pass\n - Mutate route tests pass\n - SSE route tests pass\n- Scope:\n - /api/beads/read\n - /api/beads/create, update, close\n - /api/events (SSE)\n- Out of Scope:\n - Unit tests\n\nVERIFICATION REQUIREMENTS\n- Required commands: npm run typecheck, npm run lint, npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-n1h.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":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"API Integration Tests","updated_at":"2026-03-02T06:50:16Z","waiters":"","wisp_type":"","work_type":""} diff --git a/.beads/backup/labels.jsonl b/.beads/backup/labels.jsonl index 5a45c7a..ed754d6 100644 --- a/.beads/backup/labels.jsonl +++ b/.beads/backup/labels.jsonl @@ -830,6 +830,12 @@ {"issue_id":"beadboard-mdo","label":"mem-hard"} {"issue_id":"beadboard-mdo","label":"memory"} {"issue_id":"beadboard-mdo","label":"memory-arch"} +{"issue_id":"beadboard-mmd","label":"cli"} +{"issue_id":"beadboard-mmd","label":"diagnostics"} +{"issue_id":"beadboard-mmd","label":"status"} +{"issue_id":"beadboard-mmd.1","label":"cli"} +{"issue_id":"beadboard-mmd.1","label":"diagnostics"} +{"issue_id":"beadboard-mmd.1","label":"status"} {"issue_id":"beadboard-n1h","label":"quality"} {"issue_id":"beadboard-n1h","label":"testing"} {"issue_id":"beadboard-n1h.1","label":"quality"}