bd daemon sync: 2026-01-11 21:32:02

This commit is contained in:
beads/refinery
2026-01-11 21:32:02 -08:00
committed by Steve Yegge
parent b2de8d1406
commit f749b14d26

View File

@@ -1931,6 +1931,7 @@
{"id":"bd-sfcq","title":"Tests fail due to .beads directory discovery escaping temp dirs","description":"ACTUAL FIX NEEDED: Tests in internal/beads/beads_test.go and internal/syncbranch/syncbranch_test.go find /Users/stevey/gt/beads/mayor/rig/.beads instead of temp test directories.\n\nThe fix is to set BEADS_DB env var in tests to a temp path BEFORE calling FindDatabasePath(). Example:\n\n t.Setenv(\"BEADS_DB\", filepath.Join(tmpDir, \".beads/beads.db\"))\n\nThis prevents the upward directory walk from escaping the temp directory.\n\nNOT the fix: Session parameter changes (already done, doesn't help).","status":"closed","priority":1,"issue_type":"bug","assignee":"beads/polecats/onyx","created_at":"2026-01-01T15:50:04.141197-08:00","created_by":"beads/refinery","updated_at":"2026-01-01T16:28:16.308292-08:00","closed_at":"2026-01-01T16:24:45.907692-08:00","close_reason":"Fixed: added missing session parameter to two CloseIssue calls in daemon mode"}
{"id":"bd-sh4c","title":"Improve test coverage for cmd/bd/setup (28.4% → 50%)","description":"The setup package has only 28.4% test coverage. Setup commands are critical for first-time user experience.\n\nCurrent coverage: 28.4%\nTarget coverage: 50%","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T20:43:04.409346-08:00","updated_at":"2025-12-23T22:37:13.494999-08:00","closed_at":"2025-12-23T22:37:13.494999-08:00"}
{"id":"bd-si4g","title":"Verify release artifacts","description":"Check GitHub releases page - binaries for darwin/linux/windows should be available","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-19T22:56:04.183029-08:00","updated_at":"2025-12-20T00:49:51.92894-08:00","closed_at":"2025-12-20T00:25:52.720816-08:00","dependencies":[{"issue_id":"bd-si4g","depends_on_id":"bd-6s61","type":"parent-child","created_at":"2025-12-19T22:56:15.173619-08:00","created_by":"daemon"},{"issue_id":"bd-si4g","depends_on_id":"bd-otli","type":"blocks","created_at":"2025-12-19T22:56:23.428507-08:00","created_by":"daemon"}]}
{"id":"bd-sinx1","title":"Session ended: gt-beads-refinery","status":"closed","priority":2,"issue_type":"event","owner":"steve.yegge@gmail.com","created_at":"2026-01-11T21:32:02.185259-08:00","created_by":"beads/refinery","updated_at":"2026-01-11T21:32:02.253968-08:00","closed_at":"2026-01-11T21:32:02.253968-08:00","close_reason":"auto-closed session cost wisp","ephemeral":true}
{"id":"bd-siz1","title":"GH#532: bd sync circular error (suggests running bd sync)","description":"bd sync error message recommends running bd sync to fix the bd sync error. Fix error handling to provide useful guidance. See GitHub issue #532.","status":"tombstone","priority":2,"issue_type":"bug","created_at":"2025-12-16T01:04:00.543573-08:00","updated_at":"2025-12-17T16:11:17.070763-08:00","deleted_at":"2025-12-17T16:11:17.070763-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"bug"}
{"id":"bd-sj5y","title":"Daemon should be singleton and aggressively kill stale instances","description":"Found 2 bd daemons running (PIDs 76868, 77515) during shutdown. The daemon should:\n\n1. Be a singleton - only one instance per rig allowed\n2. On startup, check for existing daemon and kill it before starting\n3. Use a PID file or lock file to enforce this\n\nCurrently stale daemons can accumulate, causing confusion and resource waste.","notes":"**Investigation 2025-12-21:**\n\nThe singleton mechanism is already implemented and working correctly:\n\n1. **daemon.lock** uses flock (exclusive non-blocking) to prevent duplicate daemons\n2. **bd.sock.startlock** coordinates concurrent auto-starts via O_CREATE|O_EXCL\n3. **Registry** tracks all daemons globally in ~/.beads/registry.json\n\nTesting shows:\n- Trying to start a second daemon gives: 'Error: daemon already running (PID X)'\n- Multiple daemons for *different* rigs is expected/correct behavior\n\nThe original report ('Found 2 bd daemons running PIDs 76868, 77515') was likely:\n1. Two daemons for different rigs (expected), OR\n2. An edge case that's since been fixed\n\nConsider closing as RESOLVED or clarifying the original scenario.","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-12-21T01:29:14.778949-08:00","updated_at":"2025-12-21T11:27:34.302585-08:00","closed_at":"2025-12-21T11:27:34.302585-08:00"}
{"id":"bd-sjmr","title":"Fix inconsistent error handling in multi-repo deletion tracking","description":"From bd-xo6b code review: Multi-repo deletion tracking has mixed failure modes that can leave system in inconsistent state.\n\n**Current behavior (daemon_sync.go):**\n- Snapshot capture (L505-514): Hard fail → aborts sync\n- Merge/prune (L575-584): Hard fail → aborts sync \n- Base snapshot update (L613-619): Soft fail → logs warning, continues\n\n**Critical problem:**\nIf merge fails on repo 3 of 5:\n- Repos 1-2 have already merged and deleted issues (irreversible)\n- Repos 3-5 are untouched\n- Database is in partially-updated state\n- No rollback mechanism\n\n**Real-world scenario:**\n```\nSync with repos [A, B, C]:\n1. Capture snapshots A ✓, B ✓, C ✗ → ABORT (good)\n2. Merge A ✓, B ✗ → ABORT but A already deleted issues (BAD - no rollback)\n3. Update base A ⚠, B ⚠ → Warnings only (inconsistent with 1 \u0026 2)\n```\n\n**Solution options:**\n1. **Two-phase commit:**\n - Phase 1: Validate all repos (check files exist, readable, parseable)\n - Phase 2: Apply changes atomically (or fail entirely before any mutations)\n\n2. **Fail-fast validation:**\n - Before any snapshot/merge operations, validate all repos upfront\n - Abort entire sync if any repo fails validation\n\n3. **Make base snapshot update consistent:**\n - Either make it hard-fail like the others, or make all soft-fail\n\n**Files:**\n- cmd/bd/daemon_sync.go:505-514 (snapshot capture)\n- cmd/bd/daemon_sync.go:575-584 (merge/prune)\n- cmd/bd/daemon_sync.go:613-619 (base snapshot update)\n\n**Recommendation:** Use option 1 (two-phase) or option 2 (fail-fast validation) + fix base snapshot inconsistency.","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-11-06T19:31:29.538092-08:00","updated_at":"2025-11-06T19:35:41.268584-08:00","closed_at":"2025-11-06T19:35:41.268584-08:00","dependencies":[{"issue_id":"bd-sjmr","depends_on_id":"bd-xo6b","type":"discovered-from","created_at":"2025-11-06T19:32:12.310033-08:00","created_by":"daemon"}]}