diff --git a/.beads/issues.jsonl b/.beads/issues.jsonl index effb9c2e..b55278ed 100644 --- a/.beads/issues.jsonl +++ b/.beads/issues.jsonl @@ -842,7 +842,7 @@ {"id":"bd-uxlb","title":"Add bd agent state command for ZFC-compliant state reporting","description":"Add command for agents to write their own state to agent beads.\n\n```bash\nbd agent state \u003cagent-id\u003e \u003cstate\u003e\n# Example: bd agent state gt-mayor running\n# States: idle | running | stuck | stopped | dead\n```\n\nImplementation:\n1. Lookup agent bead by ID (type=agent)\n2. Update agent_state field in description\n3. Update last_activity timestamp\n4. Trigger bd sync if configured\n\nAlso add:\n- bd agent heartbeat \u003cagent-id\u003e - just updates last_activity\n- bd agent show \u003cagent-id\u003e - show agent bead details\n\nThis is the ZFC-compliant way for agents to self-report state.\n\nCross-ref: gt-p2vyo in gastown","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-28T01:49:46.325964-08:00","created_by":"mayor","updated_at":"2025-12-28T01:57:05.839623-08:00","closed_at":"2025-12-28T01:57:05.839623-08:00"} {"id":"bd-uz8r","title":"Phase 2.3: TOON deletion tracking","description":"Implement deletion tracking in TOON format.\n\n## Overview\nPhase 2.2 switched storage to TOON format. Phase 2.3 adds deletion tracking in TOON format for propagating deletions across clones.\n\n## Required Work\n\n### 2.3.1 Deletion Tracking (TOON Format)\n- [ ] Implement deletions.toon file (tracking deleted issue records)\n- [ ] Add DeleteTracker struct to record deleted issue IDs and metadata\n- [ ] Update bdt delete command to record in deletions.toon\n- [ ] Design deletion record format (ID, timestamp, reason, hash)\n- [ ] Implement auto-prune of old deletion records (configurable TTL)\n\n### 2.3.2 Sync Propagation\n- [ ] Load deletions.toon during import\n- [ ] Remove deleted issues from local database when imported from remote\n- [ ] Handle edge cases (delete same issue in multiple clones)\n- [ ] Deletion ordering and conflict resolution\n\n### 2.3.3 Testing\n- [ ] Unit tests for deletion tracking\n- [ ] Integration tests for deletion propagation\n- [ ] Multi-clone deletion scenarios\n- [ ] TTL expiration tests\n\n## Success Criteria\n- deletions.toon stores deletion records in TOON format\n- Deletions propagate across clones via git sync\n- Old records auto-prune after TTL\n- All 70+ tests still passing\n- bdt delete command works seamlessly","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-19T14:37:23.722066816-07:00","updated_at":"2025-12-21T14:42:27.491932-08:00","closed_at":"2025-12-21T14:42:27.491932-08:00","dependencies":[{"issue_id":"bd-uz8r","depends_on_id":"bd-iic1","type":"discovered-from","created_at":"2025-12-19T14:37:23.726825771-07:00","created_by":"daemon"}]} {"id":"bd-v2mr","title":"Add RequiredSections() method to IssueType","description":"Add method to internal/types that returns recommended sections per issue type (bug, task, feature, epic). This is the foundation for validation.","status":"closed","priority":3,"issue_type":"task","created_at":"2026-01-01T11:19:06.129337-08:00","created_by":"beads/crew/grip","updated_at":"2026-01-01T11:28:00.829607-08:00","closed_at":"2026-01-01T11:28:00.829607-08:00","close_reason":"Implemented RequiredSections() method on IssueType with tests","dependencies":[{"issue_id":"bd-v2mr","depends_on_id":"bd-ou35","type":"parent-child","created_at":"2026-01-01T11:19:22.697598-08:00","created_by":"beads/crew/grip"}]} -{"id":"bd-v43g","title":"bd move: Cross-rig bead relocation","description":"## Problem\n\nBeads sometimes get filed in the wrong rig (e.g., hq-* instead of gt-* or bd-*). There's no way to move them without manual recreation.\n\n## Current Misfiled Examples\n\n| ID | Title | Should Be |\n|----|-------|-----------|\n| hq-c21fj | bd init --from-jsonl | bd-* |\n| hq-q3tki | gt convoy list --tree | gt-* |\n| hq-1h2to | Stranded convoy detection | gt-* |\n| hq-2wy2i | Circuit breaker for stuck agents | gt-* |\n| hq-zs2t8 | Handoff mail bug | gt-* |\n| hq-ufiy | Formula semantics | gt-* |\n\n## Proposed Solution\n\nAdd `bd move \u003cid\u003e --to \u003cprefix|rig\u003e` command:\n\n```bash\nbd move hq-c21fj --to bd- # Move to beads rig\nbd move hq-q3tki --to gt- # Move to gastown rig\nbd move hq-1h2to --to gastown # Rig name also works\n```\n\n## Implementation\n\n1. Resolve target rig from prefix or name via routes.jsonl\n2. Generate new ID with target prefix\n3. Create bead in target rig's .beads/\n4. Tombstone original with redirect note: \"Moved to \u003cnew-id\u003e\"\n5. Update dependencies:\n - Rewrite deps pointing TO moved bead\n - Rewrite deps pointing FROM moved bead\n6. Print mapping: hq-c21fj -\u003e bd-xxxxx\n\n## Edge Cases\n\n- **Cross-repo moves**: May need bd sync on both sides\n- **Blocked-by chains**: All references need remapping\n- **Assignees**: Preserve or clear? (probably preserve)\n- **Ephemeral beads**: Block move? (ephemeral shouldn't be relocated)\n\n## Alternative: bd clone\n\nCould also support `bd clone \u003cid\u003e --to \u003cprefix\u003e` for copying without tombstoning, useful for templates.","status":"in_progress","priority":2,"issue_type":"feature","created_at":"2026-01-02T01:15:54.43056-08:00","created_by":"gastown/crew/joe","updated_at":"2026-01-02T01:19:06.782947-08:00"} +{"id":"bd-v43g","title":"bd move: Cross-rig bead relocation","description":"## Problem\n\nBeads sometimes get filed in the wrong rig (e.g., hq-* instead of gt-* or bd-*). There's no way to move them without manual recreation.\n\n## Current Misfiled Examples\n\n| ID | Title | Should Be |\n|----|-------|-----------|\n| hq-c21fj | bd init --from-jsonl | bd-* |\n| hq-q3tki | gt convoy list --tree | gt-* |\n| hq-1h2to | Stranded convoy detection | gt-* |\n| hq-2wy2i | Circuit breaker for stuck agents | gt-* |\n| hq-zs2t8 | Handoff mail bug | gt-* |\n| hq-ufiy | Formula semantics | gt-* |\n\n## Proposed Solution\n\nAdd `bd move \u003cid\u003e --to \u003cprefix|rig\u003e` command:\n\n```bash\nbd move hq-c21fj --to bd- # Move to beads rig\nbd move hq-q3tki --to gt- # Move to gastown rig\nbd move hq-1h2to --to gastown # Rig name also works\n```\n\n## Implementation\n\n1. Resolve target rig from prefix or name via routes.jsonl\n2. Generate new ID with target prefix\n3. Create bead in target rig's .beads/\n4. Tombstone original with redirect note: \"Moved to \u003cnew-id\u003e\"\n5. Update dependencies:\n - Rewrite deps pointing TO moved bead\n - Rewrite deps pointing FROM moved bead\n6. Print mapping: hq-c21fj -\u003e bd-xxxxx\n\n## Edge Cases\n\n- **Cross-repo moves**: May need bd sync on both sides\n- **Blocked-by chains**: All references need remapping\n- **Assignees**: Preserve or clear? (probably preserve)\n- **Ephemeral beads**: Block move? (ephemeral shouldn't be relocated)\n\n## Alternative: bd clone\n\nCould also support `bd clone \u003cid\u003e --to \u003cprefix\u003e` for copying without tombstoning, useful for templates.","status":"closed","priority":2,"issue_type":"feature","created_at":"2026-01-02T01:15:54.43056-08:00","created_by":"gastown/crew/joe","updated_at":"2026-01-02T01:30:36.409399-08:00","closed_at":"2026-01-02T01:30:36.409399-08:00","close_reason":"Implemented bd move command with cross-rig support and dependency remapping"} {"id":"bd-v4hq","title":"Test refile command","description":"Testing bd refile","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-31T12:31:39.783077-08:00","created_by":"beads/crew/grip","updated_at":"2025-12-31T12:31:44.911284-08:00","closed_at":"2025-12-31T12:31:44.911284-08:00","close_reason":"Refiled to gt-lyc2b"} {"id":"bd-v55y","title":"bd repair: Limit verbose output for large orphan counts","description":"When there are thousands of orphaned references, bd repair prints them all, flooding the terminal.\n\nFix: Add --verbose flag; default to summary only (e.g., 'Found 1,234 orphaned dependencies'). Only print individual items with --verbose or when count is small (\u003c20).","status":"closed","priority":3,"issue_type":"feature","created_at":"2025-12-29T12:48:10.496115-08:00","created_by":"stevey","updated_at":"2025-12-29T12:59:05.123618-08:00","closed_at":"2025-12-29T12:59:05.123618-08:00","close_reason":"Fixed in commit d7a67ad6"} {"id":"bd-v5fn","title":"Add default limit to bd list (50 issues)","description":"Add a sensible default limit of 50 issues to bd list output, matching patterns from gh cli (30) and jira-cli (50).\n\n- Default to 50 when no --limit specified\n- --limit 0 means unlimited (explicit override)\n- Protects both agents and humans from overwhelming output\n\nThis is independent of the filter change but complementary.","notes":"## Implementation Plan\n\n### Code Changes (cmd/bd/list.go)\n\n1. **Change default limit** (init function, ~line 887):\n```go\n// Currently: listCmd.Flags().IntP(\"limit\", \"n\", 0, \"Limit results\")\n// Change to:\nlistCmd.Flags().IntP(\"limit\", \"n\", 50, \"Limit results (0 for unlimited)\")\n```\n\n2. **Update help text**:\n```go\n\"Limit results (default: 50, use 0 for unlimited)\"\n```\n\n3. **Handle explicit 0** in Run function:\n```go\n// --limit 0 means unlimited\nif cmd.Flags().Changed(\"limit\") \u0026\u0026 limit == 0 {\n filter.Limit = 0 // No limit applied\n} else if limit \u003e 0 {\n filter.Limit = limit\n} else {\n filter.Limit = 50 // Default\n}\n```\n\n### Testing\n- `bd list` shows max 50 issues\n- `bd list --limit 10` shows max 10\n- `bd list --limit 0` shows unlimited\n- Verify output indicates truncation: \"Showing 50 of 499 issues (use --limit 0 for all)\"\n\n### Documentation\n- Note in help: default changed from unlimited to 50","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-12-29T15:25:08.299726-08:00","created_by":"stevey","updated_at":"2025-12-29T17:53:30.23005-08:00","closed_at":"2025-12-29T17:53:30.23005-08:00","close_reason":"Implemented in single commit","labels":["gh:788"]}