Commit Graph

3791 Commits

Author SHA1 Message Date
Steve Yegge
1951fae138 bd sync: 2025-12-23 12:42:18 2025-12-23 12:42:33 -08:00
Steve Yegge
f2db0a1d42 fix: exclude external deps from orphan check in migration invariants (bd-ucgz)
External dependencies (external:<project>:<capability>) reference issues in
other projects and are expected to not exist in the local issues table.
The orphan check now excludes these with: AND d.depends_on_id NOT LIKE 'external:%'

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 12:42:13 -08:00
Steve Yegge
77ff8283fe bd sync: 2025-12-23 12:40:03 2025-12-23 12:40:03 -08:00
Steve Yegge
ad7473da0e bd sync: 2025-12-23 12:36:33 2025-12-23 12:36:33 -08:00
Steve Yegge
5f15dc49e3 bd sync: 2025-12-23 12:27:35 2025-12-23 12:27:35 -08:00
Steve Yegge
dc4423bd90 bd sync: 2025-12-23 12:24:43 2025-12-23 12:24:43 -08:00
Steve Yegge
7f2d4af302 bd sync: 2025-12-23 12:24:08 2025-12-23 12:24:08 -08:00
Steve Yegge
ceb8ba01c4 bd sync: 2025-12-23 12:19:49 2025-12-23 12:19:49 -08:00
Steve Yegge
5b56c07310 bd sync: 2025-12-23 12:13:41 2025-12-23 12:13:41 -08:00
Steve Yegge
87f16378bc bd sync: 2025-12-23 12:06:48 2025-12-23 12:07:04 -08:00
Steve Yegge
18d9848ec3 bd sync: 2025-12-23 11:39:18 2025-12-23 12:07:04 -08:00
Steve Yegge
47b86b35d8 feat: add gate issue type and CLI commands for async coordination (bd-udsi)
Add async gates - coordination primitives for agents to wait on external events
like CI completion, PR merges, timers, or human approval.

Changes:
- Add 'gate' issue type to types.go with gate-specific fields:
  - AwaitType: condition type (gh:run, gh:pr, timer, human, mail)
  - AwaitID: condition identifier
  - Timeout: max wait duration
  - Waiters: mail addresses to notify when gate clears
- Add SQLite migration 027_gate_columns for new fields
- Update all SQLite storage queries to handle gate fields
- Add bd gate commands: create, show, list, close, wait
- All commands support --json output and --no-daemon mode

Closes: bd-2v0f, bd-lz49, bd-u66e

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 12:06:42 -08:00
Steve Yegge
cfd412b2d7 feat: add --publish-npm and --publish-pypi flags to bump-version.sh
Adds manual publishing options for releases:
- --publish-npm: Publish @beads/bd to npm registry
- --publish-pypi: Publish beads-mcp to PyPI
- --publish-all: Shorthand for both

Note: CI already handles publishing automatically when tags are pushed.
These flags are for manual releases or when CI publishing fails.
2025-12-23 11:25:35 -08:00
Steve Yegge
117bdd637e fix: add nolint:misspell for SQL query with British spelling 2025-12-23 05:14:01 -08:00
Steve Yegge
8b49d8f079 fix: resolve golangci-lint errors
- Add _ = prefix for ignored Close/Remove return values
- Fix unused cmd parameter in runMoleculeReady
- Add nolint:misspell for intentional British "cancelled" spelling
- Update comments to use US spelling where not intentional

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 05:10:38 -08:00
Steve Yegge
fcf5e6aab6 chore: bump version to v0.35.0
Adds release notes for v0.35.0 including:
- Dynamic molecule bonding with --ref flag
- bd activity command for real-time state feed
- waits-for dependency type for fanout gates
- Parallel step detection for molecules
- bd list --parent flag
- Molecule navigation commands
- Performance indexes and bug fixes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 04:58:19 -08:00
Steve Yegge
379f80d7f7 bd sync: 2025-12-23 04:58:04 2025-12-23 04:58:04 -08:00
Steve Yegge
0c14054a52 bd sync: 2025-12-23 04:49:44 2025-12-23 04:49:44 -08:00
Steve Yegge
90edbc41cc bd sync: 2025-12-23 04:49:14 2025-12-23 04:49:14 -08:00
Steve Yegge
f66f246546 bd sync: 2025-12-23 04:48:32 2025-12-23 04:48:32 -08:00
Steve Yegge
a097886b98 bd sync: 2025-12-23 04:47:20 2025-12-23 04:47:20 -08:00
Steve Yegge
064e9229ed bd sync: 2025-12-23 04:46:23 2025-12-23 04:46:23 -08:00
Steve Yegge
ee1dc988da bd sync: 2025-12-23 04:45:33 2025-12-23 04:45:33 -08:00
Steve Yegge
ee4750f606 bd sync: 2025-12-23 04:45:01 2025-12-23 04:45:01 -08:00
Steve Yegge
5e4a3001d5 bd sync: 2025-12-23 04:44:17 2025-12-23 04:44:17 -08:00
Steve Yegge
cc227dbcc3 bd sync: 2025-12-23 04:43:29 2025-12-23 04:43:29 -08:00
Steve Yegge
b295768435 bd sync: 2025-12-23 04:35:08 2025-12-23 04:35:08 -08:00
Steve Yegge
bea883057e bd sync: 2025-12-23 04:35:03 2025-12-23 04:35:03 -08:00
Steve Yegge
356fda3a32 bd sync: 2025-12-23 04:33:43 2025-12-23 04:33:43 -08:00
Steve Yegge
41aedacd7a bd sync: 2025-12-23 04:20:56 2025-12-23 04:20:56 -08:00
Steve Yegge
0bc421f1af bd sync: 2025-12-23 04:16:32 2025-12-23 04:16:53 -08:00
Steve Yegge
09e5104ee7 bd sync: 2025-12-23 04:01:07 2025-12-23 04:16:53 -08:00
Steve Yegge
90573511e4 bd sync: 2025-12-23 04:00:13 2025-12-23 04:16:53 -08:00
Steve Yegge
da809061db fix: emit rich mutation events for status changes (bd-313v)
- Add emitRichMutation() function for events with metadata
- handleClose now emits MutationStatus with old/new status
- handleUpdate detects status changes and emits MutationStatus
- Add comprehensive tests for rich mutation events

Also:
- Add activity.go test coverage (bd-3jcw):
  - Tests for parseDurationString, filterEvents, formatEvent
  - Tests for all mutation type displays
- Fix silent error handling in --follow mode (bd-csnr):
  - Track consecutive daemon failures
  - Show warning after 5 failures (rate-limited to 30s)
  - Show reconnection message on recovery

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 04:16:26 -08:00
Steve Yegge
3f51ca5454 chore: gitignore .runtime/ (Claude Code runtime) 2025-12-23 04:07:16 -08:00
Steve Yegge
fa9a88e2a3 feat: add waits-for dependency type for fanout gates (bd-xo1o.2)
Adds 'waits-for' dependency type for dynamic molecule bonding:
- DepWaitsFor blocks an issue until spawner's children are closed
- Two gate types: all-children (wait for all) or any-children (first)
- Updated blocked_cache.go CTE to handle waits-for dependencies
- Added --waits-for and --waits-for-gate flags to bd create command
- Added WaitsForMeta struct for gate metadata storage
- Full test coverage for all gate types and dynamic child scenarios

This enables patrol molecules to wait for dynamically-bonded arms to
complete before proceeding (Christmas Ornament pattern).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 04:00:00 -08:00
Steve Yegge
37fd1ce614 feat: add parallel step detection for molecules (bd-xo1o.4)
Add --parallel flag to `bd mol show` that analyzes molecule structure
and identifies which steps can run in parallel. Also add --mol flag to
`bd ready` to list ready steps within a specific molecule.

Features:
- `bd mol show <id> --parallel`: Shows parallel group annotations
- `bd ready --mol <id>`: Lists ready steps with parallel opportunities
- Detects steps at same blocking depth that can parallelize
- Groups steps without mutual blocking deps into parallel groups
- JSON output includes full parallel analysis

Algorithm:
- Build dependency graph from blocking deps (blocks, conditional-blocks)
- Calculate blocking depth (distance from unblocked state)
- Group steps at same depth with no mutual blocking into parallel groups
- Mark steps as ready if open/in_progress with no open blockers

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 03:57:08 -08:00
Steve Yegge
72c1c431ef bd sync: 2025-12-23 03:56:58 2025-12-23 03:56:58 -08:00
Steve Yegge
ce85fd4930 bd sync: 2025-12-23 03:48:52 2025-12-23 03:48:52 -08:00
Steve Yegge
ee04b1ea96 feat: add dynamic molecule bonding with --ref flag (bd-xo1o.1)
Implements the Christmas Ornament pattern for patrol molecules:
- Add CloneOptions struct with ParentID and ChildRef for dynamic bonding
- Add generateBondedID() to create custom IDs like "patrol-x7k.arm-ace"
- Add --ref flag to `bd mol bond` for custom child references
- Variable substitution in childRef (e.g., "arm-{{polecat_name}}")

This enables:
  bd mol bond mol-polecat-arm bd-patrol --ref arm-{{name}} --var name=ace
  # Creates: bd-patrol.arm-ace, bd-patrol.arm-ace.capture, etc.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 03:38:38 -08:00
Steve Yegge
3c86144d26 bd sync: 2025-12-23 03:38:21 2025-12-23 03:38:21 -08:00
Steve Yegge
ac07b2259f bd sync: 2025-12-23 03:22:14 2025-12-23 03:22:25 -08:00
Steve Yegge
be520d90fe feat: add bd activity command for real-time state feed (bd-xo1o.3)
Implements activity feed for watching molecule/issue state changes:
- bd activity: show last 100 events
- bd activity --follow: real-time streaming
- bd activity --mol <id>: filter by molecule prefix
- bd activity --since 5m: time-based filtering
- bd activity --type update: filter by event type

Adds new mutation event types for richer activity display:
- MutationBonded: molecule bonded to parent
- MutationSquashed: wisp squashed to digest
- MutationBurned: wisp discarded
- MutationStatus: status transitions with old/new state

Event symbols: + created, → in_progress, ✓ completed, ⊘ deleted, ◉ squashed

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 03:19:09 -08:00
Steve Yegge
47339f89dd bd sync: 2025-12-23 03:18:57 2025-12-23 03:18:57 -08:00
Steve Yegge
625d5fb374 bd sync: 2025-12-23 02:38:39 2025-12-23 02:39:01 -08:00
Steve Yegge
ff3b8fb8ed docs: draft CHANGELOG for v0.35.0 2025-12-23 02:30:53 -08:00
Ryan
e8d0860571 fix(doctor): use --fix instead of manual commands (#715)
UX improvement: doctor advice now recommends bd doctor --fix instead of manual commands
2025-12-23 02:30:33 -08:00
Steve Yegge
14e1f5a2e0 feat: add --parent flag to bd list command (bd-yqhh)
Filters issues by parent issue ID using parent-child dependencies.

Example: bd list --parent=bd-xyz --status=open

Changes:
- Add ParentID field to IssueFilter type
- Add --parent flag to list command
- Forward parent filter through RPC
- Implement filtering in SQLite and memory storage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 02:10:42 -08:00
Steve Yegge
a3e967b956 bd sync: 2025-12-23 02:10:31 2025-12-23 02:10:31 -08:00
Steve Yegge
a441559c1c bd sync: 2025-12-23 01:58:29 2025-12-23 01:58:39 -08:00