diff --git a/.beads/issues.jsonl b/.beads/issues.jsonl index d2d3d366..27375b33 100644 --- a/.beads/issues.jsonl +++ b/.beads/issues.jsonl @@ -1483,6 +1483,7 @@ {"id":"bd-kyll","title":"Add daemon-side delete operation tests","description":"Follow-up epic for PR #626: Add comprehensive test coverage for delete operations at the daemon/RPC layer. PR #626 successfully added storage layer tests but identified gaps in daemon-side delete operations and RPC integration testing.\n\n## Scope\nTests needed for:\n1. deleteViaDaemon (cmd/bd/delete.go:21) - RPC client-side deletion command\n2. Daemon RPC delete handler - Server-side deletion via daemon\n3. createTombstone wrapper (cmd/bd/delete.go:335) - Tombstone creation wrapper\n4. deleteIssue wrapper (cmd/bd/delete.go:349) - Direct deletion wrapper\n\n## Coverage targets\n- Delete via RPC daemon (both success and error paths)\n- Cascade deletion through daemon\n- Force deletion through daemon\n- Dry-run mode validation\n- Tombstone creation and verification\n- Error handling and edge cases","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-18T13:08:26.039663309-07:00","updated_at":"2025-12-25T01:44:03.584007-08:00","closed_at":"2025-12-25T01:44:03.584007-08:00"} {"id":"bd-kyo","title":"Run tests and linting","description":"Run the full test suite and linter:\n\n```bash\nTMPDIR=/tmp go test -short ./...\ngolangci-lint run ./...\n```\n\nFix any failures. Linting warnings acceptable (see LINTING.md).","status":"tombstone","priority":1,"issue_type":"task","created_at":"2025-12-18T22:42:59.290588-08:00","updated_at":"2025-12-24T16:25:30.300951-08:00","dependencies":[{"issue_id":"bd-kyo","depends_on_id":"bd-qqc","type":"parent-child","created_at":"2025-12-18T22:43:16.370234-08:00","created_by":"daemon"},{"issue_id":"bd-kyo","depends_on_id":"bd-8hy","type":"blocks","created_at":"2025-12-18T22:43:20.570742-08:00","created_by":"daemon"}],"deleted_at":"2025-12-24T16:25:30.300951-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"} {"id":"bd-kzda","title":"Implement conditional bond type for mol bond","description":"The mol bond command accepts 'conditional' as a bond type but doesn't implement any conditional-specific behavior. It currently behaves identically to 'parallel'.\n\n**Expected behavior:**\nConditional bonds should mean 'B runs only if A fails' per the help text (mol.go:318).\n\n**Implementation needed:**\n- Add failure-condition dependency handling\n- Possibly new dependency type or status-based blocking\n- Update bondProtoProto, bondProtoMol, bondMolMol to handle conditional\n\n**Alternative:**\nRemove 'conditional' from valid bond types until implemented.\n\nThis is new functionality, not a regression.","status":"closed","priority":3,"issue_type":"feature","created_at":"2025-12-21T10:23:01.966367-08:00","updated_at":"2025-12-23T01:33:25.734264-08:00","closed_at":"2025-12-23T01:33:25.734264-08:00"} +{"id":"bd-kzge1","title":"Session ended: gt-beads-refinery","status":"closed","priority":2,"issue_type":"event","owner":"steve.yegge@gmail.com","created_at":"2026-01-12T01:19:10.397407-08:00","created_by":"beads/refinery","updated_at":"2026-01-12T01:19:10.45858-08:00","closed_at":"2026-01-12T01:19:10.45858-08:00","close_reason":"auto-closed session cost wisp","ephemeral":true} {"id":"bd-kzxd","title":"Sync protection mechanism resurrects deleted issues","description":"During bd sync, the 'Protecting N issue(s) from left snapshot' logic resurrects issues that are in the deletions manifest, causing UNIQUE constraint failures on subsequent syncs.\n\n## Reproduction\n1. Delete an issue with bd delete (creates tombstone + deletions.jsonl entry)\n2. Run bd sync - succeeds\n3. Run bd sync again - fails with 'UNIQUE constraint failed: issues.id'\n\n## Root Cause\nThe protection mechanism (designed to prevent data loss during 3-way merge) keeps a snapshot of issues before sync. When importing after pull, it restores issues from this snapshot even if they're in the deletions manifest.\n\n## Observed Behavior\n- bd-3pd was deleted and added to deletions.jsonl\n- First sync exports tombstone, commits, pulls, imports - succeeds\n- Second sync: protection restores bd-3pd from left snapshot\n- Import tries to create bd-3pd which already exists → UNIQUE constraint error\n\n## Expected Behavior\nIssues in deletions manifest should NOT be restored by protection mechanism.\n\n## Workaround\nManually delete from DB: sqlite3 .beads/beads.db 'DELETE FROM issues WHERE id = \"bd-xxx\"'\n\n## Files to Investigate\n- cmd/bd/sync.go - protection logic\n- cmd/bd/snapshot_manager.go - left snapshot handling\n- internal/importer/importer.go - import with protection","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-12-13T10:11:02.550663-08:00","updated_at":"2025-12-13T10:20:51.651662-08:00","closed_at":"2025-12-13T10:20:51.651662-08:00"} {"id":"bd-l0fnh","title":"Session ended: gt-beads-witness","status":"closed","priority":2,"issue_type":"event","created_at":"2026-01-10T21:03:46.427973-08:00","created_by":"beads/witness","updated_at":"2026-01-10T21:03:46.476341-08:00","closed_at":"2026-01-10T21:03:46.476341-08:00","close_reason":"auto-closed session cost wisp","ephemeral":true} {"id":"bd-l0pg","title":"GH#483: Pre-commit hook should not fail when .beads exists but bd sync fails","description":"Pre-commit hook exit 1 on bd sync --flush-only failure blocks commits even when user removed beads but .beads dir reappears. Should warn not fail. See: https://github.com/steveyegge/beads/issues/483","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-14T16:32:22.759225-08:00","updated_at":"2025-12-16T01:18:02.80947-08:00","closed_at":"2025-12-16T01:09:46.931395-08:00"} @@ -2250,6 +2251,7 @@ {"id":"bd-wza7","title":"Code cleanup: Search for leftover debugging code","description":"Scan the beads codebase for debugging artifacts that should be removed before release:\n\n## Patterns to search for:\n- `fmt.Printf` debugging statements (vs proper logging)\n- `// DEBUG`, `// TODO: remove`, `// TEMP` comments\n- `log.Printf` that should use structured logging\n- Hardcoded test values or paths\n- `panic()` calls that should be proper error handling\n- Commented-out code blocks\n- `time.Sleep` debugging delays\n\n## Files to check:\n- cmd/bd/*.go\n- internal/**/*.go\n\n## Acceptance:\n- Remove or convert all debugging artifacts\n- Ensure no test pollution in production code","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-29T13:17:26.681839-08:00","created_by":"mayor","updated_at":"2025-12-29T13:20:49.422542-08:00","closed_at":"2025-12-29T13:20:49.422542-08:00","close_reason":"Code audit complete: no debugging artifacts found requiring cleanup"} {"id":"bd-wzve","title":"Review PR #905: fix(update) prefix routing","description":"dispatched_by: beads/crew/emma\n\nReview and merge PR #905 from greghughespdx.\n\nPR: https://github.com/anthropics/beads/pull/905\nChanges: +40/-23, 1 file (cmd/bd/update.go)\n\nFix: add prefix routing like bd show (bd-618f)\n\nReview checklist:\n- [ ] Code quality and style\n- [ ] Tests pass\n- [ ] Logic is correct\n- [ ] Approve or request changes","status":"closed","priority":2,"issue_type":"task","assignee":"beads/crew/fang","created_at":"2026-01-05T19:09:18.038808-08:00","created_by":"beads/crew/emma","updated_at":"2026-01-05T19:12:10.490066-08:00","closed_at":"2026-01-05T19:12:10.490066-08:00","close_reason":"PR #905 reviewed, approved, and merged"} {"id":"bd-x0zl","title":"Remove/relocate pin command (covered by mol commands)","description":"## Task\nReview and potentially remove `bd pin` as it overlaps with mol commands.\n\n## Analysis needed\n- `bd pin` sets the pinned flag on issues for agent work assignment\n- `bd hook` shows what's pinned to an agent\n- `bd unpin` removes the pinned flag\n- `bd mol` commands deal with molecules/templates\n\n## Options\n1. **Keep as-is**: pin/unpin are about work assignment, mol is about templates\n2. **Move under mol**: `bd mol pin`, `bd mol unpin` \n3. **Deprecate**: If mol commands fully cover the use case\n\n## Decision criteria\n- Are pin/unpin used independently of mol workflows?\n- Does Gas Town (gt) use these commands?\n\n## Recommendation\nCheck gt codebase for usage patterns before deciding. If pin/unpin are primarily used with mol workflows, consolidate under mol. If used independently, keep as-is.\n\n## Files potentially affected\n- cmd/bd/pin.go\n- cmd/bd/unpin.go\n- cmd/bd/hook.go\n- cmd/bd/mol.go (if moving)\n","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-27T15:11:09.799471-08:00","created_by":"mayor","updated_at":"2025-12-27T16:01:53.437698-08:00","closed_at":"2025-12-27T16:01:53.437698-08:00","comments":[{"id":6,"issue_id":"bd-x0zl","author":"stevey","text":"## Analysis Complete\n\n**Findings:**\n- bd pin, bd unpin, bd hook are **never used** by gt\n- gt uses bd update --status=pinned --assignee=agent instead (10 usages)\n- Code comment says 'pinned field is cosmetic for bd hook visibility'\n- gt mol status provides equivalent hook inspection\n\n**Recommendation:** Remove all three commands as dead code.","created_at":"2025-12-28T00:00:14Z"}]} +{"id":"bd-x15qx","title":"Session ended: gt-beads-refinery","status":"closed","priority":2,"issue_type":"event","owner":"steve.yegge@gmail.com","created_at":"2026-01-12T00:47:47.213557-08:00","created_by":"beads/refinery","updated_at":"2026-01-12T00:47:47.278778-08:00","closed_at":"2026-01-12T00:47:47.278778-08:00","close_reason":"auto-closed session cost wisp","ephemeral":true} {"id":"bd-x1xs","title":"Work on beads-1ra: Add molecules.jsonl as separate catalo...","description":"Work on beads-1ra: Add molecules.jsonl as separate catalog file for template molecules","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-19T20:17:44.840032-08:00","updated_at":"2025-12-21T15:28:17.633716-08:00","closed_at":"2025-12-21T15:28:17.633716-08:00"} {"id":"bd-x2bd","title":"Merge: bd-likt","description":"branch: polecat/Gater\ntarget: main\nsource_issue: bd-likt\nrig: beads","status":"closed","priority":3,"issue_type":"merge-request","created_at":"2025-12-23T13:46:27.091846-08:00","updated_at":"2025-12-23T19:12:08.355637-08:00","closed_at":"2025-12-23T19:12:08.355637-08:00"} {"id":"bd-x2ht","title":"Add BD_AGENT_MODE for ultra-compact output","description":"Optional agent-optimized output mode triggered by BD_AGENT_MODE=1 env var:\n\n- Compact format: just ID and title per line\n- Default to open/in_progress only\n- No colors, no emojis\n- Lower default limit (~20)\n- One-line summaries\n\nThis is independent but benefits from TTY detection infrastructure.\n\nConsider auto-detecting agent context via CLAUDE_CODE or similar env vars.","notes":"## Implementation Plan\n\n### Trigger\n```bash\nBD_AGENT_MODE=1 bd list\n```\n\nOr auto-detect common agent environments:\n```go\nfunc IsAgentMode() bool {\n if os.Getenv(\"BD_AGENT_MODE\") != \"\" {\n return true\n }\n // Auto-detect known agent contexts\n if os.Getenv(\"CLAUDE_CODE\") != \"\" {\n return true\n }\n // Add other agent env vars as discovered\n return false\n}\n```\n\n### Code Changes\n\n1. **Add agent output format** (cmd/bd/list.go):\n```go\nif ui.IsAgentMode() {\n // Ultra-compact: just ID and title\n for _, issue := range issues {\n fmt.Printf(\"%s: %s\\n\", issue.ID, issue.Title)\n }\n return\n}\n```\n\n2. **Agent mode defaults**:\n```go\nif ui.IsAgentMode() {\n if limit == 0 {\n limit = 20 // Lower default for agents\n }\n if status == \"\" {\n // Only actionable work\n filter.Status = []types.Status{\"open\", \"in_progress\"}\n }\n}\n```\n\n### Output Format (Agent Mode)\n```\nbd-mypl: Default bd list to non-closed issues\nbd-v5fn: Add default limit to bd list (50 issues)\nbd-jdz3: Add pager support to bd list\n```\n\nNo colors, no emojis, no brackets, no priority display.\nJust ID + title for maximum context efficiency.\n\n### Testing\n- `BD_AGENT_MODE=1 bd list` outputs compact format\n- Verify no ANSI codes in output\n- Verify default limit is 20\n- Verify only open/in_progress shown by default","status":"closed","priority":4,"issue_type":"feature","created_at":"2025-12-29T15:25:11.057467-08:00","created_by":"stevey","updated_at":"2025-12-30T18:12:30.979385-08:00","closed_at":"2025-12-30T15:59:24.474412-08:00","close_reason":"Implemented: BD_AGENT_MODE=1 triggers ultra-compact output format"} @@ -2267,10 +2269,12 @@ {"id":"bd-xabtq","title":"Session ended: gt-beads-crew-dave","status":"closed","priority":2,"issue_type":"event","created_at":"2026-01-08T14:23:46.099872-08:00","created_by":"beads/crew/dave","updated_at":"2026-01-08T14:23:46.132871-08:00","closed_at":"2026-01-08T14:23:46.132871-08:00","close_reason":"auto-closed session event"} {"id":"bd-xai7h","title":"Review and merge PR #999: bsv terminal viewer","description":"Review and merge PR #999 from bglenden that adds bsv (Rust TUI viewer) to COMMUNITY_TOOLS.md.\n\nEasy-win criteria:\n- Documentation-only change (2 lines added)\n- Adds link to external community tool\n- No code changes, just adding to community tools list\n\nSteps:\n1. gh pr checkout 999 --repo steveyegge/beads\n2. Verify the addition follows existing format in COMMUNITY_TOOLS.md\n3. Check the linked repo exists and is legitimate\n4. gh pr merge 999 --repo steveyegge/beads --squash\n\nPR: https://github.com/steveyegge/beads/pull/999","status":"closed","priority":2,"issue_type":"task","assignee":"beads/crew/fang","created_at":"2026-01-10T11:58:12.421204-08:00","created_by":"beads/crew/emma","updated_at":"2026-01-10T12:06:20.483258-08:00","closed_at":"2026-01-10T12:06:20.483258-08:00","close_reason":"Reviewed and merged PR #999: bsv terminal viewer added to COMMUNITY_TOOLS.md"} {"id":"bd-xbe2e","title":"Session ended: gt-beads-crew-emma","status":"closed","priority":2,"issue_type":"event","created_at":"2026-01-10T12:59:16.12296-08:00","created_by":"beads/crew/emma","updated_at":"2026-01-10T12:59:16.180965-08:00","closed_at":"2026-01-10T12:59:16.180965-08:00","close_reason":"auto-closed session cost wisp","ephemeral":true} +{"id":"bd-xbi58","title":"Session ended: gt-beads-witness","status":"closed","priority":2,"issue_type":"event","owner":"steve.yegge@gmail.com","created_at":"2026-01-12T01:19:05.640943-08:00","created_by":"beads/witness","updated_at":"2026-01-12T01:19:05.715486-08:00","closed_at":"2026-01-12T01:19:05.715486-08:00","close_reason":"auto-closed session cost wisp","ephemeral":true} {"id":"bd-xbl46","title":"Digest: mol-refinery-patrol","description":"Patrol: queue empty, no branches to merge","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-10T23:20:56.191693-08:00","updated_at":"2026-01-10T23:20:56.191693-08:00","closed_at":"2026-01-10T23:20:56.191652-08:00","close_reason":"Squashed from 11 wisps","dependencies":[{"issue_id":"bd-xbl46","depends_on_id":"bd-wisp-4qx","type":"parent-child","created_at":"2026-01-10T23:20:56.19258-08:00","created_by":"beads/refinery"}]} {"id":"bd-xctp","title":"GH#519: bd sync fails when sync.branch is currently checked-out branch","status":"tombstone","priority":2,"issue_type":"bug","created_at":"2025-12-16T01:06:05.319281-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-xde17","title":"Session ended: gt-beads-refinery","status":"closed","priority":2,"issue_type":"event","owner":"steve.yegge@gmail.com","created_at":"2026-01-11T08:15:35.933457-08:00","created_by":"beads/refinery","updated_at":"2026-01-11T08:15:35.994611-08:00","closed_at":"2026-01-11T08:15:35.994611-08:00","close_reason":"auto-closed session cost wisp","ephemeral":true} {"id":"bd-xfi2b","title":"Broken beads redirect: mayor/rig/.beads doesn't exist","description":"The beads redirect in polecats worktrees and rig-level .beads points to mayor/rig/.beads, but this directory doesn't exist.\n\nPath: /Users/stevey/gt/mayor/rig/.beads\nRedirect source: .beads/redirect contains 'mayor/rig/.beads'\n\nThis blocks gt done and gt handoff operations for polecats.","status":"closed","priority":1,"issue_type":"bug","created_at":"2026-01-10T21:12:30.823055-08:00","created_by":"beads/polecats/obsidian","updated_at":"2026-01-10T21:25:56.132031-08:00","closed_at":"2026-01-10T21:25:56.132031-08:00","close_reason":"Fixed: Redirect path was ../../../../mayor/rig/.beads (resolving to nonexistent /Users/stevey/gt/mayor/rig/.beads). Changed to ../../../mayor/rig/.beads (resolving correctly to /Users/stevey/gt/beads/mayor/rig/.beads). Fixed all 6 polecat worktrees."} +{"id":"bd-xgq3o","title":"Review and merge PR 1028: fix route prefix for cross-rig issue creation","description":"## PR Review Task\n\n**PR**: https://github.com/steveyegge/beads/pull/1028\n**Author**: nicsuzor\n\n## Summary\nBug fix: When using `bd create --rig \u003cname\u003e`, the prefix from routes.jsonl was being discarded. Issues were created with the database's default prefix instead of the route-specified prefix.\n\n## Changes\n- Adds `PrefixOverride` field to `types.Issue`\n- In `CreateIssue`, check `PrefixOverride` first (overrides config prefix)\n- In `createInRig`, set `issue.PrefixOverride` from the route prefix\n\n## Verification Steps\n1. `gh pr checkout 1028 --repo steveyegge/beads`\n2. `go build ./...` - verify it compiles\n3. `go test ./...` - verify tests pass\n4. Review the diff for correctness\n5. If all good: `gh pr merge 1028 --repo steveyegge/beads --squash`\n\n## Classification\nEasy-win bug fix with clear reproduction and solution.","status":"open","priority":1,"issue_type":"task","owner":"steve.yegge@gmail.com","created_at":"2026-01-12T01:19:59.690611-08:00","created_by":"beads/crew/emma","updated_at":"2026-01-12T01:19:59.690611-08:00"} {"id":"bd-xgsso","title":"Session ended: gt-beads-crew-fang","status":"closed","priority":2,"issue_type":"event","created_at":"2026-01-08T14:36:45.74668-08:00","created_by":"beads/crew/fang","updated_at":"2026-01-08T14:36:45.780975-08:00","closed_at":"2026-01-08T14:36:45.780975-08:00","close_reason":"auto-closed session event"} {"id":"bd-xhaa","title":"Test work item","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-28T00:04:42.739569-08:00","created_by":"beads/crew/emma","updated_at":"2025-12-28T00:11:48.074239-08:00","deleted_at":"2025-12-28T00:11:48.074239-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"task"} {"id":"bd-xi0m2","title":"Session ended: gt-gastown-crew-george","status":"closed","priority":2,"issue_type":"event","created_at":"2026-01-07T21:49:43.419781-08:00","created_by":"beads/refinery","updated_at":"2026-01-09T21:15:40.689778-08:00","closed_at":"2026-01-09T21:15:40.689778-08:00","close_reason":"Stale session ended events"}