bd: backup 2026-03-02 04:54

This commit is contained in:
zenchantlive 2026-03-01 20:54:03 -08:00
parent d495fae38f
commit 0a3aa3d90b
4 changed files with 23 additions and 6 deletions

View file

@ -1,12 +1,12 @@
{
"last_dolt_commit": "h3bsl0648aankifibnl5406g0esefhbq",
"last_dolt_commit": "su5slrtv80udg5vv8ghgpe1egkipv8sj",
"last_event_id": 0,
"timestamp": "2026-03-02T04:38:33.535706499Z",
"timestamp": "2026-03-02T04:54:02.7377079Z",
"counts": {
"issues": 454,
"events": 280,
"issues": 457,
"events": 288,
"comments": 13,
"dependencies": 603,
"dependencies": 609,
"labels": 683,
"config": 14
}

View file

@ -452,6 +452,10 @@
{"created_at":"2026-02-28T16:59:47Z","created_by":"ZenchantLive","depends_on_id":"beadboard-550.2","issue_id":"beadboard-550.3","type":"blocks"}
{"created_at":"2026-02-28T16:59:47Z","created_by":"ZenchantLive","depends_on_id":"beadboard-550","issue_id":"beadboard-550.4","type":"parent-child"}
{"created_at":"2026-02-28T16:59:47Z","created_by":"ZenchantLive","depends_on_id":"beadboard-550.3","issue_id":"beadboard-550.4","type":"blocks"}
{"created_at":"2026-03-01T20:45:56Z","created_by":"ZenchantLive","depends_on_id":"beadboard-5kf","issue_id":"beadboard-5kf.1","type":"parent-child"}
{"created_at":"2026-03-01T20:47:44Z","created_by":"ZenchantLive","depends_on_id":"beadboard-6fv","issue_id":"beadboard-5kf.1","type":"relates-to"}
{"created_at":"2026-03-01T20:47:44Z","created_by":"ZenchantLive","depends_on_id":"beadboard-duo","issue_id":"beadboard-5kf.1","type":"relates-to"}
{"created_at":"2026-03-01T20:48:12Z","created_by":"ZenchantLive","depends_on_id":"beadboard-5kf","issue_id":"beadboard-5kf.2","type":"parent-child"}
{"created_at":"2026-03-01T16:39:58Z","created_by":"ZenchantLive","depends_on_id":"beadboard-dvp","issue_id":"beadboard-5r1","type":"relates-to"}
{"created_at":"2026-02-24T01:38:23Z","created_by":"zenchantlive","depends_on_id":"beadboard-ck0","issue_id":"beadboard-5sr","type":"blocks"}
{"created_at":"2026-02-24T01:38:07Z","created_by":"zenchantlive","depends_on_id":"beadboard-uui","issue_id":"beadboard-5sr","type":"parent"}
@ -475,6 +479,7 @@
{"created_at":"2026-03-01T16:54:05Z","created_by":"ZenchantLive","depends_on_id":"bb-tpc.3","issue_id":"beadboard-6fv","type":"relates-to"}
{"created_at":"2026-03-01T16:54:05Z","created_by":"ZenchantLive","depends_on_id":"bb-xtu","issue_id":"beadboard-6fv","type":"relates-to"}
{"created_at":"2026-03-01T16:54:04Z","created_by":"ZenchantLive","depends_on_id":"beadboard-03r","issue_id":"beadboard-6fv","type":"relates-to"}
{"created_at":"2026-03-01T20:47:45Z","created_by":"ZenchantLive","depends_on_id":"beadboard-5kf.1","issue_id":"beadboard-6fv","type":"relates-to"}
{"created_at":"2026-03-01T16:54:05Z","created_by":"ZenchantLive","depends_on_id":"beadboard-8rg","issue_id":"beadboard-6fv","type":"relates-to"}
{"created_at":"2026-03-01T16:40:03Z","created_by":"ZenchantLive","depends_on_id":"beadboard-8st","issue_id":"beadboard-6fv","type":"relates-to"}
{"created_at":"2026-03-01T18:28:53Z","created_by":"zenchantlive","depends_on_id":"beadboard-e6w","issue_id":"beadboard-6wv","type":"relates-to"}
@ -535,6 +540,7 @@
{"created_at":"2026-03-01T18:26:26Z","created_by":"zenchantlive","depends_on_id":"beadboard-6wv","issue_id":"beadboard-dud","type":"blocks"}
{"created_at":"2026-03-01T18:28:52Z","created_by":"zenchantlive","depends_on_id":"beadboard-e6w","issue_id":"beadboard-dud","type":"relates-to"}
{"created_at":"2026-03-01T16:54:03Z","created_by":"ZenchantLive","depends_on_id":"bb-u6f.3","issue_id":"beadboard-duo","type":"relates-to"}
{"created_at":"2026-03-01T20:47:45Z","created_by":"ZenchantLive","depends_on_id":"beadboard-5kf.1","issue_id":"beadboard-duo","type":"relates-to"}
{"created_at":"2026-03-01T16:54:03Z","created_by":"ZenchantLive","depends_on_id":"beadboard-68k.2","issue_id":"beadboard-duo","type":"relates-to"}
{"created_at":"2026-03-01T16:54:03Z","created_by":"ZenchantLive","depends_on_id":"beadboard-68k.4","issue_id":"beadboard-duo","type":"relates-to"}
{"created_at":"2026-03-01T16:40:02Z","created_by":"ZenchantLive","depends_on_id":"beadboard-fld","issue_id":"beadboard-duo","type":"relates-to"}

View file

@ -278,3 +278,11 @@
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T19:58:43Z","event_type":"created","id":278,"issue_id":"beadboard-2qo","new_value":"","old_value":""}
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T20:16:18Z","event_type":"updated","id":279,"issue_id":"bb-18e","new_value":"{\"title\":\"\\\"graph-focused\"}","old_value":"{\"id\":\"bb-18e\",\"title\":\"test\",\"description\":\"Objective:\\nTrack graph-focused clarity enhancements that are explicitly out of current Kanban execution scope.\\n\\nScope:\\n- Dependency graph comprehension aids\\n- anomaly communication for cycle/deadlock scenarios\\n- future AI explanation hooks for dependency understanding\\n\\nOut of scope for immediate execution:\\n- Kanban UI polish currently underway in bb-1es\\n\\nPlanning note:\\nThis epic stays pending until current Kanban actionability epic reaches acceptance.\",\"acceptance_criteria\":\"- Graph clarity backlog is explicitly captured and linked to future implementation beads.\\n- No accidental scope leakage into current Kanban pass.\",\"notes\":\"Backlog epic for graph-specific clarity work discussed after bb-1es.\\nPost-Kanban gate enforced: bb-18e depends on bb-1es completion. Child bb-18e.1 is also explicitly blocked by bb-1es to prevent scope bleed before Kanban pass completes.\\nExecution sequence added: (1) bb-18e.2 edge labels/contrast + bb-18e.3 direction hints + bb-18e.1 cycle card, (2) bb-18e.4 edge toggles + bb-18e.6 centered focus, (3) bb-18e.5 external blockers + bb-18e.7 progressive details + bb-18e.10 risk tinting, (4) bb-18e.8 keyboard nav + bb-18e.9 URL state, (5) bb-18e.11 AI explanation scaffold (deferred).\",\"status\":\"closed\",\"priority\":2,\"issue_type\":\"epic\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-13T03:45:41Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-02-28T17:59:50Z\",\"closed_at\":\"2026-02-28T17:59:50Z\",\"work_type\":\"mutex\"}"}
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T20:38:35Z","event_type":"updated","id":280,"issue_id":"beadboard-2qo","new_value":"{\"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).\"}","old_value":"{\"id\":\"beadboard-2qo\",\"title\":\"Bug: bd comments truncates content after first word\",\"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.\",\"status\":\"open\",\"priority\":0,\"issue_type\":\"bug\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T03:58:40Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T03:58:40Z\"}"}
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T20:38:54Z","event_type":"closed","id":281,"issue_id":"beadboard-2qo","new_value":"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.","old_value":""}
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T20:43:32Z","event_type":"created","id":282,"issue_id":"beadboard-5kf","new_value":"","old_value":""}
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T20:45:56Z","event_type":"created","id":283,"issue_id":"beadboard-5kf.1","new_value":"","old_value":""}
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T20:47:20Z","event_type":"status_changed","id":284,"issue_id":"beadboard-5kf.1","new_value":"{\"notes\":\"Starting implementation: Dolt write helpers + PATCH/DELETE comment APIs; then tests and verification gates.\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-5kf.1\",\"title\":\"Implement comment edit/delete backend write path and APIs\",\"description\":\"## Scope\\nImplement Dolt-backed comment mutation primitives and expose them through Next.js API routes for thread drawer edit/delete flows.\\n\\n## Out of Scope\\n- UI rendering and interaction states in ThreadView/ThreadDrawer\\n- SSE/watcher behavior changes\\n- Permission model changes\\n\\n## Implementation Prompt\\n1) Add updateCommentViaDolt(projectRoot, commentId, text) and deleteCommentViaDolt(projectRoot, commentId) in src/lib/read-interactions.ts using getDoltConnection(projectRoot) and parameterized SQL.\\n2) Add route handlers in src/app/api/beads/[id]/comments/[commentId]/route.ts:\\n - PATCH accepts { projectRoot, text }, validates non-empty text, updates comment.\\n - DELETE reads projectRoot from query string and deletes comment.\\n3) Return clear JSON success/error payloads and status codes.\\n4) Keep write path strictly Dolt SQL (no .jsonl writes, no bd comments mutations).\\n5) Add or update tests covering API success + validation/error behavior.\\n\\n## Verification Steps\\n- Run focused tests for new route/logic.\\n- Run npm run typecheck.\\n- Run npm run lint.\\n- Run npm run test.\\n\\n## Evidence Required\\nAttach command outputs for all verification gates in bead notes before closure.\\n\",\"acceptance_criteria\":\"PATCH route updates comment text in Dolt and returns success JSON; DELETE route removes comment row in Dolt and returns success JSON; invalid inputs return non-2xx with clear message; tests added/updated for route and helper behavior; typecheck/lint/test pass with fresh output\",\"status\":\"open\",\"priority\":2,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T04:45:54Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T04:45:54Z\"}"}
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T20:47:45Z","event_type":"updated","id":285,"issue_id":"beadboard-5kf.1","new_value":"{\"notes\":\"Starting implementation: Dolt write helpers + PATCH/DELETE comment APIs; then tests and verification gates.\\nMemory injection: related beadboard-6fv (hard, reliability), beadboard-duo (soft, UX). Memory provenance checked via bd show/dep list for both.\"}","old_value":"{\"id\":\"beadboard-5kf.1\",\"title\":\"Implement comment edit/delete backend write path and APIs\",\"description\":\"## Scope\\nImplement Dolt-backed comment mutation primitives and expose them through Next.js API routes for thread drawer edit/delete flows.\\n\\n## Out of Scope\\n- UI rendering and interaction states in ThreadView/ThreadDrawer\\n- SSE/watcher behavior changes\\n- Permission model changes\\n\\n## Implementation Prompt\\n1) Add updateCommentViaDolt(projectRoot, commentId, text) and deleteCommentViaDolt(projectRoot, commentId) in src/lib/read-interactions.ts using getDoltConnection(projectRoot) and parameterized SQL.\\n2) Add route handlers in src/app/api/beads/[id]/comments/[commentId]/route.ts:\\n - PATCH accepts { projectRoot, text }, validates non-empty text, updates comment.\\n - DELETE reads projectRoot from query string and deletes comment.\\n3) Return clear JSON success/error payloads and status codes.\\n4) Keep write path strictly Dolt SQL (no .jsonl writes, no bd comments mutations).\\n5) Add or update tests covering API success + validation/error behavior.\\n\\n## Verification Steps\\n- Run focused tests for new route/logic.\\n- Run npm run typecheck.\\n- Run npm run lint.\\n- Run npm run test.\\n\\n## Evidence Required\\nAttach command outputs for all verification gates in bead notes before closure.\\n\",\"acceptance_criteria\":\"PATCH route updates comment text in Dolt and returns success JSON; DELETE route removes comment row in Dolt and returns success JSON; invalid inputs return non-2xx with clear message; tests added/updated for route and helper behavior; typecheck/lint/test pass with fresh output\",\"notes\":\"Starting implementation: Dolt write helpers + PATCH/DELETE comment APIs; then tests and verification gates.\",\"status\":\"in_progress\",\"priority\":2,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T04:45:54Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T04:47:17Z\"}"}
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T20:48:12Z","event_type":"created","id":286,"issue_id":"beadboard-5kf.2","new_value":"","old_value":""}
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T20:52:18Z","event_type":"updated","id":287,"issue_id":"beadboard-5kf.1","new_value":"{\"notes\":\"Starting implementation: Dolt write helpers + PATCH/DELETE comment APIs; then tests and verification gates.\\nMemory injection: related beadboard-6fv (hard, reliability), beadboard-duo (soft, UX). Memory provenance checked via bd show/dep list for both.\\nImplementation progress:\\\\n- Added Dolt write helpers in src/lib/read-interactions.ts: updateCommentViaDolt(projectRoot, commentId, text), deleteCommentViaDolt(projectRoot, commentId).\\\\n- Added API route src/app/api/beads/[id]/comments/[commentId]/route.ts with PATCH and DELETE handlers (+ shared handler exports for tests).\\\\n- Added tests: tests/lib/read-interactions.test.ts (validation behavior), tests/api/bead-comments-item-route.test.ts (PATCH/DELETE success, 400, 404, 500).\\\\n- Registered new tests in package.json test script.\"}","old_value":"{\"id\":\"beadboard-5kf.1\",\"title\":\"Implement comment edit/delete backend write path and APIs\",\"description\":\"## Scope\\nImplement Dolt-backed comment mutation primitives and expose them through Next.js API routes for thread drawer edit/delete flows.\\n\\n## Out of Scope\\n- UI rendering and interaction states in ThreadView/ThreadDrawer\\n- SSE/watcher behavior changes\\n- Permission model changes\\n\\n## Implementation Prompt\\n1) Add updateCommentViaDolt(projectRoot, commentId, text) and deleteCommentViaDolt(projectRoot, commentId) in src/lib/read-interactions.ts using getDoltConnection(projectRoot) and parameterized SQL.\\n2) Add route handlers in src/app/api/beads/[id]/comments/[commentId]/route.ts:\\n - PATCH accepts { projectRoot, text }, validates non-empty text, updates comment.\\n - DELETE reads projectRoot from query string and deletes comment.\\n3) Return clear JSON success/error payloads and status codes.\\n4) Keep write path strictly Dolt SQL (no .jsonl writes, no bd comments mutations).\\n5) Add or update tests covering API success + validation/error behavior.\\n\\n## Verification Steps\\n- Run focused tests for new route/logic.\\n- Run npm run typecheck.\\n- Run npm run lint.\\n- Run npm run test.\\n\\n## Evidence Required\\nAttach command outputs for all verification gates in bead notes before closure.\\n\",\"acceptance_criteria\":\"PATCH route updates comment text in Dolt and returns success JSON; DELETE route removes comment row in Dolt and returns success JSON; invalid inputs return non-2xx with clear message; tests added/updated for route and helper behavior; typecheck/lint/test pass with fresh output\",\"notes\":\"Starting implementation: Dolt write helpers + PATCH/DELETE comment APIs; then tests and verification gates.\\nMemory injection: related beadboard-6fv (hard, reliability), beadboard-duo (soft, UX). Memory provenance checked via bd show/dep list for both.\",\"status\":\"in_progress\",\"priority\":2,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T04:45:54Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T04:47:44Z\"}"}
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T20:52:25Z","event_type":"updated","id":288,"issue_id":"beadboard-5kf.1","new_value":"{\"notes\":\"Starting implementation: Dolt write helpers + PATCH/DELETE comment APIs; then tests and verification gates.\\nMemory injection: related beadboard-6fv (hard, reliability), beadboard-duo (soft, UX). Memory provenance checked via bd show/dep list for both.\\nImplementation progress:\\\\n- Added Dolt write helpers in src/lib/read-interactions.ts: updateCommentViaDolt(projectRoot, commentId, text), deleteCommentViaDolt(projectRoot, commentId).\\\\n- Added API route src/app/api/beads/[id]/comments/[commentId]/route.ts with PATCH and DELETE handlers (+ shared handler exports for tests).\\\\n- Added tests: tests/lib/read-interactions.test.ts (validation behavior), tests/api/bead-comments-item-route.test.ts (PATCH/DELETE success, 400, 404, 500).\\\\n- Registered new tests in package.json test script.\\nVerification evidence (fresh):\\\\n- node --import tsx --test tests/lib/read-interactions.test.ts =\\u003e PASS (5 tests)\\\\n- node --import tsx --test tests/api/bead-comments-item-route.test.ts =\\u003e PASS (9 tests)\\\\n- npm run typecheck =\\u003e PASS\\\\n- npm run lint =\\u003e PASS with existing warnings (26 warnings, 0 errors)\\\\n- npm run test =\\u003e FAIL (unrelated pre-existing failures in tests/hooks/url-state-integration.test.ts expecting graphTab=flow but actual=overview).\\\\n\\\\nCurrent blocker:\\\\n- Cannot close bead yet because repo-wide npm run test gate is red from existing URL-state integration assertions not touched by this task.\"}","old_value":"{\"id\":\"beadboard-5kf.1\",\"title\":\"Implement comment edit/delete backend write path and APIs\",\"description\":\"## Scope\\nImplement Dolt-backed comment mutation primitives and expose them through Next.js API routes for thread drawer edit/delete flows.\\n\\n## Out of Scope\\n- UI rendering and interaction states in ThreadView/ThreadDrawer\\n- SSE/watcher behavior changes\\n- Permission model changes\\n\\n## Implementation Prompt\\n1) Add updateCommentViaDolt(projectRoot, commentId, text) and deleteCommentViaDolt(projectRoot, commentId) in src/lib/read-interactions.ts using getDoltConnection(projectRoot) and parameterized SQL.\\n2) Add route handlers in src/app/api/beads/[id]/comments/[commentId]/route.ts:\\n - PATCH accepts { projectRoot, text }, validates non-empty text, updates comment.\\n - DELETE reads projectRoot from query string and deletes comment.\\n3) Return clear JSON success/error payloads and status codes.\\n4) Keep write path strictly Dolt SQL (no .jsonl writes, no bd comments mutations).\\n5) Add or update tests covering API success + validation/error behavior.\\n\\n## Verification Steps\\n- Run focused tests for new route/logic.\\n- Run npm run typecheck.\\n- Run npm run lint.\\n- Run npm run test.\\n\\n## Evidence Required\\nAttach command outputs for all verification gates in bead notes before closure.\\n\",\"acceptance_criteria\":\"PATCH route updates comment text in Dolt and returns success JSON; DELETE route removes comment row in Dolt and returns success JSON; invalid inputs return non-2xx with clear message; tests added/updated for route and helper behavior; typecheck/lint/test pass with fresh output\",\"notes\":\"Starting implementation: Dolt write helpers + PATCH/DELETE comment APIs; then tests and verification gates.\\nMemory injection: related beadboard-6fv (hard, reliability), beadboard-duo (soft, UX). Memory provenance checked via bd show/dep list for both.\\nImplementation progress:\\\\n- Added Dolt write helpers in src/lib/read-interactions.ts: updateCommentViaDolt(projectRoot, commentId, text), deleteCommentViaDolt(projectRoot, commentId).\\\\n- Added API route src/app/api/beads/[id]/comments/[commentId]/route.ts with PATCH and DELETE handlers (+ shared handler exports for tests).\\\\n- Added tests: tests/lib/read-interactions.test.ts (validation behavior), tests/api/bead-comments-item-route.test.ts (PATCH/DELETE success, 400, 404, 500).\\\\n- Registered new tests in package.json test script.\",\"status\":\"in_progress\",\"priority\":2,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T04:45:54Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T04:52:15Z\"}"}

File diff suppressed because one or more lines are too long