bd daemon sync: 2026-01-11 07:23:02

This commit is contained in:
beads/refinery
2026-01-11 07:23:02 -08:00
committed by Steve Yegge
parent 27197018a2
commit 0840040023

View File

@@ -533,6 +533,7 @@
{"id":"bd-7h5","title":"Add pinned field to issue schema","description":"Add boolean 'pinned' field to the issue schema. When true, the issue is marked as a persistent context marker that should not be treated as a work item.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-18T23:33:26.767247-08:00","updated_at":"2025-12-19T00:08:59.854605-08:00","closed_at":"2025-12-19T00:08:59.854605-08:00","dependencies":[{"issue_id":"bd-7h5","depends_on_id":"bd-0vg","type":"blocks","created_at":"2025-12-18T23:33:55.98635-08:00","created_by":"daemon"}]}
{"id":"bd-7h7","title":"bd init should stop running daemon to avoid stale cache","description":"When running bd init, any running daemon continues with stale cached data, causing bd stats and other commands to show old counts.\n\nRepro:\n1. Have daemon running with 788 issues cached\n2. Clean JSONL to 128 issues, delete db, run bd init\n3. bd stats still shows 788 (daemon cache)\n4. Must manually run bd daemon --stop\n\nFix: bd init should automatically stop any running daemon before reinitializing.","status":"tombstone","priority":2,"issue_type":"bug","created_at":"2025-12-16T13:26:47.117226-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-7ixsn","title":"Session ended: gt-beads-crew-dave","status":"closed","priority":2,"issue_type":"event","created_at":"2026-01-08T14:09:52.367028-08:00","created_by":"beads/crew/dave","updated_at":"2026-01-08T14:09:52.400294-08:00","closed_at":"2026-01-08T14:09:52.400294-08:00","close_reason":"auto-closed session event"}
{"id":"bd-7kilq","title":"Session ended: gt-beads-refinery","status":"closed","priority":2,"issue_type":"event","owner":"steve.yegge@gmail.com","created_at":"2026-01-11T07:23:01.585628-08:00","created_by":"beads/refinery","updated_at":"2026-01-11T07:23:01.647964-08:00","closed_at":"2026-01-11T07:23:01.647964-08:00","close_reason":"auto-closed session cost wisp","ephemeral":true}
{"id":"bd-7kua","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","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-7l27","title":"Integrate migration detection into bd doctor","description":"Multiple migration commands (migrate_hash_ids.go, migrate_issues.go, migrate_sync.go, migrate_tombstones.go, migrate.go) have TODOs suggesting integration into 'bd doctor' for automatic migration detection. This would allow bd doctor to detect when migrations are needed and suggest running them.\n\nFiles:\n- cmd/bd/migrate_hash_ids.go:24\n- cmd/bd/migrate_issues.go:15\n- cmd/bd/migrate_sync.go:16\n- cmd/bd/migrate_tombstones.go:72\n- cmd/bd/migrate.go:22","status":"closed","priority":3,"issue_type":"feature","created_at":"2025-12-28T16:32:24.018282-08:00","created_by":"stevey","updated_at":"2025-12-30T15:44:43.353203-08:00","closed_at":"2025-12-30T00:06:59.401939-08:00","close_reason":"Implemented: Added CheckPendingMigrations to bd doctor, updated existing migration suggestions to use modern bd migrate subcommands"}
{"id":"bd-7l67","title":"Add bd state and bd set-state helper commands","description":"Convenience commands for the labels-as-state pattern documented in LABELS.md.\n\n`bd state \u003crole\u003e \u003cdimension\u003e` - Query the current value of a state dimension\nExample: bd state witness-alpha patrol → outputs: active\n\n`bd set-state \u003crole\u003e \u003cdimension\u003e=\u003cvalue\u003e [--reason \"...\"]` - Atomically creates an event bead and updates the label\nExample: bd set-state witness-alpha patrol=muted --reason \"Investigating stuck polecat\"\n\nThis would combine the manual steps:\n1. bd create \"\u003creason\u003e\" -t event --parent \u003crole\u003e\n2. bd label remove \u003crole\u003e \u003cdimension\u003e:\u003cold-value\u003e\n3. bd label add \u003crole\u003e \u003cdimension\u003e:\u003cnew-value\u003e\n\nInto a single atomic operation.\n\nDiscovered from: bd-31ae","status":"closed","priority":3,"issue_type":"feature","created_at":"2025-12-30T15:46:40.679911-08:00","created_by":"stevey","updated_at":"2025-12-30T15:56:44.713687-08:00","closed_at":"2025-12-30T15:56:44.713687-08:00","close_reason":"Implemented bd state and bd set-state commands with tests and documentation","dependencies":[{"issue_id":"bd-7l67","depends_on_id":"bd-31ae","type":"discovered-from","created_at":"2025-12-30T15:46:50.184553-08:00","created_by":"stevey"}]}
@@ -1128,7 +1129,6 @@
{"id":"bd-g5p7","title":"Extract duplicated validation logic from CLI commands","description":"~150 lines of identical validation logic duplicated between cmd_create.go and cmd_update.go\n\nDuplication found:\n- validateBeadFields(): 2 identical copies (50+ lines each) \n- parseTimeWithDefault(): 2 identical copies (30 lines each)\n- Flag definitions: 15+ duplicate registrations\n\nSolution: Extract to shared packages:\n- internal/validation/bead.go - Centralized validation\n- internal/utils/time.go - Consolidate time parsing (already exists)\n- cmd/bd/flags.go - Shared flag registration\n\nImpact: Changes require touching 2+ files; high risk of inconsistency; steep learning curve\n\nEffort: 4-6 hours","status":"closed","priority":0,"issue_type":"task","created_at":"2025-11-16T14:51:10.159953-08:00","updated_at":"2025-11-21T10:01:44.281231-05:00","closed_at":"2025-11-20T20:39:34.426726-05:00"}
{"id":"bd-g5q9","title":"Session ended: gt-beads-crew-emma","status":"closed","priority":2,"issue_type":"event","created_at":"2026-01-07T17:31:24.24289-08:00","created_by":"beads/crew/emma","updated_at":"2026-01-07T17:31:24.27373-08:00","closed_at":"2026-01-07T17:31:24.27373-08:00","close_reason":"auto-closed session event"}
{"id":"bd-g6m5","title":"Code smell: Mixed daemon/direct mode logic throughout commands","description":"Most commands duplicate logic for both daemon and direct modes:\n\n```go\nif daemonClient != nil {\n // Daemon implementation\n} else {\n // Direct implementation\n}\n```\n\nThis pattern appears multiple times within the same function in show.go, list.go, and other commands.\n\n**Problem:**\n- Doubles the code paths to test\n- Changes to data retrieval require updates in two places\n- Difficult to reason about behavior\n\n**Acceptance Criteria:**\n- [ ] Create StorageAccessor interface for both modes\n- [ ] Use strategy pattern for daemon vs direct operations\n- [ ] Centralize dispatching logic\n- [ ] Reduce code duplication\n- [ ] Tests pass","status":"hooked","priority":3,"issue_type":"chore","created_at":"2025-12-28T18:59:31.571393-08:00","created_by":"beads/crew/dave","updated_at":"2025-12-30T15:44:43.359727-08:00","dependencies":[{"issue_id":"bd-g6m5","depends_on_id":"bd-ox1o","type":"blocks","created_at":"2025-12-28T19:00:23.716024-08:00","created_by":"daemon"}]}
{"id":"bd-g6p1h","title":"Digest: mol-refinery-patrol","description":"Patrol: queue empty, no branches to merge","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-11T07:17:22.6528-08:00","updated_at":"2026-01-11T07:17:22.6528-08:00","closed_at":"2026-01-11T07:17:22.652752-08:00","close_reason":"Squashed from 11 wisps","dependencies":[{"issue_id":"bd-g6p1h","depends_on_id":"bd-wisp-t4c","type":"parent-child","created_at":"2026-01-11T07:17:22.653703-08:00","created_by":"beads/refinery"}]}
{"id":"bd-g7ay","title":"Merge: obsidian-mjwn3dvc","description":"branch: polecat/obsidian-mjwn3dvc\ntarget: main\nsource_issue: obsidian-mjwn3dvc\nrig: beads","status":"closed","priority":2,"issue_type":"merge-request","created_at":"2026-01-02T02:03:39.189973-08:00","created_by":"mayor","updated_at":"2026-01-02T13:41:56.629738-08:00","closed_at":"2026-01-02T13:41:56.629738-08:00","close_reason":"Branches merged, cleaning up stale MR beads"}
{"id":"bd-g7eq","title":"Agent beads: structured labels for filtering","description":"## Agent Beads Need Queryable Labels\n\nCurrently agent beads have role_type/rig in description text, not as labels. This breaks @group resolution in gt mail.\n\n## Current State\n\n```json\n{\n \"id\": \"gt-gastown-witness\",\n \"issue_type\": \"agent\",\n \"description\": \"...\\\\nrole_type: witness\\\\nrig: gastown\\\\n...\"\n}\n```\n\nCannot query: `bd list --type=agent --label=role_type:witness` returns nothing.\n\n## Required\n\nAgent bead creation should add labels:\n- `role_type:\u003ctype\u003e` (witness, refinery, crew, polecat, dog, mayor, deacon)\n- `rig:\u003crig\u003e` (gastown, beads, or \"town\" for town-level)\n\n## Where to Fix\n\ngt polecat/crew/agent creation commands should add labels:\n```bash\nbd create --type=agent ... --labels=\"role_type:witness,rig:gastown\"\n```\n\n## Queries Enabled\n\n```bash\nbd list --type=agent --label=role_type:witness # All witnesses\nbd list --type=agent --label=rig:gastown # All gastown agents\nbd list --type=agent --label=role_type:dog # All dogs\n```\n\n## Acceptance\n- New agent beads created with role_type/rig labels\n- Existing agent beads backfilled (one-time script)\n- @group patterns work in gt mail router","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-29T20:47:33.950733-08:00","created_by":"gastown/crew/joe","updated_at":"2025-12-29T21:16:00.746383-08:00","closed_at":"2025-12-29T21:16:00.746383-08:00","close_reason":"Implemented: role_type/rig labels for agent beads, auto-labeling on create/update, backfill command"}
{"id":"bd-g9eu","title":"Investigate TestRoutingIntegration failure","description":"TestRoutingIntegration/maintainer_with_SSH_remote failed during pre-commit check with \"expected role maintainer, got contributor\".\nThis occurred while running `go test -short ./...` on darwin/arm64.\nThe failure appears unrelated to storage/sqlite changes.\nNeed to investigate if this is a flaky test or environmental issue.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-20T15:55:19.337094-08:00","updated_at":"2025-12-23T23:49:49.11706-08:00","closed_at":"2025-12-23T23:49:49.11706-08:00"}
@@ -2035,7 +2035,6 @@
{"id":"bd-wisp-fm4","title":"Update local installation","description":"Update local bd to the new version.\n\nOption 1 - Homebrew:\n```bash\nbrew upgrade bd\n```\n\nOption 2 - Install script:\n```bash\ncurl -fsSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash\n```\n\nVerify:\n```bash\nbd --version\n```\n\nShould show 0.45.0.\n","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-06T20:07:32.259261-08:00","updated_at":"2026-01-06T20:18:20.106709-08:00","closed_at":"2026-01-06T20:18:20.106709-08:00","close_reason":"Release v0.45.0 complete","dependencies":[{"issue_id":"bd-wisp-fm4","depends_on_id":"bd-wisp-gnr","type":"blocks","created_at":"2026-01-06T20:07:32.286541-08:00","created_by":"beads/crew/dave"},{"issue_id":"bd-wisp-fm4","depends_on_id":"bd-wisp-eh4","type":"blocks","created_at":"2026-01-06T20:07:32.287962-08:00","created_by":"beads/crew/dave"},{"issue_id":"bd-wisp-fm4","depends_on_id":"bd-wisp-04d","type":"blocks","created_at":"2026-01-06T20:07:32.289399-08:00","created_by":"beads/crew/dave"}]}
{"id":"bd-wisp-gnr","title":"Verify GitHub release","description":"Check the GitHub releases page.\n\nhttps://github.com/steveyegge/beads/releases/tag/v0.45.0\n\nVerify:\n- Release created\n- Binaries attached (linux, darwin, windows)\n- Checksums present\n\n```bash\ngh release view v0.45.0 --json assets --jq '.assets[].name'\n```\n","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-06T20:07:32.258704-08:00","updated_at":"2026-01-06T20:17:52.237306-08:00","closed_at":"2026-01-06T20:17:52.237306-08:00","close_reason":"All release artifacts verified: GitHub (9 assets), npm 0.45.0, PyPI 0.45.0","dependencies":[{"issue_id":"bd-wisp-gnr","depends_on_id":"bd-wisp-u9o","type":"blocks","created_at":"2026-01-06T20:07:32.282733-08:00","created_by":"beads/crew/dave"}]}
{"id":"bd-wisp-qm8","title":"mol-refinery-patrol","description":"Merge queue processor patrol loop.\n\nThe Refinery is the Engineer in the engine room. You process polecat branches, merging them to main one at a time with sequential rebasing.\n\n**The Scotty Test**: Before proceeding past any failure, ask yourself: \"Would Scotty walk past a warp core leak because it existed before his shift?\"\n\n## Merge Flow\n\nThe Refinery receives MERGE_READY mail from Witnesses when polecats complete work:\n\n```\nWitness Refinery Git\n │ │ │\n │ MERGE_READY │ │\n │─────────────────────────\u003e│ │\n │ │ │\n │ (verify branch) │\n │ │ fetch \u0026 rebase │\n │ │──────────────────────────\u003e│\n │ │ │\n │ (run tests) │\n │ │ │\n │ (if pass) │\n │ │ merge \u0026 push │\n │ │──────────────────────────\u003e│\n │ │ │\n │ MERGED │ │\n │\u003c─────────────────────────│ │\n │ │ │\n```\n\nAfter successful merge, Refinery sends MERGED mail back to Witness so it can\ncomplete cleanup (nuke the polecat worktree).","status":"open","priority":2,"issue_type":"epic","created_at":"2026-01-10T20:51:46.780686-08:00","updated_at":"2026-01-10T20:51:46.780686-08:00","ephemeral":true}
{"id":"bd-wisp-t4c","title":"mol-refinery-patrol","description":"Merge queue processor patrol loop.\n\nThe Refinery is the Engineer in the engine room. You process polecat branches, merging them to main one at a time with sequential rebasing.\n\n**The Scotty Test**: Before proceeding past any failure, ask yourself: \"Would Scotty walk past a warp core leak because it existed before his shift?\"\n\n## Merge Flow\n\nThe Refinery receives MERGE_READY mail from Witnesses when polecats complete work:\n\n```\nWitness Refinery Git\n │ │ │\n │ MERGE_READY │ │\n │─────────────────────────\u003e│ │\n │ │ │\n │ (verify branch) │\n │ │ fetch \u0026 rebase │\n │ │──────────────────────────\u003e│\n │ │ │\n │ (run tests) │\n │ │ │\n │ (if pass) │\n │ │ merge \u0026 push │\n │ │──────────────────────────\u003e│\n │ │ │\n │ MERGED │ │\n │\u003c─────────────────────────│ │\n │ │ │\n```\n\nAfter successful merge, Refinery sends MERGED mail back to Witness so it can\ncomplete cleanup (nuke the polecat worktree).","status":"open","priority":2,"issue_type":"epic","created_at":"2026-01-11T07:16:28.036736-08:00","updated_at":"2026-01-11T07:16:28.036736-08:00","ephemeral":true}
{"id":"bd-wisp-u9o","title":"Await CI: release.yml completion","description":"Gate step: Wait for GitHub Actions release workflow to complete.\n\nThis gate blocks until the release.yml workflow run succeeds.\nThe Refinery auto-discovers the workflow run triggered by v0.45.0\nand closes this gate when it completes.\n\nExpected time: 5-10 minutes\n\nThe gate monitors:\n- Build artifacts (all platforms)\n- Test suite pass\n- npm publish\n- PyPI publish\n\nIf the workflow fails, this gate remains open and requires manual intervention.\n","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-06T20:07:32.258324-08:00","updated_at":"2026-01-06T20:17:28.463543-08:00","closed_at":"2026-01-06T20:17:28.463543-08:00","close_reason":"Release workflow completed successfully","dependencies":[{"issue_id":"bd-wisp-u9o","depends_on_id":"bd-wisp-99t","type":"blocks","created_at":"2026-01-06T20:07:32.268008-08:00","created_by":"beads/crew/dave"},{"issue_id":"bd-wisp-u9o","depends_on_id":"bd-wisp-84x","type":"blocks","created_at":"2026-01-06T20:07:32.281571-08:00","created_by":"beads/crew/dave"}]}
{"id":"bd-wisp-uvd","title":"mol-refinery-patrol","description":"Merge queue processor patrol loop.\n\nThe Refinery is the Engineer in the engine room. You process polecat branches, merging them to main one at a time with sequential rebasing.\n\n**The Scotty Test**: Before proceeding past any failure, ask yourself: \"Would Scotty walk past a warp core leak because it existed before his shift?\"\n\n## Merge Flow\n\nThe Refinery receives MERGE_READY mail from Witnesses when polecats complete work:\n\n```\nWitness Refinery Git\n │ │ │\n │ MERGE_READY │ │\n │─────────────────────────\u003e│ │\n │ │ │\n │ (verify branch) │\n │ │ fetch \u0026 rebase │\n │ │──────────────────────────\u003e│\n │ │ │\n │ (run tests) │\n │ │ │\n │ (if pass) │\n │ │ merge \u0026 push │\n │ │──────────────────────────\u003e│\n │ │ │\n │ MERGED │ │\n │\u003c─────────────────────────│ │\n │ │ │\n```\n\nAfter successful merge, Refinery sends MERGED mail back to Witness so it can\ncomplete cleanup (nuke the polecat worktree).","status":"closed","priority":2,"issue_type":"epic","assignee":"beads/refinery","created_at":"2026-01-10T17:57:56.356923-08:00","updated_at":"2026-01-10T18:01:38.662587-08:00","closed_at":"2026-01-10T18:01:38.662587-08:00","close_reason":"Patrol: queue empty, no branches to merge","ephemeral":true}
{"id":"bd-wisp-v0n","title":"Verify version consistency","description":"Confirm all versions match 0.45.0.\n\n```bash\ngrep 'Version = ' cmd/bd/version.go\njq -r '.version' .claude-plugin/plugin.json\njq -r '.version' npm-package/package.json\ngrep 'version = ' integrations/beads-mcp/pyproject.toml\n```\n\nAll should show 0.45.0.\n","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-06T20:07:32.257354-08:00","updated_at":"2026-01-06T20:11:24.898472-08:00","closed_at":"2026-01-06T20:11:24.898472-08:00","close_reason":"Version bumped and verified: 0.45.0","dependencies":[{"issue_id":"bd-wisp-v0n","depends_on_id":"bd-wisp-bye","type":"blocks","created_at":"2026-01-06T20:07:32.276314-08:00","created_by":"beads/crew/dave"}]}