bd sync: 2025-12-28 19:04:53
This commit is contained in:
@@ -374,7 +374,7 @@
|
||||
{"id":"bd-iq19","title":"Distill: promote ad-hoc epic to proto","description":"Extract a reusable proto from an existing ad-hoc epic.\n\nCOMMAND: bd mol distill \u003cepic-id\u003e [--as \u003cproto-name\u003e]\n\nBEHAVIOR:\n- Clone the epic and all children as a new proto\n- Set is_template=true on all cloned issues\n- Replace concrete values with {{variable}} placeholders (interactive or --var flags)\n- Add to proto catalog\n\nFLAGS:\n- --as NAME: Custom proto ID (default: proto-\u003cepic-id\u003e)\n- --var field=placeholder: Replace value with variable placeholder\n- --interactive: Prompt for each field that looks parameterizable\n- --dry-run: Preview the proto structure\n\nEXAMPLE:\n bd mol distill bd-o5xe --as proto-feature-workflow \\\n --var title=feature_name \\\n --var assignee=worker\n\nUSE CASES:\n- Team develops good workflow organically, wants to reuse it\n- Capture tribal knowledge as executable templates\n- Create starting point for similar future work\n\nThe reverse of spawn: instead of proto → molecule, it's molecule → proto.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-21T01:05:07.953538-08:00","updated_at":"2025-12-21T10:31:56.814246-08:00","closed_at":"2025-12-21T10:31:56.814246-08:00","close_reason":"Implemented distill command in mol.go","dependencies":[{"issue_id":"bd-iq19","depends_on_id":"bd-o5xe","type":"parent-child","created_at":"2025-12-21T01:05:16.495774-08:00","created_by":"daemon"},{"issue_id":"bd-iq19","depends_on_id":"bd-rnnr","type":"blocks","created_at":"2025-12-21T01:05:16.560404-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-iq7n","title":"Audit and fix JSONL filename mismatches across all repo clones","description":"## Problem\n\nMultiple clones of repos are configured with different JSONL filenames (issues.jsonl vs beads.jsonl), causing:\n1. JSONL files to be resurrected after deletion (one clone pushes issues.jsonl, another pushes beads.jsonl)\n2. Agents unable to see issues filed by other agents after sync\n3. Merge conflicts and data inconsistencies\n\n## Root Cause\n\nWhen repos were \"bd doctored\" or initialized at different times, some got issues.jsonl (old default) and others got beads.jsonl (Beads repo specific). These clones push their respective files, creating duplicates.\n\n## Task\n\nScan all repo clones under ~/src/ (1-2 levels deep) and standardize their JSONL configuration.\n\n### Step 1: Find all beads-enabled repos\n\n```bash\n# Find all directories named 'beads' at levels 1-2 under ~/src/\nfind ~/src -maxdepth 2 -type d -name beads\n```\n\n### Step 2: For each repo found, check configuration\n\nFor each directory from Step 1, check:\n- Does `.beads/metadata.json` exist?\n- What is the `jsonl_export` value?\n- What JSONL files actually exist in `.beads/`?\n- Are there multiple JSONL files (problem!)?\n\n### Step 3: Create audit report\n\nGenerate a report showing:\n```\nRepo Path | Config | Actual Files | Status\n----------------------------------- | ------------- | ---------------------- | --------\n~/src/beads | beads.jsonl | beads.jsonl | OK\n~/src/dave/beads | issues.jsonl | issues.jsonl | MISMATCH\n~/src/emma/beads | issues.jsonl | issues.jsonl, beads.jsonl | DUPLICATE!\n```\n\n### Step 4: Determine canonical name for each repo\n\nFor repos that are the SAME git repository (check `git remote -v`):\n- Group them together\n- Determine which JSONL filename should be canonical (majority wins, or beads.jsonl for the beads repo itself)\n- List which clones need to be updated\n\n### Step 5: Generate fix script\n\nCreate a script that for each mismatched clone:\n1. Updates `.beads/metadata.json` to use the canonical name\n2. If JSONL file needs renaming: `git mv .beads/old.jsonl .beads/new.jsonl`\n3. Removes any duplicate JSONL files: `git rm .beads/duplicate.jsonl`\n4. Commits the change\n5. Syncs: `bd sync`\n\n### Expected Output\n\n1. Audit report showing all repos and their config status\n2. List of repos grouped by git remote (same repository)\n3. Fix script or manual instructions for standardizing each repo\n4. Verification that after fixes, all clones of the same repo use the same JSONL filename\n\n### Edge Cases\n\n- Handle repos without metadata.json (use default discovery)\n- Handle repos with no git remote (standalone/local)\n- Handle repos that are not git repositories\n- Don't modify repos with uncommitted changes (warn instead)\n\n### Success Criteria\n\n- All clones of the same git repository use the same JSONL filename\n- No duplicate JSONL files in any repo\n- All configurations documented in metadata.json\n- bd doctor passes on all repos","status":"tombstone","priority":0,"issue_type":"task","created_at":"2025-11-21T23:58:35.044762-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":"task"}
|
||||
{"id":"bd-is6m","title":"Add gate checking to Deacon patrol loop","description":"Integrate gate checking into Deacon's patrol cycle.\n\n## Patrol Integration\n```go\nfunc (d *Deacon) checkGates(ctx context.Context) {\n gates, _ := d.store.ListOpenGates(ctx)\n \n for _, gate := range gates {\n // Check timeout\n if time.Since(gate.CreatedAt) \u003e gate.Timeout {\n d.notifyWaiters(gate, \"timeout\")\n d.closeGate(gate, \"timed out\")\n continue\n }\n \n // Check condition\n if d.checkCondition(gate.AwaitType, gate.AwaitID) {\n d.notifyWaiters(gate, \"cleared\")\n d.closeGate(gate, \"condition met\")\n }\n }\n}\n```\n\n## Note\nThis task is in Gas Town (gt), not beads. May need to be moved there.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-23T11:44:36.839709-08:00","updated_at":"2025-12-23T12:19:44.204647-08:00","closed_at":"2025-12-23T12:19:44.204647-08:00","close_reason":"Moved to gastown: gt-dh65","dependencies":[{"issue_id":"bd-is6m","depends_on_id":"bd-udsi","type":"parent-child","created_at":"2025-12-23T11:44:52.909253-08:00","created_by":"daemon"},{"issue_id":"bd-is6m","depends_on_id":"bd-u66e","type":"blocks","created_at":"2025-12-23T11:44:56.428084-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-it19","title":"Code smell: show.go is 1592 lines - needs splitting","description":"cmd/bd/show.go is 1592 lines mixing data fetching, transformation, output formatting, and thread reconstruction.\n\n**Problem:**\n- Too large to understand and maintain\n- Poor separation of concerns\n- Hard to test individual components\n\n**Acceptance Criteria:**\n- [ ] Extract formatting into show_formatter.go\n- [ ] Extract thread reconstruction into show_threads.go\n- [ ] Each file under 500 lines\n- [ ] No functionality changes\n- [ ] Tests pass","status":"open","priority":2,"issue_type":"chore","created_at":"2025-12-28T18:59:00.865612-08:00","created_by":"beads/crew/dave","updated_at":"2025-12-28T18:59:00.865612-08:00","dependencies":[{"issue_id":"bd-it19","depends_on_id":"bd-ox1o","type":"blocks","created_at":"2025-12-28T19:00:23.61907-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-it19","title":"Code smell: show.go is 1592 lines - needs splitting","description":"cmd/bd/show.go is 1592 lines mixing data fetching, transformation, output formatting, and thread reconstruction.\n\n**Problem:**\n- Too large to understand and maintain\n- Poor separation of concerns\n- Hard to test individual components\n\n**Acceptance Criteria:**\n- [ ] Extract formatting into show_formatter.go\n- [ ] Extract thread reconstruction into show_threads.go\n- [ ] Each file under 500 lines\n- [ ] No functionality changes\n- [ ] Tests pass","status":"closed","priority":2,"issue_type":"chore","created_at":"2025-12-28T18:59:00.865612-08:00","created_by":"beads/crew/dave","updated_at":"2025-12-28T19:01:18.42196-08:00","closed_at":"2025-12-28T19:01:18.42196-08:00","close_reason":"Already addressed - show.go split from 1592 to 578 lines","dependencies":[{"issue_id":"bd-it19","depends_on_id":"bd-ox1o","type":"blocks","created_at":"2025-12-28T19:00:23.61907-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-iutu","title":"Test comment display","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-27T17:50:24.269413-08:00","created_by":"beads/crew/dave","updated_at":"2025-12-27T17:53:39.950742-08:00","close_reason":"Test issue for GH#177 - deleting","comments":[{"id":5,"issue_id":"bd-iutu","author":"beads/crew/dave","text":"This is a test comment","created_at":"2025-12-28T01:50:30Z"}],"deleted_at":"2025-12-27T17:53:39.950742-08:00","deleted_by":"beads/crew/dave","delete_reason":"manual delete","original_type":"task"}
|
||||
{"id":"bd-iw4z","title":"Compound visualization in bd mol show","description":"Enhance bd mol show to display compound structure.\n\nENHANCEMENTS:\n- Show constituent protos and how they're bonded\n- Display bond type (sequential/parallel) between components\n- Indicate attachment points\n- Show combined variable requirements across all protos\n\nEXAMPLE OUTPUT:\n\n Compound: proto-feature-with-tests\n Bonded from:\n └─ proto-feature (root)\n └─ proto-testing (sequential, after completion)\n \n Variables: {{name}}, {{version}}, {{test_suite}}\n \n Structure:\n proto-feature-with-tests\n ├─ Design feature {{name}}\n ├─ Implement core\n ├─ Write unit tests ← from proto-testing\n └─ Run test suite {{test_suite}} ← from proto-testing","status":"deferred","priority":2,"issue_type":"task","created_at":"2025-12-21T00:59:26.71318-08:00","updated_at":"2025-12-21T11:12:44.012871-08:00","dependencies":[{"issue_id":"bd-iw4z","depends_on_id":"bd-o5xe","type":"parent-child","created_at":"2025-12-21T00:59:51.500865-08:00","created_by":"daemon"},{"issue_id":"bd-iw4z","depends_on_id":"bd-rnnr","type":"blocks","created_at":"2025-12-21T00:59:51.891643-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-iz5t","title":"Swarm: 13 beads backlog issues for polecat execution","description":"## Swarm Overview\n\n13 issues prepared for parallel polecat execution. All issues have been enhanced with concrete implementation guidance, file lists, and success criteria.\n\n## Issue List\n\n### Bug (1) - HIGH PRIORITY\n| ID | Priority | Title |\n|----|----------|-------|\n| bd-phtv | P1 | Pinned field overwritten by subsequent commands |\n\n### Test Coverage (3)\n| ID | Package | Target |\n|----|---------|--------|\n| bd-io8c | internal/syncbranch | 27% → 70% |\n| bd-thgk | internal/compact | 17% → 70% |\n| bd-tvu3 | internal/beads | 48% → 70% |\n\n### Code Quality (3)\n| ID | Task |\n|----|------|\n| bd-qioh | FatalError pattern standardization |\n| bd-rgyd | Split queries.go (1704 lines → 5 files) |\n| bd-u2sc.3 | Split cmd/bd files (sync/init/show/compact) |\n\n### Features (4)\n| ID | Task |\n|----|------|\n| bd-au0.5 | Search date/priority filters |\n| bd-ykd9 | Doctor --fix auto-repair |\n| bd-g4b4 | Close hooks system |\n| bd-likt | Gate daemon RPC |\n\n### Polish (2)\n| ID | Task |\n|----|------|\n| bd-4qfb | Doctor output formatting |\n| bd-u2sc.4 | slog structured logging |\n\n## Issue Details\n\nAll issues have been enhanced with:\n- Concrete file lists to modify\n- Code snippets and patterns\n- Success criteria\n- Test commands\n\nRun `bd show \u003cid\u003e` for full details on any issue.\n\n## Execution Notes\n\n- All issues are independent (no blockers between them)\n- bd-phtv (P1 bug) should get priority - affects bd pin functionality\n- Test coverage tasks are straightforward but time-consuming\n- File split tasks (bd-rgyd, bd-u2sc.3) are mechanical but important\n\n## Completed During Prep\n\n- bd-ucgz (P2 bug) - Fixed inline: external deps orphan check (commit f2db0a1d)\n- Moved 5 gastown issues out of beads backlog (gt-dh65, gt-ng6g, gt-fqcz, gt-gswn, gt-rw2z)\n- Deferred 4 premature/post-1.0 issues\n- Closed bd-udsi epic (core implementation complete)","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-23T12:43:58.427835-08:00","updated_at":"2025-12-23T20:26:50.629471-08:00","closed_at":"2025-12-23T20:26:50.629471-08:00","close_reason":"All 13 swarm issues completed by polecats"}
|
||||
@@ -657,7 +657,7 @@
|
||||
{"id":"bd-vgi5","title":"Push version bump to GitHub","description":"git push origin main - triggers CI but no release yet.","status":"tombstone","priority":1,"issue_type":"task","created_at":"2025-12-18T22:43:05.363604-08:00","updated_at":"2025-12-24T16:25:30.019895-08:00","dependencies":[{"issue_id":"bd-vgi5","depends_on_id":"bd-qqc","type":"parent-child","created_at":"2025-12-18T22:43:16.87736-08:00","created_by":"daemon"},{"issue_id":"bd-vgi5","depends_on_id":"bd-3ggb","type":"blocks","created_at":"2025-12-18T22:43:21.078208-08:00","created_by":"daemon"}],"deleted_at":"2025-12-24T16:25:30.019895-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
|
||||
{"id":"bd-vks2","title":"bd dep tree doesn't display external dependencies","description":"GetDependencyTree (dependencies.go:464-624) uses a recursive CTE that JOINs with the issues table, which means external refs (external:project:capability) are invisible in the tree output.\n\nWhen an issue has an external blocking dependency, running 'bd dep tree \u003cid\u003e' won't show it.\n\nOptions:\n1. Query dependencies table separately for external refs and display them as leaf nodes\n2. Add a synthetic 'external' node type that shows the ref and resolution status\n3. Document that external deps aren't shown in tree view (use bd show for full deps)\n\nLower priority since bd show \u003cid\u003e displays all dependencies including external refs.","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-21T23:45:27.121934-08:00","updated_at":"2025-12-22T22:30:19.083652-08:00","closed_at":"2025-12-22T22:30:19.083652-08:00","close_reason":"Implemented: GetDependencyTree now fetches external deps and adds them as synthetic leaf nodes with resolution status. Added test TestGetDependencyTreeExternalDeps. Updated formatTreeNode to display external deps specially.","dependencies":[{"issue_id":"bd-vks2","depends_on_id":"bd-zmmy","type":"discovered-from","created_at":"2025-12-21T23:45:27.122511-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-vpan","title":"Re: Thread Test 2","description":"Got your message. Testing reply feature.","status":"tombstone","priority":2,"issue_type":"message","created_at":"2025-12-16T18:21:29.144352-08:00","updated_at":"2025-12-17T16:11:17.070763-08:00","dependencies":[{"issue_id":"bd-vpan","depends_on_id":"bd-x36g","type":"replies-to","created_at":"2025-12-18T13:45:31.137191-08:00","created_by":"migration"}],"deleted_at":"2025-12-17T16:11:17.070763-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"message"}
|
||||
{"id":"bd-vqh9","title":"Code smell: init.go is 1928 lines - needs splitting","description":"cmd/bd/init.go is 1928 lines covering multiple init modes, contributor/team setup, hooks setup, and stealth mode.\n\n**Problem:**\n- File is too large to understand and maintain\n- Multiple responsibilities within single file\n- Harder to test individual components\n\n**Acceptance Criteria:**\n- [ ] Split into logical files (init_setup.go, init_hooks.go, init_stealth.go, etc.)\n- [ ] Each file under 500 lines\n- [ ] No functionality changes\n- [ ] Tests pass","status":"open","priority":2,"issue_type":"chore","created_at":"2025-12-28T18:58:59.37092-08:00","created_by":"beads/crew/dave","updated_at":"2025-12-28T18:58:59.37092-08:00","dependencies":[{"issue_id":"bd-vqh9","depends_on_id":"bd-ox1o","type":"blocks","created_at":"2025-12-28T19:00:23.586968-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-vqh9","title":"Code smell: init.go is 1928 lines - needs splitting","description":"cmd/bd/init.go is 1928 lines covering multiple init modes, contributor/team setup, hooks setup, and stealth mode.\n\n**Problem:**\n- File is too large to understand and maintain\n- Multiple responsibilities within single file\n- Harder to test individual components\n\n**Acceptance Criteria:**\n- [ ] Split into logical files (init_setup.go, init_hooks.go, init_stealth.go, etc.)\n- [ ] Each file under 500 lines\n- [ ] No functionality changes\n- [ ] Tests pass","status":"closed","priority":2,"issue_type":"chore","created_at":"2025-12-28T18:58:59.37092-08:00","created_by":"beads/crew/dave","updated_at":"2025-12-28T19:01:18.403417-08:00","closed_at":"2025-12-28T19:01:18.403417-08:00","close_reason":"Already addressed - init.go split from 1928 to 705 lines","dependencies":[{"issue_id":"bd-vqh9","depends_on_id":"bd-ox1o","type":"blocks","created_at":"2025-12-28T19:00:23.586968-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-vs9","title":"Fix unparam unused parameter in cmd/bd/doctor.go:541","description":"Linting issue: checkHooksQuick - path is unused (unparam) at cmd/bd/doctor.go:541:22. Error: func checkHooksQuick(path string) string {","status":"tombstone","priority":0,"issue_type":"bug","created_at":"2025-12-07T15:35:17.02177046-07: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-vwjl","title":"Witness Patrol","description":"Per-rig worker monitor patrol loop with progressive nudging.","status":"open","priority":2,"issue_type":"molecule","created_at":"2025-12-27T19:24:01.894777-08:00","created_by":"deacon","updated_at":"2025-12-27T19:24:01.894777-08:00"}
|
||||
{"id":"bd-vxp1","title":"Test Parent Epic","status":"tombstone","priority":2,"issue_type":"epic","created_at":"2025-12-27T22:15:17.894209-08:00","created_by":"beads/crew/dave","updated_at":"2025-12-27T22:16:35.925357-08:00","deleted_at":"2025-12-27T22:16:35.925357-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"epic"}
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"last_failure": "2025-12-28T19:00:31.410023-08:00",
|
||||
"failure_count": 1,
|
||||
"backoff_until": "2025-12-28T19:01:01.410023-08:00",
|
||||
"needs_manual_sync": false,
|
||||
"failure_reason": "git pull failed in worktree: exit status 128\nFrom github.com:steveyegge/beads\n * branch beads-sync -\u003e FETCH_HEAD\nfatal: Cannot rebase onto multiple branches.\n"
|
||||
}
|
||||
Reference in New Issue
Block a user