Update bd JSONL

This commit is contained in:
Steve Yegge
2025-11-07 19:08:05 -08:00
parent 52833704f0
commit 33c3b05eef

View File

@@ -133,7 +133,6 @@
{"id":"bd-7fe8","content_hash":"106aa3a1717d3c2a6ff518a8881976fd70911b006714b04f47327959d7ca1444","title":"Fix linting error in migrate.go","description":"Linter reports error:\n```\ncmd/bd/migrate.go:647:37: cleanupWALFiles - result 0 (error) is always nil (unparam)\n```\n\nThe `cleanupWALFiles` function always returns nil, so the error return type should be removed or the function should actually return errors when appropriate.","status":"closed","priority":2,"issue_type":"chore","created_at":"2025-11-02T09:29:37.279747-08:00","updated_at":"2025-11-02T09:46:52.18793-08:00","closed_at":"2025-11-02T09:46:52.18793-08:00","source_repo":".","dependencies":[{"issue_id":"bd-7fe8","depends_on_id":"bd-1231","type":"blocks","created_at":"2025-11-02T09:29:37.280881-08:00","created_by":"stevey"}]}
{"id":"bd-7kua","content_hash":"2dedc0d0d5444db45ab146cc59f3c51bc4bfc3c864da43d3c086a9153613c29f","title":"Reduce sync rounds in multiclone tests","description":"Analyze and reduce the number of sync rounds in hash multiclone tests.\n\nCurrent state:\n- TestHashIDs_MultiCloneConverge: 1 round of syncs across 3 clones\n- TestHashIDs_IdenticalContentDedup: 2 rounds across 2 clones\n\nInvestigation needed:\n- Profile to see how much time each sync takes\n- Determine minimum rounds needed for convergence\n- Consider making rounds configurable via env var\n\nFile: beads_hash_multiclone_test.go:70, :132","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-04T01:24:18.405038-08:00","updated_at":"2025-11-04T10:26:34.449434-08:00","closed_at":"2025-11-04T10:26:34.449434-08:00","source_repo":".","dependencies":[{"issue_id":"bd-7kua","depends_on_id":"bd-l5gq","type":"blocks","created_at":"2025-11-04T01:24:18.405883-08:00","created_by":"daemon"}]}
{"id":"bd-7so1","content_hash":"65e5dcb12407f83aad0c37c06127fcf76cf00bf581adab726b221da75c6c7f74","title":"Issue 1 to reopen","description":"","status":"open","priority":1,"issue_type":"task","created_at":"2025-11-07T19:04:20.12433-08:00","updated_at":"2025-11-07T19:04:20.224399-08:00","source_repo":"."}
{"id":"bd-7zuj","content_hash":"d8808071441c4faaa429c2100b421348df1750118ac618c6d68437064eb060c5","title":"Blocking issue","description":"","status":"open","priority":1,"issue_type":"task","created_at":"2025-11-07T19:05:35.38463-08:00","updated_at":"2025-11-07T19:05:35.38463-08:00","source_repo":"."}
{"id":"bd-8072","content_hash":"32bd0e33433bbf535cb56eb47828ac80ebecc57512e9039420a39cd2342790d2","title":"Add import.orphan_handling config option","description":"Add configuration option to control orphan handling behavior: 'strict' (fail on missing parent, current behavior), 'resurrect' (auto-resurrect from JSONL, recommended default), 'skip' (skip orphaned issues with warning), 'allow' (import orphans without validation). Update CONFIG.md documentation.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-11-04T12:32:08.569239-08:00","updated_at":"2025-11-05T00:25:06.619278-08:00","closed_at":"2025-11-05T00:25:06.619278-08:00","source_repo":"."}
{"id":"bd-812a","content_hash":"0d802dec82dff53e88e68bb4f1fef75754165a590996ff8b1578ff93e781622d","title":"Add unit tests for import ordering","description":"Test topological sort: import [child, parent] should succeed, import [parent.1.2, parent, parent.1] should sort correctly. Verify depth-based batching works. Test max depth limits.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-11-04T12:32:21.278448-08:00","updated_at":"2025-11-05T00:08:38.197477-08:00","closed_at":"2025-11-05T00:08:38.19748-08:00","source_repo":"."}
{"id":"bd-824","content_hash":"ba893642ee6145900797db1937943f5dc38e848ed85e74307bcfa0352c2130a6","title":"Add migration guide for library consumers","description":"The contributor-workflow-analysis.md has excellent migration examples for CLI users (lines 508-549) but lacks examples for library consumers like VC that use beadsLib in Go/TypeScript code.\n\nLibrary consumers need to know:\n- Whether their existing code continues to work unchanged (backward compatibility)\n- How config.toml is automatically read (transparent hydration)\n- When and how to use explicit multi-repo configuration\n- What happens if config.toml doesn't exist (defaults)\n\nExample needed:\n```go\n// Before (v0.17.3)\nstore, err := beadsLib.NewSQLiteStorage(\".beads/vc.db\")\n\n// After (v0.18.0 with multi-repo) - still works!\nstore, err := beadsLib.NewSQLiteStorage(\".beads/vc.db\")\n// Automatically reads .beads/config.toml if present\n\n// Explicit multi-repo (if needed)\ncfg := beadsLib.Config{\n Primary: \".beads/vc.db\",\n Additional: []string{\"~/.beads-planning\"},\n}\nstore, err := beadsLib.NewStorageWithConfig(cfg)\n```","acceptance_criteria":"- Section added to contributor-workflow-analysis.md for library consumers\n- Code examples showing backward compatibility\n- Code examples showing explicit multi-repo configuration\n- Guidance on when library consumers should use multi-repo vs single-repo","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-03T20:24:17.748337-08:00","updated_at":"2025-11-05T14:19:11.204958-08:00","closed_at":"2025-11-05T14:15:44.154675-08:00","source_repo":"."}
@@ -327,8 +326,6 @@
{"id":"bd-urob","content_hash":"7046a4e101c3ff6030c236c13a7b6bb5d64c54170e8d792768a9f7a8fd5781bf","title":"bd-hv01: Refactor snapshot management into dedicated module","description":"Problem: Snapshot logic is scattered across deletion_tracking.go. Would benefit from abstraction with SnapshotManager type.\n\nBenefits: cleaner separation of concerns, easier to test in isolation, better encapsulation, could add observability/metrics.\n\nSuggested improvements: add magic constants, track merge statistics, better error messages.\n\nFiles: cmd/bd/deletion_tracking.go (refactor into new snapshot_manager.go)","status":"open","priority":3,"issue_type":"chore","created_at":"2025-11-06T18:16:27.943666-08:00","updated_at":"2025-11-06T18:16:27.943666-08:00","source_repo":".","dependencies":[{"issue_id":"bd-urob","depends_on_id":"bd-rbxi","type":"parent-child","created_at":"2025-11-06T18:19:15.192447-08:00","created_by":"daemon"}]}
{"id":"bd-uyk1","content_hash":"a9d63140e09a3aba769436c54c204e9369912a7d8d51d2aae9e68c8148357d3b","title":"Ready issue","description":"","status":"open","priority":1,"issue_type":"task","created_at":"2025-11-07T19:07:17.041861-08:00","updated_at":"2025-11-07T19:07:17.041861-08:00","source_repo":"."}
{"id":"bd-vcg5","content_hash":"aabdbd88598a3104a685a0aa6de9576b82113b6f50d2d8000de7e7166a83ff54","title":"Daemon crash recovery: panic handler + socket cleanup","description":"Improve daemon cleanup on unexpected exit:\n1. Add top-level recover() in runDaemonLoop to capture panics\n2. Write daemon-error file with stack trace on panic\n3. Prefer return over os.Exit where possible (so defers run)\n4. In stopDaemon forced-kill path, also remove stale socket if present\n\nThis ensures better diagnostics and cleaner state after crashes.","status":"open","priority":2,"issue_type":"task","created_at":"2025-11-07T16:42:12.733219-08:00","updated_at":"2025-11-07T16:42:12.733219-08:00","source_repo":".","dependencies":[{"issue_id":"bd-vcg5","depends_on_id":"bd-ndyz","type":"discovered-from","created_at":"2025-11-07T16:42:12.733889-08:00","created_by":"daemon"}]}
{"id":"bd-vl8q","content_hash":"23f97088bca298f24d56312ee9aa5a14c4dd061a05eedae7e3f4d251786be4e1","title":"Blocked issue","description":"","status":"open","priority":1,"issue_type":"task","created_at":"2025-11-07T19:06:46.188701-08:00","updated_at":"2025-11-07T19:06:46.188701-08:00","source_repo":".","dependencies":[{"issue_id":"bd-vl8q","depends_on_id":"bd-73n8","type":"blocks","created_at":"2025-11-07T19:06:46.212312-08:00","created_by":"daemon"}]}
{"id":"bd-vs5j","content_hash":"942bdfde12b32d268a7643fb64e4f92fa466cb6564434283a38378f1ce44973e","title":"Issue 1","description":"","status":"open","priority":1,"issue_type":"task","created_at":"2025-11-07T19:04:26.150292-08:00","updated_at":"2025-11-07T19:04:26.150292-08:00","source_repo":".","dependencies":[{"issue_id":"bd-vs5j","depends_on_id":"bd-bpb4","type":"related","created_at":"2025-11-07T19:04:26.204717-08:00","created_by":"daemon"}]}
{"id":"bd-vxdr","content_hash":"d188358987c7a7d444f9144a4a6cc5164eccd35b16325edba51dad104ab2a7f2","title":"Investigate database pollution - issue count anomalies","description":"Multiple repos showing inflated issue counts suggesting cross-repo pollution:\n- ~/src/dave/beads: 895 issues (675 open) - clearly polluted\n- ~/src/stevey/src/beads: 280 issues (expected ~209-220) - possibly polluted\n\nNeed to investigate:\n1. Source of pollution (multi-repo sync issues?)\n2. How many duplicate/foreign issues exist\n3. Whether recent sync operations caused cross-contamination\n4. How to clean up and prevent future pollution","notes":"Investigation findings:\n\n**Root cause identified:**\n- NOT cross-repo contamination\n- NOT automated test leakage (tests properly use t.TempDir())\n- Manual testing during template feature development (Nov 2-4)\n- Commit ba325a2: \"test issues were accidentally committed during template feature development\"\n\n**Database growth timeline:**\n- Nov 3: 19 issues (baseline)\n- Nov 2-5: +244 issues (massive development spike)\n- Nov 6-7: +40 issues (continued growth)\n- Current: 291 issues → 270 after cleanup\n\n**Test pollution breakdown:**\n- 21 issues matching \"Test \" prefix pattern\n- Most created Nov 2-5 during feature development\n- Pollution from manual `./bd create \"Test issue\"` commands in production workspace\n- All automated tests properly isolated with t.TempDir()\n\n**Cleanup completed:**\n- Ran scripts/cleanup-test-pollution.sh successfully\n- Removed 21 test issues\n- Database reduced from 291 → 270 issues (7.2% cleanup)\n- JSONL synced to git\n\n**Prevention strategy:**\n- Filed follow-up issue for prevention mechanisms\n- Script can be deleted once prevention is in place\n- Tests are already properly isolated - no code changes needed there","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-11-06T22:34:40.137483-08:00","updated_at":"2025-11-07T16:16:30.432586-08:00","closed_at":"2025-11-07T16:04:02.199807-08:00","source_repo":"."}
{"id":"bd-w32n","content_hash":"35f00d6d6a77b5b4a3c0c671fdf12be2b4bef33461a186dc02ded3065683777b","title":"Bug P0","description":"","status":"open","priority":0,"issue_type":"bug","assignee":"alice","created_at":"2025-11-07T19:07:19.645727-08:00","updated_at":"2025-11-07T19:07:19.645727-08:00","source_repo":"."}
{"id":"bd-we4p","content_hash":"0e3248d31a6524c7a665960682cf2b159449fa31f5427771796dce8639059faf","title":"Cache getMultiRepoJSONLPaths() result during sync to avoid redundant calls","description":"From bd-xo6b code review: getMultiRepoJSONLPaths() is called 3x per sync cycle.\n\n**Current behavior:**\ndaemon_sync.go calls getMultiRepoJSONLPaths() three times per sync:\n- Line 505: Snapshot capture before pull\n- Line 575: Merge/prune after pull\n- Line 613: Base snapshot update after import\n\n**Cost per call:**\n- Config lookup (likely cached, but still overhead)\n- Path construction: O(N) where N = number of repos\n- String allocations: (N + 1) × filepath.Join() calls\n\n**Total per sync:** 3N path constructions + 3 config lookups + 3 slice allocations\n\n**Impact:**\n- For N=3 repos: Negligible (\u003c 1ms)\n- For N=10 repos: Still minimal\n- For N=100+ repos: Wasteful\n\n**Solution:**\nCall once at sync start, reuse result:\n\n```go\nfunc createSyncFunc(...) func() {\n return func() {\n // ... existing setup ...\n \n // Call once at start\n multiRepoPaths := getMultiRepoJSONLPaths()\n \n // Snapshot capture\n if multiRepoPaths != nil {\n for _, path := range multiRepoPaths {\n if err := captureLeftSnapshot(path); err != nil { ... }\n }\n }\n \n // ... later ...\n \n // Merge/prune - reuse same paths\n if multiRepoPaths != nil {\n for _, path := range multiRepoPaths { ... }\n }\n \n // ... later ...\n \n // Base snapshot update - reuse same paths\n if multiRepoPaths != nil {\n for _, path := range multiRepoPaths { ... }\n }\n }\n}\n```\n\n**Files:**\n- cmd/bd/daemon_sync.go:449-636 (createSyncFunc)\n\n**Note:** This is a performance optimization, not a correctness fix. Low priority unless multi-repo usage scales significantly.","status":"closed","priority":2,"issue_type":"chore","created_at":"2025-11-06T19:31:32.128674-08:00","updated_at":"2025-11-06T19:41:31.882168-08:00","closed_at":"2025-11-06T19:40:50.871176-08:00","source_repo":".","dependencies":[{"issue_id":"bd-we4p","depends_on_id":"bd-xo6b","type":"discovered-from","created_at":"2025-11-06T19:32:12.39754-08:00","created_by":"daemon"}]}