bd sync: 2025-12-23 03:22:14
This commit is contained in:
@@ -34,6 +34,7 @@
|
||||
{"id":"bd-379","title":"Implement `bd setup cursor` for Cursor IDE integration","description":"Create a `bd setup cursor` command that integrates Beads workflow into Cursor IDE via .cursorrules file. Unlike Claude Code (which has hooks), Cursor uses a static rules file to provide context to its AI.","status":"open","priority":3,"issue_type":"feature","created_at":"2025-11-11T23:32:22.170083-08:00","updated_at":"2025-11-11T23:32:22.170083-08:00"}
|
||||
{"id":"bd-3852","title":"Add orphan detection migration","description":"Create migration to detect orphaned children in existing databases. Query: SELECT id FROM issues WHERE id LIKE '%.%' AND substr(id, 1, instr(id || '.', '.') - 1) NOT IN (SELECT id FROM issues). Log results, let user decide action (delete orphans or convert to top-level).","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-04T12:32:30.727044-08:00","updated_at":"2025-12-21T21:00:05.041582-08:00","closed_at":"2025-12-21T21:00:05.041582-08:00","close_reason":"Already implemented in migration 016_orphan_detection.go - detects orphans and logs for user action"}
|
||||
{"id":"bd-396j","title":"GetBlockedIssues shows external deps as blocking even when satisfied","description":"GetBlockedIssues (ready.go:385-493) shows external:* refs in the blocked_by list but doesn't check if they're actually satisfied using CheckExternalDep.\n\nThis can be confusing - an issue shows as blocked by external:project:capability even if that capability has been shipped (closed issue with provides: label exists).\n\nOptions:\n1. Call CheckExternalDep for each external ref and filter satisfied ones from blocked_by\n2. Add a note in output indicating external deps need lazy resolution\n3. Document this is expected behavior (bd blocked shows all deps, bd ready shows resolved state)\n\nRelated: GetReadyWork correctly filters by external deps, but GetBlockedIssues doesn't.","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-21T23:45:05.286304-08:00","updated_at":"2025-12-22T21:48:38.086451-08:00","closed_at":"2025-12-22T21:48:38.086451-08:00","close_reason":"Implemented filterBlockedByExternalDeps to check external deps satisfaction and filter them from BlockedBy lists","dependencies":[{"issue_id":"bd-396j","depends_on_id":"bd-zmmy","type":"discovered-from","created_at":"2025-12-21T23:45:05.286971-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-3bsz","title":"gt mail send: support reading message body from stdin","description":"Currently gt mail send -m requires the message as a command-line argument, which causes shell escaping issues with backticks, quotes, and special characters.\n\nAdd support for reading message body from stdin:\n- gt mail send addr -s 'Subject' --stdin # Read body from stdin\n- echo 'body' | gt mail send addr -s 'Subject' -m - # Convention: -m - means stdin\n\nThis would allow:\ncat \u003c\u003c'EOF' | gt mail send addr -s 'Subject' --stdin\nMessage with `backticks` and 'quotes' safely\nEOF\n\nWithout this, agents struggle to send handoff messages containing code snippets.","status":"open","priority":2,"issue_type":"feature","created_at":"2025-12-23T03:21:39.496208-08:00","updated_at":"2025-12-23T03:21:39.496208-08:00"}
|
||||
{"id":"bd-3ggb","title":"Rebuild local binary","description":"Build and verify: go build -o bd ./cmd/bd \u0026\u0026 ./bd version","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-18T22:43:03.101428-08:00","updated_at":"2025-12-18T22:46:40.955673-08:00","closed_at":"2025-12-18T22:46:40.955673-08:00","dependencies":[{"issue_id":"bd-3ggb","depends_on_id":"bd-qqc","type":"parent-child","created_at":"2025-12-18T22:43:16.748289-08:00","created_by":"daemon"},{"issue_id":"bd-3ggb","depends_on_id":"bd-4y4g","type":"blocks","created_at":"2025-12-18T22:43:20.950376-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-3sz0","title":"Auto-repair stale merge driver configs with invalid placeholders","description":"Old bd versions (\u003c0.24.0) installed merge driver with invalid placeholders %L %R instead of %A %B. Add detection to bd doctor --fix: check if git config merge.beads.driver contains %L or %R, auto-repair to 'bd merge %A %O %A %B'. One-time migration for users who initialized with old versions.","status":"open","priority":2,"issue_type":"feature","created_at":"2025-11-21T23:16:10.762808-08:00","updated_at":"2025-11-21T23:16:28.892655-08:00","dependencies":[{"issue_id":"bd-3sz0","depends_on_id":"bd-tbz3","type":"parent-child","created_at":"2025-11-21T23:16:10.763612-08:00","created_by":"daemon","metadata":"{}"}]}
|
||||
{"id":"bd-3uje","title":"Test issue for pin --for","description":"Testing the pin --for flag","status":"tombstone","priority":3,"issue_type":"task","assignee":"test-agent","created_at":"2025-12-22T02:53:43.075522-08:00","updated_at":"2025-12-22T02:54:07.973855-08:00","deleted_at":"2025-12-22T02:54:07.973855-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
|
||||
@@ -442,7 +443,7 @@
|
||||
{"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-xj2e","title":"GH#522: Add --type flag to bd update command","description":"Add --type flag to bd update for changing issue type (task/epic/bug/feature). Storage layer already supports it. See GitHub issue #522.","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-16T01:03:12.506583-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":"task"}
|
||||
{"id":"bd-xo1o","title":"Dynamic Molecule Bonding: Fanout patterns for patrol molecules","description":"## Vision\n\nEnable molecules to dynamically spawn child molecules at runtime based on discovered\nwork. This is the foundation for the \"Christmas Ornament\" pattern where a patrol\nmolecule grows arms per-polecat.\n\n## The Activity Feed Vision\n\nInstead of parsing agent logs, users see structured work state:\n\n```\n[14:32:08] + patrol-x7k.arm-ace bonded (5 steps)\n[14:32:08] + patrol-x7k.arm-nux bonded (5 steps)\n[14:32:09] → patrol-x7k.arm-ace.capture in_progress\n[14:32:10] ✓ patrol-x7k.arm-ace.capture completed\n[14:32:14] ✓ patrol-x7k.arm-ace.decide completed (action: nudge-1)\n```\n\nThis requires beads to track molecule step state transitions in real-time.\n\n## Key Primitives Needed\n\n### 1. Dynamic Bond with Variables\n```bash\nbd mol bond mol-polecat-arm \u003cparent-wisp-id\u003e \\\n --var polecat_name=ace \\\n --var rig=gastown\n```\n\nCreates wisp children under the parent:\n- parent-id.arm-ace\n- parent-id.arm-ace.capture\n- parent-id.arm-ace.assess\n- etc.\n\n### 2. WaitsFor Directive\n```markdown\n## Step: aggregate\nCollect outcomes from all dynamically-bonded children.\nWaitsFor: all-children\nNeeds: survey-workers\n```\n\nThe `WaitsFor: all-children` directive makes this a fanout gate - it can't\nproceed until ALL dynamically-bonded children complete.\n\n### 3. Activity Feed Query\n```bash\nbd activity --follow # Real-time state stream\nbd activity --mol \u003cid\u003e # Activity for specific molecule\nbd activity --since 5m # Last 5 minutes\n```\n\n### 4. Parallel Step Detection\nSteps with no inter-dependencies should be flagged as parallelizable.\nWhen arms are bonded, their steps can run in parallel across arms.\n\n## Use Case: mol-witness-patrol\n\nThe Witness monitors N polecats where N varies at runtime:\n\n```\nsurvey-workers discovers: [ace, nux, toast]\nFor each polecat:\n bd mol bond mol-polecat-arm \u003cpatrol-id\u003e --var polecat_name=\u003cname\u003e\naggregate step waits for all arms to complete\n```\n\nThis creates the Christmas Ornament shape:\n- Trunk: preflight steps\n- Arms: per-polecat inspection molecules\n- Base: cleanup after all arms complete\n\n## Design Docs\n\nSee Gas Town docs:\n- docs/molecular-chemistry.md (updated with Christmas Ornament pattern)\n- docs/architecture.md (activity feed section)\n\n## Dependencies\n\nThis epic may depend on:\n- Wisp storage (.beads-wisp/) - already implemented\n- Variable substitution in molecules - may need enhancement","status":"in_progress","priority":1,"issue_type":"epic","created_at":"2025-12-23T02:32:43.173305-08:00","updated_at":"2025-12-23T02:37:17.760387-08:00"}
|
||||
{"id":"bd-xo1o.1","title":"bd mol bond: Dynamic bond with variable substitution","description":"Implement dynamic molecule bonding with runtime variable substitution.\n\n## Command\n```bash\nbd mol bond \u003cproto-id\u003e \u003cparent-wisp-id\u003e --var key=value --var key2=value2\n```\n\n## Behavior\n1. Parse proto molecule template\n2. Substitute {{key}} placeholders with provided values\n3. Create wisp children under the parent molecule\n4. Child IDs follow pattern: parent-id.child-ref (e.g., patrol-x7k.arm-ace)\n5. Nested children: parent-id.child-ref.step-ref (e.g., patrol-x7k.arm-ace.capture)\n\n## Variable Substitution\n- In step titles: \"Inspect {{polecat_name}}\" -\u003e \"Inspect ace\"\n- In descriptions: Full template substitution\n- In Needs directives: Allow referencing parent steps\n\n## Output\n```\n✓ Bonded mol-polecat-arm to patrol-x7k\n Created: patrol-x7k.arm-ace (5 steps)\n```","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-23T02:33:13.878996-08:00","updated_at":"2025-12-23T02:33:13.878996-08:00","dependencies":[{"issue_id":"bd-xo1o.1","depends_on_id":"bd-xo1o","type":"parent-child","created_at":"2025-12-23T02:33:13.879419-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-xo1o.1","title":"bd mol bond: Dynamic bond with variable substitution","description":"Implement dynamic molecule bonding with runtime variable substitution.\n\n## Command\n```bash\nbd mol bond \u003cproto-id\u003e \u003cparent-wisp-id\u003e --var key=value --var key2=value2\n```\n\n## Behavior\n1. Parse proto molecule template\n2. Substitute {{key}} placeholders with provided values\n3. Create wisp children under the parent molecule\n4. Child IDs follow pattern: parent-id.child-ref (e.g., patrol-x7k.arm-ace)\n5. Nested children: parent-id.child-ref.step-ref (e.g., patrol-x7k.arm-ace.capture)\n\n## Variable Substitution\n- In step titles: \"Inspect {{polecat_name}}\" -\u003e \"Inspect ace\"\n- In descriptions: Full template substitution\n- In Needs directives: Allow referencing parent steps\n\n## Output\n```\n✓ Bonded mol-polecat-arm to patrol-x7k\n Created: patrol-x7k.arm-ace (5 steps)\n```","status":"in_progress","priority":1,"issue_type":"task","created_at":"2025-12-23T02:33:13.878996-08:00","updated_at":"2025-12-23T03:20:40.974221-08:00","dependencies":[{"issue_id":"bd-xo1o.1","depends_on_id":"bd-xo1o","type":"parent-child","created_at":"2025-12-23T02:33:13.879419-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-xo1o.2","title":"WaitsFor directive: Fanout gate for dynamic children","description":"Implement WaitsFor directive for molecules that spawn dynamic children.\n\n## Syntax\n```markdown\n## Step: aggregate\nCollect outcomes from all dynamically-bonded children.\nWaitsFor: all-children\nNeeds: survey-workers\n```\n\n## Behavior\n1. Parse WaitsFor directive during molecule step parsing\n2. Track which steps spawn dynamic children (the spawner)\n3. Gate step waits until ALL children of the spawner complete\n4. Works with bd ready - gate step not ready until children done\n\n## Gate Types\n- `WaitsFor: all-children` - Wait for all dynamic children\n- `WaitsFor: any-children` - Proceed when first child completes (future)\n- `WaitsFor: \u003cstep-ref\u003e.children` - Wait for specific spawner's children\n\n## Integration\n- bd ready should skip gate steps until children complete\n- bd show \u003cmol\u003e should display gate status and child count","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-23T02:33:14.946475-08:00","updated_at":"2025-12-23T02:33:14.946475-08:00","dependencies":[{"issue_id":"bd-xo1o.2","depends_on_id":"bd-xo1o","type":"parent-child","created_at":"2025-12-23T02:33:14.950008-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-xo1o.3","title":"bd activity: Real-time molecule state feed","description":"Implement activity feed command for watching molecule state transitions.\n\n## Commands\n```bash\nbd activity --follow # Real-time streaming\nbd activity --mol \u003cid\u003e # Activity for specific molecule\nbd activity --since 5m # Last 5 minutes\nbd activity --type step # Only step transitions\n```\n\n## Output Format\n```\n[14:32:01] ✓ patrol-x7k.inbox-check completed\n[14:32:03] ✓ patrol-x7k.check-refinery completed\n[14:32:08] + patrol-x7k.arm-ace bonded (5 steps)\n[14:32:09] → patrol-x7k.arm-ace.capture in_progress\n[14:32:10] ✓ patrol-x7k.arm-ace.capture completed\n[14:32:14] ✓ patrol-x7k.arm-ace.decide completed (action: nudge-1)\n[14:32:17] ✓ patrol-x7k.arm-ace COMPLETE\n[14:32:23] ✓ patrol-x7k SQUASHED → digest-x7k\n```\n\n## Event Types\n- `+` bonded - New molecule/step created\n- `→` in_progress - Step started\n- `✓` completed - Step/molecule finished\n- `✗` failed - Step failed\n- `⊘` burned - Wisp discarded\n- `◉` squashed - Wisp condensed to digest\n\n## Implementation\n- Could use SQLite triggers or polling\n- --follow uses OS file watching or polling\n- Filter by mol ID, type, time range","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-23T02:33:16.298764-08:00","updated_at":"2025-12-23T03:18:33.434079-08:00","closed_at":"2025-12-23T03:18:33.434079-08:00","close_reason":"Implemented bd activity command with real-time feed, filtering, and new mutation event types","dependencies":[{"issue_id":"bd-xo1o.3","depends_on_id":"bd-xo1o","type":"parent-child","created_at":"2025-12-23T02:33:16.301522-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-xo1o.4","title":"Parallel step detection in molecules","description":"Detect and flag parallelizable steps in molecules.\n\n## Detection Rules\nSteps can run in parallel when:\n1. No Needs dependencies between them\n2. Not in same sequential chain\n3. Across dynamic arms (arm-ace and arm-nux can parallelize)\n\n## Output in bd mol show\n```\npatrol-x7k (mol-witness-patrol)\n├── inbox-check [completed]\n├── survey-workers [completed]\n│ ├── arm-ace [parallel group A]\n│ │ ├── capture [can parallelize]\n│ │ ├── assess [needs: capture]\n│ │ └── execute [needs: assess]\n│ └── arm-nux [parallel group A]\n│ ├── capture [can parallelize]\n│ └── ...\n├── aggregate [gate: waits for all-children]\n```\n\n## Flags\n- `bd mol show \u003cid\u003e --parallel` - Highlight parallel opportunities\n- `bd ready --mol \u003cid\u003e` - List all steps that can run now\n\n## Future: Parallel Execution Hints\nFor agents using Task tool subagents:\n- Identify independent arms that can run simultaneously\n- Suggest parallelization strategy","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-23T02:33:17.660368-08:00","updated_at":"2025-12-23T02:33:17.660368-08:00","dependencies":[{"issue_id":"bd-xo1o.4","depends_on_id":"bd-xo1o","type":"parent-child","created_at":"2025-12-23T02:33:17.662232-08:00","created_by":"daemon"}]}
|
||||
|
||||
Reference in New Issue
Block a user