bd daemon sync: 2026-01-11 18:16:07

This commit is contained in:
beads/refinery
2026-01-11 18:16:07 -08:00
committed by Steve Yegge
parent 11445344c7
commit 2caf5eeba0

View File

@@ -502,7 +502,7 @@
{"id":"bd-73got","title":"Refactor beads-release formula to use gate step","description":"Update beads-release.formula.toml to use gate-based async for CI wait:\n\nReplace the spin-wait `wait-ci` step with a proper gate step:\n\n```toml\n[[steps]]\nid = \"wait-ci\"\ntitle = \"Await CI completion\"\nneeds = [\"push-tag\"]\ngate = \"gh:run\"\ngate_hint = \"release.yml\"\ntimeout = \"30m\"\ndescription = \"\"\"\nGate step awaiting GitHub Actions release workflow.\nResolves automatically when workflow succeeds.\nEscalates if workflow fails or times out.\n\nNo polling needed - Deacon patrol evaluates gates periodically.\n\"\"\"\n```\n\nDepends on gate infrastructure being complete.\n\nParent: bd-ka761","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-08T20:53:43.3345-08:00","created_by":"beads/crew/emma","updated_at":"2026-01-08T21:20:50.372013-08:00","closed_at":"2026-01-08T21:20:50.372013-08:00","close_reason":"Already complete: beads-release.formula.toml has await-ci step with gate (type=gh:run, id=release.yml, timeout=30m). No spin-wait code found.","dependencies":[{"issue_id":"bd-73got","depends_on_id":"bd-ka761","type":"parent-child","created_at":"2026-01-08T20:54:04.116426-08:00","created_by":"beads/crew/emma"},{"issue_id":"bd-73got","depends_on_id":"bd-1ep6e","type":"blocks","created_at":"2026-01-08T20:54:11.719414-08:00","created_by":"beads/crew/emma"}]}
{"id":"bd-73iz","title":"Test issue 1","status":"closed","priority":1,"issue_type":"task","created_at":"2025-11-07T19:04:17.430269-08:00","updated_at":"2025-11-07T22:07:17.344468-08:00","closed_at":"2025-11-07T21:55:09.427697-08:00"}
{"id":"bd-746","title":"Fix resolvePartialID stub in workflow.go","description":"The resolvePartialID function at workflow.go:921-925 is a stub that just returns the ID unchanged. Should use utils.ResolvePartialID for proper partial ID resolution in direct mode (non-daemon).","status":"tombstone","priority":2,"issue_type":"bug","created_at":"2025-12-17T22:22:57.586917-08:00","updated_at":"2025-12-25T01:21:01.952723-08:00","deleted_at":"2025-12-25T01:21:01.952723-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"bug"}
{"id":"bd-74eak","title":"Review \u0026 merge PR #1026: fix(init) prevent init from worktrees","description":"dispatched_by: beads/crew/emma\n\nReview and merge PR #1026: https://github.com/steveyegge/beads/pull/1026\n\n## Summary\nPrevents 'bd init' from running inside a git worktree. Worktrees should share the .beads database from the main repository.\n\n## Changes\n- Adds check in cmd/bd/init.go\n- Error message guides users to use main repo or bd worktree create\n\n## Review Checklist\n- [ ] Pull the branch locally\n- [ ] Run tests: go test ./...\n- [ ] Verify the worktree check works correctly\n- [ ] Merge with gh pr merge 1026 --repo steveyegge/beads --squash","status":"hooked","priority":2,"issue_type":"task","assignee":"beads/crew/dave","owner":"steve.yegge@gmail.com","created_at":"2026-01-11T18:14:05.979279-08:00","created_by":"beads/crew/emma","updated_at":"2026-01-11T18:14:44.899318-08:00"}
{"id":"bd-74eak","title":"Review \u0026 merge PR #1026: fix(init) prevent init from worktrees","description":"dispatched_by: beads/crew/emma\n\nReview and merge PR #1026: https://github.com/steveyegge/beads/pull/1026\n\n## Summary\nPrevents 'bd init' from running inside a git worktree. Worktrees should share the .beads database from the main repository.\n\n## Changes\n- Adds check in cmd/bd/init.go\n- Error message guides users to use main repo or bd worktree create\n\n## Review Checklist\n- [ ] Pull the branch locally\n- [ ] Run tests: go test ./...\n- [ ] Verify the worktree check works correctly\n- [ ] Merge with gh pr merge 1026 --repo steveyegge/beads --squash","status":"closed","priority":2,"issue_type":"task","assignee":"beads/crew/dave","owner":"steve.yegge@gmail.com","created_at":"2026-01-11T18:14:05.979279-08:00","created_by":"beads/crew/emma","updated_at":"2026-01-11T18:16:06.880893-08:00","closed_at":"2026-01-11T18:16:06.880893-08:00","close_reason":"PR #1026 reviewed, approved, and merged. Prevents bd init from running in git worktrees with helpful error message."}
{"id":"bd-74ee","title":"Frontend task","status":"closed","priority":1,"issue_type":"task","created_at":"2025-11-03T19:11:59.358631-08:00","updated_at":"2025-11-05T00:25:06.457813-08:00","closed_at":"2025-11-05T00:25:06.457813-08:00"}
{"id":"bd-74q9","title":"Issue to reopen with reason","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-11-22T14:57:44.493560585-05:00","updated_at":"2025-11-22T14:57:44.493560585-05:00","closed_at":"2025-11-09T16:13:23.938513-08:00"}
{"id":"bd-74w1","title":"Consolidate duplicate path-finding utilities (findJSONLPath, findBeadsDir, findGitRoot)","description":"Code health review found these functions defined in multiple places:\n\n- findJSONLPath() in autoflush.go:45-73 and doctor/fix/migrate.go\n- findBeadsDir() in autoimport.go:197-239 (with git worktree handling)\n- findGitRoot() in autoimport.go:242-269 (Windows path conversion)\n\nThe beads package has public FindBeadsDir() and FindJSONLPath() APIs that should be used consistently.\n\nImpact: Bug fixes need to be applied in multiple places. Git worktree handling may not be replicated everywhere.\n\nFix: Consolidate all implementations to use the beads package APIs. Remove duplicates.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-16T18:17:16.694293-08:00","updated_at":"2025-12-22T21:13:46.83103-08:00","closed_at":"2025-12-22T21:13:46.83103-08:00"}
@@ -513,6 +513,7 @@
{"id":"bd-784c","title":"Code Review: Beads Refactoring Sprint","description":"Epic for code smell fixes identified during Beads code review.\n\n## Scope\n11 issues covering:\n- P2: Duplicated code in cook.go (2 issues)\n- P3: Long functions and God Objects (5 issues) \n- P4: Technical debt and cleanup (4 issues)\n\n## Approach\nSwarm with polecats, each taking 1-2 issues. All changes should:\n1. Pass existing tests\n2. Not change external behavior\n3. Improve code maintainability\n\n## Success Criteria\nAll 11 child issues closed with passing CI.","status":"closed","priority":2,"issue_type":"epic","created_at":"2025-12-28T15:37:54.076091-08:00","created_by":"beads/crew/dave","updated_at":"2025-12-28T18:45:51.192153-08:00","closed_at":"2025-12-28T18:45:51.192153-08:00"}
{"id":"bd-78w","title":"Test Epic 2","description":"## Overview\n\n[Describe the high-level goal and scope of this epic]\n\n## Success Criteria\n\n- [ ] Criteria 1\n- [ ] Criteria 2\n- [ ] Criteria 3\n\n## Background\n\n[Provide context and motivation]\n\n## Scope\n\n**In Scope:**\n- Item 1\n- Item 2\n\n**Out of Scope:**\n- Item 1\n- Item 2\n","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-11-03T20:15:03.878216-08:00","updated_at":"2025-11-05T00:25:06.566242-08:00","closed_at":"2025-11-05T00:25:06.566242-08:00"}
{"id":"bd-790","title":"Document which files to commit after bd init --branch","description":"GH #312 reported confusion about which files should be committed after running 'bd init --branch beads-metadata'. Updated PROTECTED_BRANCHES.md to clearly document:\n\n1. Files that should be committed to protected branch (main):\n - .beads/.gitignore\n - .gitattributes\n\n2. Files that are automatically gitignored\n3. Files that live in the sync branch (beads-metadata)\n\nChanges:\n- Added step-by-step instructions in Quick Start section\n- Added 'What lives in each branch' section to How It Works\n- Clarified the directory structure diagram\n\nFixes: https://github.com/steveyegge/beads/issues/312","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-20T21:47:25.813954-05:00","updated_at":"2025-11-20T21:47:33.567649-05:00","closed_at":"2025-11-20T21:47:33.567651-05:00"}
{"id":"bd-7933b","title":"Issue 2","status":"open","priority":1,"issue_type":"task","owner":"steve.yegge@gmail.com","created_at":"2026-01-11T18:16:03.318762-08:00","created_by":"beads/crew/wolf","updated_at":"2026-01-11T18:16:03.318762-08:00"}
{"id":"bd-79wlf","title":"Session ended: gt-beads-crew-fang","status":"closed","priority":2,"issue_type":"event","created_at":"2026-01-09T13:51:28.674805-08:00","created_by":"beads/crew/fang","updated_at":"2026-01-09T13:51:28.713511-08:00","closed_at":"2026-01-09T13:51:28.713511-08:00","close_reason":"auto-closed session cost wisp","ephemeral":true}
{"id":"bd-7a00c94e","title":"Rapid 2","status":"closed","priority":3,"issue_type":"task","created_at":"2025-10-29T19:11:57.430725-07:00","updated_at":"2025-12-14T12:12:46.53405-08:00","closed_at":"2025-11-07T23:18:52.352188-08:00"}
{"id":"bd-7a2b58fc","title":"Implement clone-scoped ID allocation to prevent N-way collisions","description":"## Problem\nCurrent ID allocation uses per-clone atomic counters (issue_counters table) that sync based on local database state. In N-way collision scenarios:\n- Clone B sees {test-1} locally, allocates test-2\n- Clone D sees {test-1, test-2, test-3} locally, allocates test-4\n- When same content gets assigned test-2 and test-4, convergence fails\n\nRoot cause: Each clone independently allocates IDs without global coordination, leading to overlapping assignments for the same content.\n\n## Solution\nAdd clone UUID to ID allocation to make every ID globally unique:\n\n**Current format:** `test-1`, `test-2`, `test-3`\n**New format:** `test-1-a7b3`, `test-2-a7b3`, `test-3-c4d9`\n\nWhere suffix is first 4 chars of clone UUID.\n\n## Implementation\n\n### 1. Add clone_identity table\n```sql\nCREATE TABLE clone_identity (\n clone_uuid TEXT PRIMARY KEY,\n created_at DATETIME DEFAULT CURRENT_TIMESTAMP\n);\n```\n\n### 2. Modify getNextIDForPrefix()\n```go\nfunc (s *SQLiteStorage) getNextIDForPrefix(ctx context.Context, prefix string) (string, error) {\n cloneUUID := s.getOrCreateCloneUUID(ctx)\n shortUUID := cloneUUID[:4]\n \n nextNum := s.getNextCounterForPrefix(ctx, prefix)\n return fmt.Sprintf(\"%s-%d-%s\", prefix, nextNum, shortUUID), nil\n}\n```\n\n### 3. Update ID parsing logic\nAll places that parse IDs (utils.ExtractIssueNumber, etc.) need to handle new format.\n\n### 4. Migration strategy\n- Existing IDs remain unchanged (no suffix)\n- New IDs get clone suffix automatically\n- Display layer can hide suffix in UI: `bd-cb64c226.3-a7b3` → `#42`\n\n## Benefits\n- **Zero collision risk**: Same content in different clones gets different IDs\n- **Maintains readability**: Still sequential numbering within clone\n- **No coordination needed**: Works offline, no central authority\n- **Scales to 100+ clones**: 4-char hex = 65,536 unique clones\n\n## Concerns\n- ID format change may break existing integrations\n- Need migration path for existing databases\n- Display logic needs update to hide/show suffixes appropriately\n\n## Success Criteria\n- 10+ clone collision test passes without failures\n- Existing issues continue to work (backward compatibility)\n- Documentation updated with new ID format\n- Migration guide for v1.x → v2.x\n\n## Timeline\nMedium-term (v1.1-v1.2), 2-3 weeks implementation\n\n## References\n- Related to bd-0dcea000 (immediate fix)\n- See beads_nway_test.go for failing N-way tests","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-10-29T20:02:47.952447-07:00","updated_at":"2025-12-14T12:12:46.506819-08:00","closed_at":"2025-11-06T19:27:29.41629-08:00"}
@@ -1864,6 +1865,7 @@
{"id":"bd-s5kf","title":"Merge: onyx-1767083477016","description":"branch: polecat/onyx-1767083477016\ntarget: main\nsource_issue: onyx-1767083477016\nrig: beads","status":"closed","priority":2,"issue_type":"merge-request","created_at":"2025-12-30T00:37:08.214926-08:00","created_by":"beads/polecats/onyx","updated_at":"2025-12-30T00:54:59.041942-08:00","closed_at":"2025-12-30T00:54:59.041942-08:00","close_reason":"Branch polecat/onyx-1767083477016 no longer exists on remote"}
{"id":"bd-sabmf","title":"Fix: bd doctor false positive on thin shim hook (GH#969)","description":"dispatched_by: beads/crew/dave\n\nGitHub issue #969. Doctor incorrectly reports 'pre-commit not calling bd' for valid thin shim hook.","status":"closed","priority":2,"issue_type":"bug","assignee":"beads/crew/giles","created_at":"2026-01-09T22:20:19.331637-08:00","created_by":"beads/crew/dave","updated_at":"2026-01-09T22:58:08.977701-08:00","closed_at":"2026-01-09T22:58:08.977701-08:00","close_reason":"Duplicate of GH#946. Fix already in main (commit bf09f0c6) but not yet released. User on v0.46.0 which predates fix. Next release will include it."}
{"id":"bd-sal9","title":"bd mol current: soft cursor showing current/next step","description":"Add bd mol current command for molecule navigation orientation.\n\n## Usage\n\nbd mol current [mol-id]\n\nIf mol-id given, show status for that molecule.\nIf not given, infer from in_progress issues assigned to current agent.\n\n## Output\n\nYou're working on molecule gt-abc (Feature X)\n\n [done] gt-abc.1: Design\n [done] gt-abc.2: Scaffold \n [done] gt-abc.3: Implement\n [current] gt-abc.4: Write tests [in_progress] \u003c- YOU ARE HERE\n [pending] gt-abc.5: Documentation\n [pending] gt-abc.6: Exit decision\n\nProgress: 3/6 steps complete\n\n## Key behaviors\n- Shows full molecule structure with status indicators\n- Highlights current in_progress step\n- If no in_progress, highlights first ready step\n- Works without explicit cursor tracking (inferred from state)\n\n## Implementation notes\n- Query children of mol-id\n- Sort by dependency order\n- Find first in_progress or first ready\n- Format with status indicators\n\n## Gas Town integration\n- gt-lz13: Update templates with nav workflow\n- gt-um6q: Update docs with nav workflow","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-22T17:03:30.245964-08:00","updated_at":"2025-12-22T17:36:31.936007-08:00","closed_at":"2025-12-22T17:36:31.936007-08:00"}
{"id":"bd-sb6k8","title":"Issue 1","status":"open","priority":1,"issue_type":"task","owner":"steve.yegge@gmail.com","created_at":"2026-01-11T18:16:03.222752-08:00","created_by":"beads/crew/wolf","updated_at":"2026-01-11T18:16:03.222752-08:00","dependencies":[{"issue_id":"bd-sb6k8","depends_on_id":"bd-7933b","type":"related","created_at":"2026-01-11T18:16:03.390032-08:00","created_by":"beads/crew/wolf"}]}
{"id":"bd-sc57","title":"Production Readiness (Optional)","description":"Enable multi-machine deployments with containerization and monitoring.","status":"closed","priority":3,"issue_type":"epic","created_at":"2025-11-07T22:43:31.527617-08:00","updated_at":"2025-11-08T01:06:12.904671-08:00","closed_at":"2025-11-08T01:06:12.904671-08:00","dependencies":[{"issue_id":"bd-sc57","depends_on_id":"bd-wfmw","type":"blocks","created_at":"2025-11-07T22:43:31.528743-08:00","created_by":"daemon"},{"issue_id":"bd-sc57","depends_on_id":"bd-pdjb","type":"blocks","created_at":"2025-11-07T22:43:31.529193-08:00","created_by":"daemon"}]}
{"id":"bd-sco6","title":"Emit issue title with dep/label mutation events","description":"When dependencies or labels are added, mutations are emitted without title/assignee:\n\n```go\ns.emitMutation(MutationUpdate, depArgs.FromID, \"\", \"\") // server_labels_deps_comments.go:68\ns.emitMutation(MutationUpdate, issueID, \"\", \"\") // server_labels_deps_comments.go:101\n```\n\nThis causes bd activity (and gt feed) to show less informative entries like:\n```\n[20:42:17] → gt-4ntnq updated\n```\n\nInstead of:\n```\n[20:42:17] → gt-4ntnq updated · Pipeline Reliability: Fix work loss...\n```\n\n**Fix**: Look up issue title in dep/label handlers before emitting mutation. This adds one extra DB read per dep/label operation, but these are infrequent enough that it's acceptable.\n\n**Related**: gt feed now deduplicates rapid updates in gastown commit (to be pushed).","status":"closed","priority":3,"issue_type":"bug","created_at":"2025-12-30T21:13:31.574249-08:00","created_by":"gastown/crew/joe","updated_at":"2025-12-30T21:21:45.081602-08:00","closed_at":"2025-12-30T21:21:45.081602-08:00","close_reason":"Added lookupIssueMeta helper; mutation events now include title/assignee for dep/label/comment operations"}
{"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"}