bd sync: 2025-12-28 21:28:27
This commit is contained in:
@@ -96,6 +96,7 @@
|
||||
{"id":"bd-4sxh","title":"Code smell: Issue struct still has ~100 fields - consider composition","description":"internal/types/types.go Issue struct (lines 14-100) still has approximately 100 fields across many categories despite prior cleanup:\n\n- Core identification (ID, ContentHash)\n- Content (Title, Description, Design)\n- Status \u0026 Workflow\n- Assignment, Timestamps\n- External integration\n- Compaction metadata\n- Relational data (Labels, Dependencies, Comments)\n- Tombstone, Messaging, Context markers\n- Bonding, HOP, Gate, Source tracing, Agent identity fields\n\n**Problem:**\n- Very large struct is difficult to understand\n- Hard to identify required vs optional fields\n- High change risk\n\n**Acceptance Criteria:**\n- [ ] Group related fields into embedded structs (IssueMetadata, IssueCompaction, IssueAgent, etc.)\n- [ ] Use composition instead of single flat struct\n- [ ] Maintain backward compatibility for serialization\n- [ ] Tests pass","status":"open","priority":3,"issue_type":"chore","created_at":"2025-12-28T19:00:00.560267-08:00","created_by":"beads/crew/dave","updated_at":"2025-12-28T19:00:00.560267-08:00","dependencies":[{"issue_id":"bd-4sxh","depends_on_id":"bd-ox1o","type":"blocks","created_at":"2025-12-28T19:00:23.780801-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-4uoc","title":"Code Review Followup Summary: PR #481 + PR #551","description":"## Merged PRs Summary\n\n### PR #551: Persist close_reason to issues table\n- ✅ Merged successfully\n- ✅ Bug fix: close_reason now persisted in database column (not just events table)\n- ✅ Comprehensive test coverage added\n- ✅ Handles reopen case (clearing close_reason)\n\n**Followup Issues Filed:**\n- bd-lxzx: Document close_reason in JSONL export format\n- bd-077e: Update CLI documentation for close_reason field\n\n---\n\n### PR #481: Context Engineering Optimizations (80-90% context reduction)\n- ✅ Merged successfully \n- ✅ Lazy tool discovery: discover_tools() + get_tool_info()\n- ✅ Minimal issue models: IssueMinimal (~80% smaller than full Issue)\n- ✅ Result compaction: Auto-compacts results \u003e20 items\n- ✅ All 28 tests passing\n- ⚠️ Breaking change: ready() and list() return type changed\n\n**Followup Issues Filed:**\n- bd-b318: Add integration tests for CompactedResult\n- bd-4u2b: Make compaction settings configurable (THRESHOLD, PREVIEW_COUNT)\n- bd-2kf8: Document CompactedResult response format in CONTEXT_ENGINEERING.md\n- bd-pdr2: Document backwards compatibility considerations\n\n---\n\n## Overall Assessment\n\nBoth PRs are production-ready with solid implementations. All critical functionality works and tests pass. Followup issues focus on:\n1. Documentation improvements (5 issues)\n2. Integration test coverage (1 issue)\n3. Configuration flexibility (1 issue)\n4. Backwards compatibility guidance (1 issue)\n\nNo critical bugs or design issues found.\n\n## Review Completed By\nCode review process completed. Issues auto-created for tracking improvements.","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-14T14:25:59.214886-08:00","updated_at":"2025-12-14T14:25:59.214886-08:00","dependencies":[{"issue_id":"bd-4uoc","depends_on_id":"bd-otf4","type":"discovered-from","created_at":"2025-12-14T14:25:59.216884-08:00","created_by":"stevey","metadata":"{}"},{"issue_id":"bd-4uoc","depends_on_id":"bd-z86n","type":"discovered-from","created_at":"2025-12-14T14:25:59.217296-08:00","created_by":"stevey","metadata":"{}"}]}
|
||||
{"id":"bd-4y4g","title":"Bump version in all files","description":"Run ./scripts/bump-version.sh {{version}} to update 10 version files. Then run with --commit after info.go is updated.","status":"tombstone","priority":1,"issue_type":"task","created_at":"2025-12-18T22:43:01.859728-08:00","updated_at":"2025-12-24T16:25:30.160776-08:00","dependencies":[{"issue_id":"bd-4y4g","depends_on_id":"bd-qqc","type":"parent-child","created_at":"2025-12-18T22:43:16.623724-08:00","created_by":"daemon"},{"issue_id":"bd-4y4g","depends_on_id":"bd-8v2","type":"blocks","created_at":"2025-12-18T22:43:20.823329-08:00","created_by":"daemon"}],"deleted_at":"2025-12-24T16:25:30.160776-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
|
||||
{"id":"bd-5012","title":"Merge: ux-1766978911613","description":"branch: polecat/Nux-1766978911613\ntarget: main\nsource_issue: ux-1766978911613\nrig: beads","status":"open","priority":2,"issue_type":"merge-request","created_at":"2025-12-28T19:35:42.938017-08:00","created_by":"beads/polecats/Nux","updated_at":"2025-12-28T19:35:42.938017-08:00"}
|
||||
{"id":"bd-56x","title":"Review PR #514: fix plugin install docs","description":"Review and merge PR #514 from aspiers. This PR fixes incorrect docs for installing Claude Code plugin from source in docs/PLUGIN.md. Clarifies shell vs Claude Code commands and fixes the . vs ./beads argument issue. URL: https://github.com/anthropics/beads/pull/514","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-13T08:15:16.865354+11: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-581b80b3","title":"bd find-duplicates - AI-powered duplicate detection","description":"Find semantically duplicate issues.\n\nApproaches:\n1. Mechanical: Exact title/description matching\n2. Embeddings: Cosine similarity (cheap, scalable)\n3. AI: LLM-based semantic comparison (expensive, accurate)\n\nUses embeddings by default for \u003e100 issues.\n\nFiles: cmd/bd/find_duplicates.go (new)","status":"tombstone","priority":1,"issue_type":"task","created_at":"2025-10-29T20:49:49.126801-07:00","updated_at":"2025-12-25T01:21:01.952723-08:00","close_reason":"Closed","deleted_at":"2025-12-25T01:21:01.952723-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"task"}
|
||||
{"id":"bd-589x","title":"HANDOFF: Version 0.30.7 release in progress","description":"## Context\nDoing a 0.30.7 patch release with bug fixes.\n\n## What's done\n- Fixed #657: bd graph nil pointer crash (graph.go:102)\n- Fixed #652: Windows npm installer file lock (postinstall.js)\n- Updated CHANGELOG.md and info.go\n- Pushed to main, CI running (run 20390861825)\n- Created version-bump molecule template (bd-6s61) and instantiated for 0.30.7 (bd-8pyn)\n\n## In progress\nMolecule bd-8pyn has 3 remaining tasks:\n - bd-dxo7: Wait for CI to pass\n - bd-7l70: Verify release artifacts \n - bd-5c91: Update local installation\n\n## Check CI\n gh run list --repo steveyegge/beads --limit 1\n gh run view 20390861825 --repo steveyegge/beads\n\n## New feature filed\nbd-n777: Timer beads for scheduled agent callbacks\nDesign for Deacon-managed timers that can interrupt agents via tmux\n\n## Resume commands\n bd --no-daemon show bd-8pyn\n gh run list --repo steveyegge/beads --limit 1","status":"closed","priority":2,"issue_type":"message","assignee":"beads/dave","created_at":"2025-12-19T23:06:14.902334-08:00","updated_at":"2025-12-20T00:49:51.927111-08:00","closed_at":"2025-12-20T00:25:59.596546-08:00"}
|
||||
@@ -108,6 +109,7 @@
|
||||
{"id":"bd-5qim","title":"Optimize GetReadyWork performance - 752ms on 10K database (target: \u003c50ms)","notes":"# Performance Analysis (10K Issue Database)\n\nAnalyzed using CPU profiles from benchmark suite on Apple M2 Pro.\n\n## Operation Performance\n\n| Operation | Time | Allocations | Memory |\n|----------------------------------|---------|-------------|--------|\n| bd ready (GetReadyWork) | ~752ms | 167,466 | 16MB |\n| bd list (SearchIssues no filter) | ~11.6ms | 89,214 | 5.8MB |\n| bd list (SearchIssues filtered) | ~9.2ms | 62,365 | 3.5MB |\n| bd create (CreateIssue) | ~2.6ms | 146 | 8.6KB |\n| bd update (UpdateIssue) | ~0.32ms | 364 | 15KB |\n| bd close (UpdateIssue) | ~0.32ms | 364 | 15KB |\n\n**Target: \u003c50ms for all operations on 10K database**\n\n**Current issue: GetReadyWork is 15x over target (752ms vs 50ms)**\n\n## Root Cause\n\nGetReadyWork (internal/storage/sqlite/ready.go:90-128) uses recursive CTE to propagate blocking:\n- 65x slower than SearchIssues\n- Recalculates entire blocked issue tree on every call\n- Algorithm:\n 1. Find directly blocked issues via 'blocks' dependencies\n 2. Recursively propagate blockage to descendants (max depth: 50)\n 3. Exclude all blocked issues from results\n\n## CPU Profile Analysis\n\n- Database syscalls (pthread_cond_signal, syscall6): ~75%\n- SQLite engine overhead: inherent to recursive CTE\n- Application code (query construction): \u003c1%\n\n**Bottleneck is the recursive CTE query execution, not application code.**\n\n## Optimization Recommendations\n\n### High Impact (Likely to achieve \u003c50ms target)\n\n1. **Cache blocked issue calculation**\n - Add `blocked_issues` table updated on dependency changes\n - Trade write complexity for read speed (ready called \u003e\u003e dependency changes)\n - Eliminates recursive CTE on every read\n\n2. **Add/verify database indexes**\n ```sql\n CREATE INDEX IF NOT EXISTS idx_dependencies_blocked \n ON dependencies(issue_id, type, depends_on_id);\n CREATE INDEX IF NOT EXISTS idx_issues_status \n ON issues(status);\n ```\n\n### Medium Impact\n\n3. **Reduce allocations** (167K allocations for GetReadyWork)\n - Profile `scanIssues()` for object pooling opportunities\n - Reuse slice capacity for repeated calls\n\n### Low Impact (Not recommended)\n- Query optimization for CRUD operations (already \u003c3ms)\n- Connection pooling tuning (not showing in profiles)\n\n## Verification\n\nRun benchmarks to validate optimization:\n```bash\nmake bench-quick\ngo tool pprof -http=:8080 internal/storage/sqlite/bench-cpu-*.prof\n```\n\nProfile files automatically generated in `internal/storage/sqlite/`.","status":"tombstone","priority":0,"issue_type":"bug","created_at":"2025-11-14T09:02:46.507526-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-5rj1","title":"Merge: bd-gqxd","description":"branch: polecat/furiosa\ntarget: main\nsource_issue: bd-gqxd\nrig: beads","status":"closed","priority":2,"issue_type":"merge-request","created_at":"2025-12-23T16:40:21.707706-08:00","updated_at":"2025-12-23T19:12:08.349245-08:00","closed_at":"2025-12-23T19:12:08.349245-08:00","close_reason":"Stale merge-requests from orphaned polecat branches - refinery not processing"}
|
||||
{"id":"bd-5s91","title":"CLI API Audit for OSS Launch","description":"Comprehensive CLI API audit before OSS launch.\n\n## Tasks\n1. Review gt command groupings - propose consolidation\n2. Review bd command groupings \n3. Document gt vs bd ownership boundaries\n4. Identify naming inconsistencies\n5. Document flag vs subcommand criteria\n\n## Context\n- Pre-OSS launch cleanup\n- Goal: clean, consistent, discoverable CLI surface","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-25T00:15:41.355013-08:00","updated_at":"2025-12-25T13:26:25.587476-08:00","closed_at":"2025-12-25T13:26:25.587476-08:00","close_reason":"Completed"}
|
||||
{"id":"bd-5x0j","title":"bd swarm status command","description":"Add bd swarm status to show swarm state derived from beads.\n\n## Context\nThis is the key command that demonstrates 'discovery over tracking'. \nSwarm status is COMPUTED from:\n- Epic children statuses\n- Dependency structure\n- Issue assignments\n\nNOT stored separately. If beads changes, status changes.\n\n## Implementation\n1. New command: bd swarm status \u003cswarm-mol-id\u003e\n2. Find linked epic from swarm molecule\n3. Query all children of epic\n4. Compute and display:\n - Ready front (unblocked, open issues)\n - In progress (in_progress status)\n - Completed (closed)\n - Blocked (has unmet dependencies)\n - Progress percentage\n - Coordinator\n - Estimated remaining (based on avg session time)\n\n## Output Format\nReady Front Analysis: gt-epic-xxx\n\nCompleted: ✓ gt-001 (2h ago)\nActive: ⟳ gt-002 [nux], ⟳ gt-003 [toast]\nReady: ○ gt-004, ○ gt-005\nBlocked: ◌ gt-006 (needs 004, 005)\n\nProgress: 1/6 complete, 2/6 active (17%)\n\n## Reference\n~/gt/docs/swarm-architecture.md - 'Ready Front Visualization'\n\n## Acceptance\n- bd swarm status \u003cmol\u003e shows accurate state\n- State reflects current beads (not cached)\n- --json output for programmatic use","status":"closed","priority":1,"issue_type":"task","assignee":"beads/crew/emma","created_at":"2025-12-28T19:11:36.594118-08:00","created_by":"mayor","updated_at":"2025-12-28T21:28:21.976756-08:00","closed_at":"2025-12-28T21:28:21.976756-08:00","close_reason":"Implemented bd swarm status command","dependencies":[{"issue_id":"bd-5x0j","depends_on_id":"bd-oxgi","type":"blocks","created_at":"2025-12-28T19:11:52.464245-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-66l4","title":"Runtime bonding: bd mol attach","description":"Attach a molecule to an already-running workflow.\n\nCOMMAND: bd mol attach \u003cepic-id\u003e \u003cproto\u003e [--after \u003cissue-id\u003e]\n\nBEHAVIOR:\n- Resolve running epic and proto\n- Spawn proto as new subtree\n- Wire to specified attachment point (or epic root)\n- Handle in-progress issues: new work doesn't block completed work\n\nUSE CASES:\n- Discovered need for docs while implementing feature\n- Hotfix needs attaching to release workflow\n- Additional testing scope identified mid-flight\n\nFLAGS:\n- --after ISSUE: Specific attachment point within epic\n- --type: sequential (default) or parallel\n- --var: Variables for the attached proto\n\nCONSIDERATIONS:\n- What if epic is already closed? Error or reopen?\n- What if attachment point issue is closed? Attach as ready-to-work?","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-21T00:59:16.920483-08:00","updated_at":"2025-12-21T01:08:43.530597-08:00","closed_at":"2025-12-21T01:08:43.530597-08:00","close_reason":"Merged into bd-o91r: bond command handles all bonding cases polymorphically","dependencies":[{"issue_id":"bd-66l4","depends_on_id":"bd-o5xe","type":"parent-child","created_at":"2025-12-21T00:59:51.435542-08:00","created_by":"daemon"},{"issue_id":"bd-66l4","depends_on_id":"bd-o91r","type":"blocks","created_at":"2025-12-21T00:59:51.813782-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-66w1","title":"Add external_projects to config schema","description":"Add external_projects mapping to .beads/config.yaml:\n\n```yaml\nexternal_projects:\n beads: ../beads\n gastown: ../gastown\n other: /absolute/path/to/project\n```\n\nUsed by bd ready and other commands to resolve external: references.\n\nPart of cross-project dependency system.\nSee: gastown/docs/cross-project-deps.md","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-12-21T22:37:39.245017-08:00","updated_at":"2025-12-21T23:03:19.81448-08:00","closed_at":"2025-12-21T23:03:19.81448-08:00","close_reason":"Added external_projects to config schema with GetExternalProjects() and ResolveExternalProjectPath() functions, tests, and documentation"}
|
||||
{"id":"bd-687g","title":"Code review: mol squash deletion bypasses tombstone system","description":"The deleteEphemeralChildren function in mol_squash.go uses DeleteIssue directly instead of the proper deletion flow. This bypasses tombstone creation, deletion tracking (deletions.jsonl), and dependency cleanup. Could cause issues with deletion propagation across clones.\n\nCurrent code uses d.DeleteIssue(ctx, id) but should probably use d.DeleteIssues(ctx, ids, false, true, false) for proper tombstone handling.\n\nAlternative: Document that ephemeral issues intentionally use hard delete since they are transient and should never propagate to other clones anyway.","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-21T13:57:20.223345-08:00","updated_at":"2025-12-21T14:17:38.073899-08:00","closed_at":"2025-12-21T14:17:38.073899-08:00","close_reason":"Implemented ephemeral issue filtering from JSONL export and fixed comments leak in DeleteIssue"}
|
||||
@@ -311,6 +313,7 @@
|
||||
{"id":"bd-f5cc","title":"Thread Test","description":"Testing the thread feature","status":"tombstone","priority":2,"issue_type":"message","created_at":"2025-12-16T18:21:01.244501-08:00","updated_at":"2025-12-17T16:11:17.070763-08:00","dependencies":[{"issue_id":"bd-f5cc","depends_on_id":"bd-x36g","type":"supersedes","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-f616","title":"Digest: Version Bump: test-squash","description":"## Molecule Execution Summary\n\n**Molecule**: Version Bump: test-squash\n**Steps**: 8\n\n**Completed**: 0/8\n\n---\n\n### Steps\n\n1. **[open]** Verify release artifacts\n Check GitHub releases page - binaries for darwin/linux/windows should be available\n\n2. **[open]** Commit and push release\n git add -A \u0026\u0026 git commit \u0026\u0026 git push to trigger CI\n\n3. **[open]** Update CHANGELOG.md with release notes\n Add meaningful release notes to CHANGELOG.md describing what changed in test-squash\n\n4. **[open]** Wait for CI to pass\n Monitor GitHub Actions - all checks must pass before release artifacts are built\n\n5. **[open]** Restart running daemons\n Kill and restart any running bd daemons to pick up new version: pkill -f 'bd daemon' \u0026\u0026 bd daemon --start\n\n6. **[open]** Update local installation\n Run install script or brew upgrade to get new version locally: curl -fsSL .../install.sh | bash\n\n7. **[open]** Run bump-version.sh test-squash\n Run ./scripts/bump-version.sh test-squash to update version in all files\n\n8. **[open]** Update info.go versionChanges\n Add entry to versionChanges in cmd/bd/info.go with agent-actionable changes for test-squash\n\n","status":"tombstone","priority":1,"issue_type":"task","created_at":"2025-12-21T13:53:18.471919-08:00","updated_at":"2025-12-21T13:53:35.256043-08:00","close_reason":"Squashed from 8 ephemeral steps","deleted_at":"2025-12-21T13:53:35.256043-08:00","deleted_by":"stevey","delete_reason":"manual delete","original_type":"task"}
|
||||
{"id":"bd-f7p1","title":"Add tests for mol spawn --attach","description":"Code review (bd-obep) found no tests for the spawn --attach functionality.\n\n**Test cases needed:**\n1. Basic attach - spawn proto with one --attach\n2. Multiple attachments - spawn with --attach A --attach B\n3. Attach types - verify sequential vs parallel bonding\n4. Error case: attaching non-proto (missing template label)\n5. Variable aggregation - vars from primary + attachments combined\n6. Dry-run output includes attachment info\n\n**Implementation notes:**\n- Tests should use in-memory storage\n- Create test protos, spawn with attachments, verify dependency structure\n- Check that sequential uses 'blocks' type, parallel uses 'parent-child'","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-21T10:58:16.766461-08:00","updated_at":"2025-12-21T21:33:12.136215-08:00","closed_at":"2025-12-21T21:33:12.136215-08:00","close_reason":"Added 6 tests for mol spawn --attach: basic attach, multiple attachments, sequential/parallel bond types, non-proto validation, variable aggregation, and dry-run output","dependencies":[{"issue_id":"bd-f7p1","depends_on_id":"bd-obep","type":"discovered-from","created_at":"2025-12-21T10:58:16.767616-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-fa1q","title":"bd swarm create command","description":"Add bd swarm create to create a swarm molecule from an epic.\n\n## Context\nSwarms ARE persistent molecules - not separate JSON state. This command creates\na swarm molecule that:\n- Links to the epic it orchestrates\n- Has mol_type=swarm\n- Specifies a coordinator\n- Can be discovered by any agent\n\n## Core Principle: Discovery Over Tracking\nThe swarm molecule doesn't track step-by-step state. Instead:\n- Query bd ready --parent=\u003cepic\u003e to find the ready front\n- Query bd list --parent=\u003cepic\u003e --status=closed to find completed\n- Derive progress from children's statuses\n\n## Implementation\n1. New command: bd swarm create \u003cepic-id\u003e [--coordinator=\u003caddr\u003e]\n2. Validate epic structure first (call bd swarm validate)\n3. Create molecule bead:\n - mol_type: swarm\n - epic: \u003cepic-id\u003e\n - coordinator: \u003caddr\u003e\n - status: open\n4. Return the swarm molecule ID\n\n## Single-Issue Wrapping\nIf given a single issue (not epic), auto-wrap:\n- Create an epic with that issue as child\n- Then create swarm molecule\n\n## Reference\n~/gt/docs/swarm-architecture.md - 'Swarm Structure' section\n\n## Acceptance\n- bd swarm create \u003cepic\u003e creates a swarm molecule\n- Molecule has mol_type=swarm\n- Links to epic via epic field\n- Validates structure before creation","status":"in_progress","priority":1,"issue_type":"task","assignee":"beads/crew/dave","created_at":"2025-12-28T19:11:35.067432-08:00","created_by":"mayor","updated_at":"2025-12-28T21:25:01.522368-08:00","dependencies":[{"issue_id":"bd-fa1q","depends_on_id":"bd-oxgi","type":"blocks","created_at":"2025-12-28T19:11:52.428038-08:00","created_by":"daemon"},{"issue_id":"bd-fa1q","depends_on_id":"bd-nkqx","type":"blocks","created_at":"2025-12-28T19:11:52.446532-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-fber","title":"Work on gt-8tmz.31: Formula validation specification. Wri...","description":"Work on gt-8tmz.31: Formula validation specification. Write docs/formula-validation.md specifying all validation rules for formulas. When done: 1) bd close gt-8tmz.31, 2) bd sync, 3) git push, 4) gt mq submit","status":"closed","priority":2,"issue_type":"task","assignee":"beads/slit","created_at":"2025-12-25T19:26:36.741916-08:00","updated_at":"2025-12-25T19:32:10.788141-08:00","closed_at":"2025-12-25T19:32:10.788141-08:00","close_reason":"Completed: wrote docs/formula-validation.md with full specification of parse-time, cook-time, and instantiation-time validation rules"}
|
||||
{"id":"bd-fbl9","title":"Test parent task","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-27T23:26:53.012747-08:00","created_by":"beads/crew/emma","updated_at":"2025-12-27T23:27:40.44858-08:00","closed_at":"2025-12-27T23:27:40.44858-08:00","close_reason":"Test issues, cleanup"}
|
||||
{"id":"bd-fcl1","title":"Merge: bd-au0.5","description":"branch: polecat/Searcher\ntarget: main\nsource_issue: bd-au0.5\nrig: beads","status":"closed","priority":1,"issue_type":"merge-request","created_at":"2025-12-23T13:39:11.946667-08:00","updated_at":"2025-12-23T19:12:08.346454-08:00","closed_at":"2025-12-23T19:12:08.346454-08:00","close_reason":"Stale merge-requests from orphaned polecat branches - refinery not processing"}
|
||||
@@ -498,7 +501,9 @@
|
||||
{"id":"bd-ndye","title":"mergeDependencies uses union instead of 3-way merge","description":"## Critical Bug\n\nThe `mergeDependencies` function in internal/merge/merge.go performs a UNION of left and right dependencies instead of a proper 3-way merge. This causes removed dependencies to be resurrected.\n\n### Root Cause\n\n```go\n// Current code (lines 795-816):\nfunc mergeDependencies(left, right []Dependency) []Dependency {\n // Just unions left + right\n // NEVER REMOVES anything\n // Doesn't even look at base!\n}\n```\n\nAnd `mergeIssue` (line 579) doesn't pass `base`:\n```go\nresult.Dependencies = mergeDependencies(left.Dependencies, right.Dependencies)\n```\n\n### Impact\n\nIf:\n- Base has dependency D\n- Left removes D (intentional)\n- Right still has D (stale)\n\nCurrent: D is in result (resurrection!)\nCorrect: Left removed it, D should NOT be in result\n\nThis breaks Gas Town's workflow and data integrity. Closed means closed.\n\n### Fix\n\nChange `mergeDependencies` to take `base` and do proper 3-way merge:\n- If dep was in base and removed by left → exclude (left wins)\n- If dep was in base and removed by right → exclude (right wins)\n- If dep wasn't in base and added by either → include\n- If dep was in base and both still have it → include\n\nKey principle: **REMOVALS ARE AUTHORITATIVE**\n\n### Files to Change\n\n1. internal/merge/merge.go:\n - `mergeDependencies(left, right)` → `mergeDependencies(base, left, right)`\n - `mergeIssue` line 579: pass `base.Dependencies`\n\n### Related\n\nThis also explains why `ProtectLocalExportIDs` in importer is defined but never used - the protection was never actually implemented.","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-18T23:15:54.475872-08:00","updated_at":"2025-12-18T23:21:10.709571-08:00","closed_at":"2025-12-18T23:21:10.709571-08:00"}
|
||||
{"id":"bd-nim5","title":"Detect/prevent child→parent dependency anti-pattern","description":"## Problem\n\nWhen filing issues with dependencies, it's easy to fall into the \"temporal trap\":\n- Thinking \"Phase 1 comes before Phase 2\"\n- Writing `bd dep add phase1 phase2`\n- But that means \"phase1 depends on phase2\" (backwards!)\n\nA specific variant: children depending on their parent epic. This is ALWAYS wrong because:\n1. Parent-child relationship already captures the dependency (parent closes when children done)\n2. Child→parent dep creates a block: child can't start because parent is \"open\"\n3. Parent can't close because children aren't done\n4. Deadlock\n\n## Solution\n\n### 1. Prevent at creation (`bd dep add`)\n\nWhen user runs `bd dep add X Y`:\n- Check if X is a child of Y (X.id starts with Y.id + \".\")\n- If so, error: \"Cannot add dependency: X is already a child of Y. Children inherit dependency on parent completion via hierarchy.\"\n\n### 2. Detect in `bd doctor`\n\nAdd a check that finds all cases where:\n- Issue A depends on Issue B\n- A.id matches pattern B.id + \".*\" (A is child of B)\n\nReport as: \"Child→parent dependency detected (anti-pattern)\"\nOffer repair: \"Remove N backwards dependencies? [y/N]\"\n\n## Implementation\n\n- `dep_add.go`: Add parent-child check before adding dependency\n- `doctor.go`: Add backwards-dep detection to health checks\n","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-12-24T12:51:15.788796-08:00","updated_at":"2025-12-24T13:02:44.079093-08:00","closed_at":"2025-12-24T13:02:44.079093-08:00","close_reason":"Implemented child→parent dependency detection and prevention"}
|
||||
{"id":"bd-njrm","title":"Work on gt-8tmz.34: Expansion var overrides not implement...","description":"Work on gt-8tmz.34: Expansion var overrides not implemented. The ExpandRule.Vars field exists in internal/formula/types.go but is ignored during expansion in internal/formula/expand.go. Implement: 1) Pass rule.Vars to expandStep in ApplyExpansions, 2) Merge vars with formula defaults (rule.Vars wins), 3) Substitute vars in template placeholders, 4) Add test in expand_test.go. When done, commit and push to main.","status":"closed","priority":2,"issue_type":"task","assignee":"beads/nux","created_at":"2025-12-25T20:01:13.586558-08:00","updated_at":"2025-12-25T20:06:11.099142-08:00","closed_at":"2025-12-25T20:06:11.099142-08:00","close_reason":"Implemented expansion var overrides in internal/formula/expand.go"}
|
||||
{"id":"bd-nkqx","title":"bd swarm validate command","description":"Add bd swarm validate to check epic structure for swarming.\n\n## Context\nBefore running a swarm, we need to validate the epic structure:\n- Are dependencies correct (not inverted)?\n- Are there orphaned issues?\n- Is the DAG well-formed?\n\nThe Ready Front model (not phases!) means dependencies define execution order.\nCommon mistake: 'Phase 1 before Phase 2' → inverted deps.\nCorrect thinking: 'Phase 2 needs Phase 1' → bd dep add phase2 phase1\n\n## Implementation\n1. New command: bd swarm validate \u003cepic-id\u003e\n2. Walk the dependency DAG from epic children\n3. Detect issues:\n - Root issues with no dependents (orphans?)\n - Leaf issues depending on nothing (missing deps?)\n - Cycles (impossible)\n - Disconnected subgraphs\n4. Report:\n - Ready fronts (waves of parallel work)\n - Estimated worker-sessions\n - Max parallelism\n - Warnings for potential issues\n\n## Reference\n~/gt/docs/swarm-architecture.md - 'The Ready Front Model' section\n\n## Acceptance\n- bd swarm validate \u003cepic\u003e runs\n- Reports ready fronts accurately\n- Warns about structural issues\n- Returns success/failure exit code","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-28T19:11:08.788203-08:00","created_by":"mayor","updated_at":"2025-12-28T19:34:57.218009-08:00","closed_at":"2025-12-28T19:34:57.218009-08:00","close_reason":"Implemented bd swarm validate command with ready front analysis, structural issue detection, and swarmability check"}
|
||||
{"id":"bd-nl2","title":"No logging/debugging for tombstone resurrection events","description":"Per the design document bd-zvg Open Question 1: Should resurrection log a warning? Recommendation was Yes. Currently, when an expired tombstone loses to a live issue (resurrection), there is no logging or debugging output. This makes it hard to understand why an issue reappeared. Recommendation: Add optional debug logging when resurrection occurs, e.g., Issue bd-abc resurrected (tombstone expired). Files: internal/merge/merge.go:359-366, 371-378, 400-405, 410-415","status":"open","priority":4,"issue_type":"feature","created_at":"2025-12-05T16:36:52.27525-08:00","updated_at":"2025-12-05T16:36:52.27525-08:00"}
|
||||
{"id":"bd-nlzv","title":"bd show --short flag for compact output","description":"## Request\nAdd a `--short` flag to `bd show` for compact, one-line output per issue.\n\n## Use Case\nWhen checking multiple issues quickly:\n```bash\nbd show bd-nkqx --short \u0026\u0026 bd show bd-oxgi --short\n```\n\nCurrently fails with \"unknown flag: --short\"\n\n## Expected Output\nSomething like:\n```\nbd-nkqx [closed] P1 task: Validate swarm schema design\nbd-oxgi [closed] P1 task: Add mol_type schema field to beads\n```\n\n## Format Suggestion\n`\u003cid\u003e [\u003cstatus\u003e] \u003cpriority\u003e \u003ctype\u003e: \u003ctitle\u003e`\n\nOptional: include blocker count if any, e.g. `(blocked by 2)`","status":"open","priority":2,"issue_type":"feature","created_at":"2025-12-28T21:26:18.955592-08:00","created_by":"mayor","updated_at":"2025-12-28T21:26:18.955592-08:00"}
|
||||
{"id":"bd-nmch","title":"Add EntityRef type for structured entity references","description":"Create EntityRef struct with Name, Platform, Org, ID fields. This is the foundation for HOP entity tracking. Can render as entity://hop/\u003cplatform\u003e/\u003corg\u003e/\u003cid\u003e when needed. Add to internal/types/types.go.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-22T17:53:25.104328-08:00","updated_at":"2025-12-22T17:58:00.014103-08:00","closed_at":"2025-12-22T17:58:00.014103-08:00","close_reason":"Implemented EntityRef type with Name, Platform, Org, ID fields. Added URI(), IsEmpty(), String() methods and ParseEntityURI() function. Full test coverage.","dependencies":[{"issue_id":"bd-nmch","depends_on_id":"bd-7pwh","type":"parent-child","created_at":"2025-12-22T17:53:43.325405-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-nppb","title":"Refinery Patrol","description":"Merge queue processor patrol loop with verification gates.","status":"tombstone","priority":2,"issue_type":"molecule","created_at":"2025-12-26T13:08:21.308272-08:00","updated_at":"2025-12-27T00:10:54.177947-08:00","deleted_at":"2025-12-27T00:10:54.177947-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"molecule"}
|
||||
{"id":"bd-nqyp","title":"mol-beads-release","description":"Release checklist for beads version {{version}}.\n\nThis molecule ensures all release steps are completed properly.\nVariable: {{version}} - target version (e.g., 0.35.0)\n\n## Step: update-release-notes\nUpdate cmd/bd/info.go with release notes for {{version}}.\n\nAdd a new VersionChange entry at the top of versionChanges slice:\n```go\n{\n Version: \"{{version}}\",\n Date: \"YYYY-MM-DD\",\n Changes: []string{\n \"NEW: Feature description\",\n \"FIX: Bug fix description\",\n \"IMPROVED: Enhancement description\",\n },\n},\n```\n\nRun `git log --oneline v\u003cprevious\u003e..HEAD` to see what changed.\n\n## Step: update-changelog\nUpdate CHANGELOG.md with detailed release notes.\n\nAdd a new section after [Unreleased]:\n```markdown\n## [{{version}}] - YYYY-MM-DD\n\n### Added\n- **Feature name** (issue-id) - Description\n\n### Changed\n- **Change description** (issue-id)\n\n### Fixed\n- **Bug fix** (issue-id) - Description\n```\n\nSort by importance, not chronologically.\nNeeds: update-release-notes\n\n## Step: bump-version\nRun the version bump script.\n\n```bash\n./scripts/bump-version.sh {{version}}\n```\n\nThis updates version in all files:\n- cmd/bd/version.go\n- .claude-plugin/*.json\n- integrations/beads-mcp/pyproject.toml\n- npm-package/package.json\n- Hook templates\n\nNeeds: update-changelog\n\n## Step: run-tests\nRun tests and verify lint passes.\n\n```bash\ngo test -short ./...\n```\n\nCI will run full lint, but fix any obvious issues first.\nNeeds: bump-version\n\n## Step: commit-release\nCommit the release changes.\n\n```bash\ngit add -A\ngit commit -m \"chore: bump version to v{{version}}\"\n```\n\nNeeds: run-tests\n\n## Step: push-and-tag\nPush commit and create release tag.\n\n```bash\ngit push origin main\ngit tag v{{version}}\ngit push origin v{{version}}\n```\n\nThis triggers GitHub Actions release workflow.\nNeeds: commit-release\n\n## Step: wait-for-ci\nWait for GitHub Actions to complete.\n\nMonitor: https://github.com/steveyegge/beads/actions\n\nCI will:\n- Build binaries via GoReleaser\n- Create GitHub Release with assets\n- Publish to npm (@beads/bd)\n- Publish to PyPI (beads-mcp)\n- Update Homebrew tap\n\nWait until all jobs succeed (~5-10 min).\nNeeds: push-and-tag\n\n## Step: verify-release\nVerify the release is complete.\n\n```bash\n# Check GitHub release\ngh release view v{{version}}\n\n# Check Homebrew\nbrew update \u0026\u0026 brew info steveyegge/beads/bd\n\n# Check npm\nnpm view @beads/bd version\n\n# Check PyPI\npip index versions beads-mcp\n```\n\nNeeds: wait-for-ci\n\n## Step: update-local\nUpdate local installations with proper codesigning (macOS).\n\n```bash\n# Build from source in mayor/rig (canonical build location)\ncd ~/gt/beads/mayor/rig\ngit pull\ngo build -o bd ./cmd/bd\n\n# Sign and install (macOS requires codesigning to avoid \"Killed: 9\")\n# Uses fix-gt script which handles both gt and bd binaries\nfix-gt\n\n# Or manually sign if fix-gt not available:\n# xattr -cr bd \u0026\u0026 codesign -f -s - bd\n# cp bd ~/go/bin/bd \u0026\u0026 codesign -f -s - ~/go/bin/bd\n# cp bd ~/.local/bin/bd \u0026\u0026 codesign -f -s - ~/.local/bin/bd\n\n# Install MCP locally\npip install -e integrations/beads-mcp\n\n# Restart daemons\npkill -f \"bd daemon\" || true\n```\n\nVerify: `bd --version` shows {{version}}\nNeeds: verify-release\n\n## Step: manual-publish\n(Optional) Manual publish if CI failed.\n\n```bash\n# npm (requires npm login)\n./scripts/bump-version.sh {{version}} --publish-npm\n\n# PyPI (requires TWINE credentials)\n./scripts/bump-version.sh {{version}} --publish-pypi\n\n# Or both\n./scripts/bump-version.sh {{version}} --publish-all\n```\n\nOnly needed if CI publishing failed.\nNeeds: wait-for-ci","status":"tombstone","priority":2,"issue_type":"molecule","created_at":"2025-12-23T11:29:39.087936-08:00","updated_at":"2025-12-28T01:26:51.06645-08:00","labels":["template"],"deleted_at":"2025-12-28T01:26:51.06645-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"molecule"}
|
||||
@@ -517,12 +522,14 @@
|
||||
{"id":"bd-ohil","title":"refinery Handoff","status":"pinned","priority":2,"issue_type":"task","created_at":"2025-12-23T04:35:07.488226-08:00","updated_at":"2025-12-24T17:38:31.483362-08:00"}
|
||||
{"id":"bd-ola6","title":"Implement transaction retry logic for SQLITE_BUSY","description":"BEGIN IMMEDIATE fails immediately on SQLITE_BUSY instead of retrying with exponential backoff.\n\nLocation: internal/storage/sqlite/sqlite.go:223-225\n\nProblem:\n- Under concurrent write load, BEGIN IMMEDIATE can fail with SQLITE_BUSY\n- Current implementation fails immediately instead of retrying\n- Results in spurious failures under normal concurrent usage\n\nSolution: Implement exponential backoff retry:\n- Retry up to N times (e.g., 5)\n- Backoff: 10ms, 20ms, 40ms, 80ms, 160ms\n- Check for context cancellation between retries\n- Only retry on SQLITE_BUSY/database locked errors\n\nImpact: Spurious failures under concurrent write load\n\nEffort: 3 hours","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-11-16T14:51:31.247147-08:00","updated_at":"2025-12-21T21:39:23.071036-08:00","closed_at":"2025-12-21T21:39:23.071036-08:00","close_reason":"Already implemented: beginImmediateWithRetry in util.go provides exponential backoff (5 retries, 10ms→160ms) for SQLITE_BUSY errors, used by RunInTransaction. Tests in util_test.go verify behavior."}
|
||||
{"id":"bd-om4a","title":"Support external: prefix in blocked_by field","description":"Allow blocked_by to include external project references:\n\n```bash\nbd update gt-xyz --blocked-by=\"external:beads:mol-run-assignee\"\n```\n\nSyntax: `external:\u003cproject\u003e:\u003ccapability\u003e`\n- project: name from external_projects config\n- capability: matches provides:\u003ccapability\u003e label in target project\n\nStorage: Store as-is in blocked_by array. Resolution happens at query time.\n\nPart of cross-project dependency system.\nSee: gastown/docs/cross-project-deps.md","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-12-21T22:37:29.725196-08:00","updated_at":"2025-12-21T23:07:48.127045-08:00","closed_at":"2025-12-21T23:07:48.127045-08:00","close_reason":"Implemented: bd dep add accepts external:project:capability syntax, stores as-is, shows in blocked output, updates blocked cache"}
|
||||
{"id":"bd-omrf","title":"Merge: oast-1766978911452","description":"branch: polecat/Toast-1766978911452\ntarget: main\nsource_issue: oast-1766978911452\nrig: beads","status":"open","priority":2,"issue_type":"merge-request","created_at":"2025-12-28T19:51:11.183702-08:00","created_by":"beads/polecats/Toast","updated_at":"2025-12-28T19:51:11.183702-08:00"}
|
||||
{"id":"bd-ork0","title":"Add comments to 30+ silently ignored errors or fix them","description":"Code health review found 30+ instances of error suppression using blank identifier without explanation:\n\nGood examples (with comments):\n- merge.go: _ = gitRmCmd.Run() // Ignore errors\n- daemon_watcher.go: _ = watcher.Add(...) // Ignore error\n\nBad examples (no context):\n- create.go:213: dbPrefix, _ = store.GetConfig(ctx, \"issue_prefix\")\n- daemon_sync_branch.go: _ = daemonClient.Close()\n- migrate_hash_ids.go, version_tracking.go: _ = store.Close()\n\nFix: Add comments explaining WHY errors are ignored, or handle them properly.","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-16T18:17:25.899372-08:00","updated_at":"2025-12-22T21:28:32.898258-08:00","closed_at":"2025-12-22T21:28:32.898258-08:00","close_reason":"Added explanatory comments to 24 production file locations with ignored errors. Categories: Cobra flags (only fail if missing), best-effort cleanup/close operations, process signaling."}
|
||||
{"id":"bd-oryk","title":"Fix update-homebrew.sh awk script corrupts formula","description":"The awk script in scripts/update-homebrew.sh incorrectly removes platform conditionals (on_macos do, on_linux do, if Hardware::CPU.arm?, etc.) when updating SHA256 hashes. This corrupts the Homebrew formula.\n\nThe issue is the awk script uses 'next' to skip lines containing platform conditionals but never reconstructs them, resulting in a syntax-invalid formula.\n\nFound during v0.34.0 release - had to manually fix the formula.\n\nFix options:\n1. Rewrite awk script to properly preserve structure while updating sha256 lines only\n2. Use sed instead with targeted sha256 replacements\n3. Template approach - store formula template and fill in version/hashes","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-22T12:17:17.748792-08:00","updated_at":"2025-12-22T13:13:31.947353-08:00","closed_at":"2025-12-22T13:13:31.947353-08:00","close_reason":"Fixed awk script - removed 'next' statements that skipped structural lines, now uses sub() to replace sha256 values in-place"}
|
||||
{"id":"bd-ot0w","title":"Work on beads-tip: Fix broken Claude integration link in ...","description":"Work on beads-tip: Fix broken Claude integration link in bd doctor (GH#623). Update URL that doesn't exist. When done, submit MR (not PR) to integration branch for Refinery.","status":"closed","priority":2,"issue_type":"task","assignee":"beads/dementus","created_at":"2025-12-19T22:56:08.429157-08:00","updated_at":"2025-12-19T23:20:39.790305-08:00","closed_at":"2025-12-19T23:20:39.790305-08:00","close_reason":"Fixed broken Claude plugin URL in bd doctor"}
|
||||
{"id":"bd-otf4","title":"Code Review: PR #481 - Context Engineering Optimizations","description":"Comprehensive code review of the merged context engineering PR (PR #481) that reduces MCP context usage by 80-90%.\n\n## Summary\nThe PR successfully implements lazy tool schema loading and minimal issue models to reduce context window usage. Overall implementation is solid and well-tested.\n\n## Positive Findings\n✅ Well-designed models (IssueMinimal, CompactedResult)\n✅ Comprehensive test coverage (28 tests, all passing)\n✅ Clear documentation and comments\n✅ Backward compatibility preserved (show() still returns full Issue)\n✅ Sensible defaults (COMPACTION_THRESHOLD=20, PREVIEW_COUNT=5)\n✅ Tool catalog complete with all 15 tools documented\n\n## Issues Identified\nSee linked issues for specific followup tasks.\n\n## Context Engineering Architecture\n- discover_tools(): List tool names only (~500 bytes vs ~15KB)\n- get_tool_info(name): Get specific tool details on-demand\n- IssueMinimal: Lightweight model for list views (~80 bytes vs ~400 bytes)\n- CompactedResult: Auto-compacts results with \u003e20 issues\n- _to_minimal(): Conversion function (efficient, no N+1 issues)","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-14T14:24:13.523532-08:00","updated_at":"2025-12-14T14:24:13.523532-08:00"}
|
||||
{"id":"bd-otli","title":"Wait for CI to pass","description":"Monitor GitHub Actions - all checks must pass before release artifacts are built","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-19T22:56:03.022281-08:00","updated_at":"2025-12-20T00:49:51.928591-08:00","closed_at":"2025-12-20T00:25:52.635223-08:00","dependencies":[{"issue_id":"bd-otli","depends_on_id":"bd-6s61","type":"parent-child","created_at":"2025-12-19T22:56:15.097564-08:00","created_by":"daemon"},{"issue_id":"bd-otli","depends_on_id":"bd-7tuu","type":"blocks","created_at":"2025-12-19T22:56:23.360436-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-ox1o","title":"Code Review Round 2: Beads Refactoring","description":"Second pass code review of Beads codebase. Found 10 HIGH/MEDIUM priority issues.\n\n**HIGH (P2):**\n- bd-6dnt: Duplicated IssueDetails struct (4 definitions)\n- bd-vqh9: init.go is 1928 lines\n- bd-it19: show.go is 1592 lines\n\n**MEDIUM (P3):**\n- bd-qobn: 20+ global variables in main.go\n- bd-0e02: Inconsistent error handling patterns\n- bd-g6m5: Mixed daemon/direct mode logic\n- bd-qe7j: Incomplete TODOs in formula/types.go\n- bd-4sxh: Issue struct ~100 fields\n- bd-yuxq: 262 uses of interface{}\n- bd-jbqx: Repeated validation patterns","status":"open","priority":2,"issue_type":"epic","created_at":"2025-12-28T19:00:15.483532-08:00","created_by":"beads/crew/dave","updated_at":"2025-12-28T19:00:15.483532-08:00"}
|
||||
{"id":"bd-oxgi","title":"Add mol_type schema field to beads","description":"Add mol_type field to distinguish molecule types (swarm/patrol/work).\n\n## Context\nSwarms need to be distinguishable from regular work molecules. The mol_type field enables:\n- Filtering: bd list --type=swarm \n- Queries: Find all active swarm molecules\n- Coordinator logic: Different handling for different mol types\n\n## Implementation\n1. Add mol_type column to SQLite schema (nullable, default null = work)\n2. Add mol_type to JSONL format\n3. Update create command to accept --mol-type\n4. Update list/ready commands to filter by mol_type\n5. Values: 'swarm', 'patrol', 'work', null (null = work)\n\n## Reference\n~/gt/docs/swarm-architecture.md - 'Data Model' section\n\n## Acceptance\n- bd create --mol-type=swarm works\n- bd list --mol-type=swarm filters correctly\n- Existing molecules work unchanged (backward compatible)","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-28T19:11:07.616818-08:00","created_by":"mayor","updated_at":"2025-12-28T19:50:33.213538-08:00","closed_at":"2025-12-28T19:50:33.213538-08:00","close_reason":"Implemented mol_type schema field for molecule type classification (swarm/patrol/work)"}
|
||||
{"id":"bd-p5za","title":"mol-christmas-launch: 3-day execution plan","description":"Christmas Launch Molecule - execute phases in order, survive restarts.\n\nPIN THIS BEAD. Check progress each session start.\n\n## Step: phase0-beads-foundation\nFix blocking issues before swarming:\n1. Verify gastown beads schema works: bd list --status=open\n2. Ensure bd mol bond exists (check bd-usro)\n3. Verify bd-2vh3 (squash) is filed\n\n## Step: phase1-polecat-loop\nSerial work on polecat execution:\n1. gt-9nf: Fresh polecats only\n2. gt-975: Molecule execution support\n3. gt-8v8: Refuse uncommitted work\nThen swarm: gt-e1y, gt-f8v, gt-eu9\nNeeds: phase0-beads-foundation\n\n## Step: phase2-refinery\nSerial work on refinery autonomy:\n1. gt-5gkd: Refinery CLAUDE.md\n2. gt-bj6f: Refinery context in gt prime\n3. gt-0qki: Refinery-Witness protocol\nNeeds: phase1-polecat-loop\n\n## Step: phase3-deacon\nHealth monitoring infrastructure:\n1. gt-5af.4: Simplify daemon\n2. gt-5af.7: Crew session patterns\n3. gt-976: Crew lifecycle\nNeeds: phase2-refinery\n\n## Step: phase4-code-review\nSelf-improvement flywheel:\n1. Define mol-code-review (gt-fjvo)\n2. Test on open MRs\n3. Integrate with Refinery\nNeeds: phase3-deacon\n\n## Step: phase5-polish\nDemo readiness:\n1. gt-b2hj: Find orphaned work\n2. Doctor checks\n3. Clean up open MRs\nNeeds: phase4-code-review\n\n## Step: verify-flywheel\nSuccess criteria:\n- gt spawn works with molecules\n- Refinery processes MRs autonomously\n- mol-code-review runs on a PR\n- bd cleanup --ephemeral works\nNeeds: phase5-polish","status":"closed","priority":0,"issue_type":"epic","created_at":"2025-12-20T21:20:02.462889-08:00","updated_at":"2025-12-21T17:23:25.471749-08:00","closed_at":"2025-12-21T17:23:25.471749-08:00","close_reason":"Beads portion complete (phase0-beads-foundation done). Gastown tracks remainder."}
|
||||
{"id":"bd-pbh","title":"Release v0.30.4","description":"## Version Bump Workflow\n\nCoordinating release from 0.30.3 to 0.30.4.\n\n### Components Updated\n- Go CLI (cmd/bd/version.go)\n- Claude Plugin (.claude-plugin/*.json)\n- MCP Server (integrations/beads-mcp/)\n- npm Package (npm-package/package.json)\n- Git hooks (cmd/bd/templates/hooks/)\n\n### Release Channels\n- GitHub Releases (GoReleaser)\n- PyPI (beads-mcp)\n- npm (@beads/cli)\n- Homebrew (homebrew-beads tap)\n","status":"tombstone","priority":1,"issue_type":"epic","created_at":"2025-12-17T21:19:10.926133-08:00","updated_at":"2025-12-25T01:21:01.952723-08:00","labels":["release","v0.30.4","workflow"],"deleted_at":"2025-12-25T01:21:01.952723-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"epic"}
|
||||
{"id":"bd-pbh.1","title":"Update cmd/bd/version.go to 0.30.4","description":"Update the Version constant in cmd/bd/version.go:\n```go\nVersion = \"0.30.4\"\n```\n\n\n```verify\ngrep -q 'Version = \"0.30.4\"' cmd/bd/version.go\n```","status":"tombstone","priority":1,"issue_type":"task","created_at":"2025-12-17T21:19:10.9462-08:00","updated_at":"2025-12-25T01:21:01.952723-08:00","labels":["workflow"],"dependencies":[{"issue_id":"bd-pbh.1","depends_on_id":"bd-pbh","type":"parent-child","created_at":"2025-12-17T21:19:10.946633-08:00","created_by":"daemon","metadata":"{}"}],"deleted_at":"2025-12-25T01:21:01.952723-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"task"}
|
||||
|
||||
Reference in New Issue
Block a user