Commit Graph

1794 Commits

Author SHA1 Message Date
Steve Yegge
789f74a047 chore: Bump version to 0.23.0
Updated all component versions:
- bd CLI: 0.22.1 → 0.23.0
- Plugin: 0.22.1 → 0.23.0
- MCP server: 0.22.1 → 0.23.0
- npm package: 0.22.1 → 0.23.0
- Documentation: 0.22.1 → 0.23.0

Generated by scripts/bump-version.sh
2025-11-08 03:53:18 -08:00
Steve Yegge
2618f9fed2 Prepare v0.23.0 release: update CHANGELOG and remove artifacts 2025-11-08 03:53:08 -08:00
Steve Yegge
87e4ae5f24 Add warning message to zombie issues.jsonl file
The renamed file needs a clear warning to prevent accidental use.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 03:17:58 -08:00
Steve Yegge
9ee45e1971 Auto-invoke 3-way merge for JSONL conflicts (bd-jjua)
When git pull encounters merge conflicts in .beads/beads.jsonl, the
post-merge hook runs 'bd sync --import-only' which previously failed
with an error message pointing users to manual resolution.

This commit adds automatic 3-way merge resolution as a fallback safety
net that works alongside the git merge driver.

Changes:
- Modified conflict detection in import.go to attempt automatic merge
- Added attemptAutoMerge() function that:
  - Extracts git conflict stages (:1 base, :2 ours, :3 theirs)
  - Invokes 'bd merge' command for intelligent field-level merging
  - Writes merged result back and auto-stages the file
  - Restarts import with merged JSONL on success
- Falls back to manual resolution instructions only if auto-merge fails

Defense-in-depth approach:
1. Primary: git merge driver prevents most conflicts during merge
2. Fallback: import auto-merge handles any that slip through

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 03:17:58 -08:00
Steve Yegge
54b459a2a2 bd sync: 2025-11-08 03:12:12 2025-11-08 03:12:12 -08:00
Steve Yegge
6aa7cf4a1e Add 'new' as alias for 'create' command
Amp-Thread-ID: https://ampcode.com/threads/T-fd346dc3-c2b3-4ffd-8c08-432b6563d378
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 03:12:11 -08:00
Steve Yegge
bfc0320a1f Merge remote changes
Amp-Thread-ID: https://ampcode.com/threads/T-fd346dc3-c2b3-4ffd-8c08-432b6563d378
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 03:12:07 -08:00
Steve Yegge
709fd1d3f7 bd sync: 2025-11-08 03:11:53 2025-11-08 03:11:53 -08:00
Steve Yegge
93e5a156c8 Update bd JSONL
Amp-Thread-ID: https://ampcode.com/threads/T-635e5cf4-fa2f-4ce3-9f05-43b48010baae
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 03:10:31 -08:00
Steve Yegge
ba2aef429c Fix bd-8kde: disable auto-import during delete operations
- Skip auto-import in PersistentPreRun for delete command
- Prevents resurrection of deleted issues from stale git JSONL
- Add TestBulkDeleteNoResurrection to prevent regression
- Verified with full test suite

Amp-Thread-ID: https://ampcode.com/threads/T-635e5cf4-fa2f-4ce3-9f05-43b48010baae
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 03:10:12 -08:00
Steve Yegge
288d62a32c bd sync: 2025-11-08 02:51:36 2025-11-08 02:51:36 -08:00
Steve Yegge
bc056cebcd Add comprehensive Agent Mail coordination tests (bd-pdjb)
- Created test_multi_agent_coordination.py with 4 fast tests (<11s total)
- Tests cover fairness (10 agents, 5 issues), notifications, handoff, idempotency
- Documented complete test coverage in AGENT_MAIL_TEST_COVERAGE.md
- 66 total tests across 5 files validating multi-agent reliability
- Closed bd-pdjb (Testing & Validation epic)
2025-11-08 02:48:05 -08:00
Steve Yegge
08ae95be95 Update bd JSONL 2025-11-08 02:46:08 -08:00
Steve Yegge
abb1d1c714 Fix post-merge hook to show actual error messages
Previously the hook redirected stderr to /dev/null, hiding useful error
messages like 'Git conflict markers detected'. Users only saw a generic
warning with no indication of the root cause.

Now captures and displays the actual error output, making it immediately
clear what went wrong (e.g., merge conflicts in JSONL).

Fixes bd-nszi

Amp-Thread-ID: https://ampcode.com/threads/T-6231e968-2c06-44ad-855d-bb5fafe452f6
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 02:46:04 -08:00
Steve Yegge
27fd6e4287 Update beads JSONL after closing bd-d6aq 2025-11-08 02:43:01 -08:00
Steve Yegge
6dc8ea1746 Merge branch 'main' of github.com:steveyegge/beads 2025-11-08 02:42:56 -08:00
Steve Yegge
e6dfcc606a Add Python cache files to .gitignore
- Added __pycache__/ directories
- Added *.py[cod] and *.class files
- Removed tests/integration/__pycache__/ specific entry (now covered by general rule)
2025-11-08 02:42:53 -08:00
Steve Yegge
37f9d3610d Complete Agent Mail documentation (bd-nl8z)
- Add AGENT_MAIL_QUICKSTART.md: 5-minute setup guide
- Add examples/python-agent/AGENT_MAIL_EXAMPLE.md: working code examples
- Add examples/python-agent/agent_with_mail.py: runnable multi-agent demo
- Update README.md: add Agent Mail to features and docs index
- Update AGENTS.md: enhance with quickstart/example references
- Update examples README: add Agent Mail example to index

Amp-Thread-ID: https://ampcode.com/threads/T-5d5e711d-7b5f-42ca-b75a-5b6cd843ad98
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 02:36:27 -08:00
Steve Yegge
3b39672e76 bd sync: 2025-11-08 02:28:57 2025-11-08 02:28:57 -08:00
Steve Yegge
a03737c89a feat: Add bd info --whats-new for agent version awareness (bd-eiz9)
- Add --whats-new flag to bd info command
- Display agent-relevant changes from last 3 versions
- Support both human-readable and JSON output
- Add version changelog data structure with workflow-impacting changes
- Add comprehensive tests for version changes structure
- Update AGENTS.md with whats-new documentation

Helps agents efficiently learn what changed between bd versions without
re-reading full documentation. Addresses weekly major version releases
requiring workflow adaptations.

Closes bd-eiz9

Amp-Thread-ID: https://ampcode.com/threads/T-5fe7e93d-7398-41c5-94bf-e914f2b331dd
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 02:28:54 -08:00
Steve Yegge
1da414fa34 Merge remote changes and add TTL/expiration tests (bd-d6aq)
- Resolved beads.jsonl merge conflict
- Created test_reservation_ttl.py with 4 integration tests
- Tests short TTL (30s), reservation blocking, auto-release, and renewal
- Mock server implements full TTL management with expiration tracking
- All tests passing in ~57s (includes 30s wait for expiration)
- Updated integration test README with new test documentation
2025-11-08 02:24:39 -08:00
Steve Yegge
00333ce082 bd sync: 2025-11-08 02:24:17 2025-11-08 02:24:17 -08:00
Steve Yegge
9d9386fa9b bd sync: 2025-11-08 02:22:18 2025-11-08 02:22:18 -08:00
Steve Yegge
773aa736e4 Document external_ref in content hash behavior (bd-9f4a)
- Added comprehensive code comments in collision.go explaining external_ref inclusion
- Documented content hash behavior in HASH_ID_DESIGN.md with examples
- Enhanced test documentation in collision_test.go
- Closes bd-9f4a, bd-df11, bd-537e

Amp-Thread-ID: https://ampcode.com/threads/T-47525168-d51c-4f56-b598-18402e5ea389
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 02:22:15 -08:00
Steve Yegge
5793ec32a9 bd sync: 2025-11-08 02:20:47 2025-11-08 02:20:47 -08:00
Steve Yegge
f862071c7e Refactor snapshot management into dedicated module (bd-urob)
- Created SnapshotManager type in snapshot_manager.go
- Encapsulates all snapshot operations with clean API
- Added SnapshotStats for observability
- Reduced deletion_tracking.go from 557 to 153 lines (72% reduction)
- Enhanced merge output with statistics
- All tests passing

Amp-Thread-ID: https://ampcode.com/threads/T-d82acce9-170d-4e58-b227-fd33d48b8598
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 02:20:33 -08:00
Steve Yegge
24bfb6afd2 Add comprehensive tests for Python Agent Mail adapter
- Add 24 new tests across 6 test classes
- Cover authorization headers, request body validation
- Test reservation edge cases (TTL, special chars, multiple reservations)
- Test timeout configuration and precedence
- Test inbox/notification edge cases (large payloads, Unicode, nested data)
- Fix timeout parameter precedence bug (constructor now overrides env var)
- All 51 tests pass

Closes bd-b134

Amp-Thread-ID: https://ampcode.com/threads/T-2f39e97d-38de-4df4-bf94-ef90184cee8a
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 02:19:31 -08:00
Steve Yegge
3b326cab61 Update bd JSONL - closed bd-ic1m
Amp-Thread-ID: https://ampcode.com/threads/T-0907bb40-ffc9-4f09-843f-b26716ef9ce0
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 02:14:06 -08:00
Steve Yegge
3bce3138a9 Add automated git traffic benchmark for Agent Mail
- Created tests/benchmarks/git_traffic.py with 50-issue workflow
- Measures git operations reduction: git-only vs Agent Mail
- Generates comparison reports with pass/fail (70% target)
- Results: 98.5% reduction (200 → 3 operations)
- Added documentation in tests/benchmarks/README.md

Closes bd-ic1m

Amp-Thread-ID: https://ampcode.com/threads/T-0907bb40-ffc9-4f09-843f-b26716ef9ce0
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 02:13:51 -08:00
Steve Yegge
b02a1ff63f Fix #258: Allow completion commands without database
Add bash/zsh/fish/powershell to noDbCommands list so shell completion
generation works without requiring a .beads database.

Fixes: bd-71ky, GH-258
2025-11-08 02:06:06 -08:00
Steve Yegge
f79735daa0 Ignore Python cache in integration tests 2025-11-08 01:58:40 -08:00
Steve Yegge
ce2afd18ae bd sync: 2025-11-08 01:58:15 2025-11-08 01:58:15 -08:00
Steve Yegge
d6aa078c30 Add Agent Mail failure scenario tests (bd-zi1v)
- Tests 7 failure modes: connection refused, server crash, timeout, 500 errors, invalid token, malformed JSON, consistency
- All agents gracefully degrade to Beads-only mode
- Uses --no-daemon flag for fast execution (33s vs 162s)
- Mock HTTP server simulates all failure scenarios
- JSONL consistency verified across all failures

Amp-Thread-ID: https://ampcode.com/threads/T-a1a3b39a-9002-44c8-8048-3292d894f404
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 01:58:13 -08:00
Steve Yegge
a31715c446 Fix .gitignore to exclude git merge driver temp files
Adds patterns for *.json[0-9] and *.jsonl[0-9] to ignore temporary files
created by git merge driver during conflicts (e.g., beads.base.json1)

Amp-Thread-ID: https://ampcode.com/threads/T-afef93f2-e073-47d8-a82e-b8c68412496f
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 01:53:57 -08:00
Steve Yegge
7d5ea2e6c9 bd sync: 2025-11-08 01:52:48 2025-11-08 01:52:48 -08:00
Steve Yegge
ab4ec900f0 Fix bd import to auto-initialize database when missing
Agents were failing with 'bd import' after nuking the database.
Now bd import automatically:
- Creates .beads/ directory if missing
- Detects prefix from imported issues (analyzes JSONL)
- Falls back to directory name if no issues
- Initializes database before proceeding

This fixes the common agent workflow: rm .beads/beads.db && bd import

Amp-Thread-ID: https://ampcode.com/threads/T-3ace45ce-3cd6-46ae-a201-39c3d7f48f0b
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 01:52:35 -08:00
Steve Yegge
068615f28a Add comprehensive Agent Mail adapter tests (bd-5ki8)
- 29 tests covering enabled, disabled, graceful degradation
- Reservation conflict handling (JSON and plain text errors)
- HTTP error scenarios (404, 500, 503)
- Health check edge cases
- Malformed responses and empty bodies
- All tests run in 10ms (fast!)

Amp-Thread-ID: https://ampcode.com/threads/T-8bcf1119-53f1-4602-9161-d804444cc314
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 01:34:01 -08:00
Steve Yegge
e6d580e14b Change bd list to one line per issue, add --long flag
Make bd list print exactly one line per issue by default to fix agent
miscounting. Agents were getting confused by the multi-line format and
incorrectly counting open issues.

The new compact format shows:
  bd-zo7o [P0] [task] open @assignee [labels] - Title

The original detailed multi-line format is preserved behind --long flag.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 01:32:13 -08:00
Steve Yegge
497f12fca5 Remove old install.sh script, replaced by bd hooks install
Amp-Thread-ID: https://ampcode.com/threads/T-6d470bf0-ada4-4b71-95ca-21d926837764
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 01:29:36 -08:00
Steve Yegge
187fdd258a Add bd hooks install command with embedded git hooks (bd-908z)
- Embed git hooks in binary using go:embed and templates directory
- Add bd hooks install/uninstall/list subcommands
- Install hooks with automatic backup of existing hooks
- Update AGENTS.md to reference 'bd hooks install' instead of install.sh
- Add comprehensive tests for hooks commands
- Update hook version to 0.22.1

Closes bd-908z
2025-11-08 01:28:19 -08:00
Steve Yegge
a140436db8 test: improve internal/daemon test coverage to 60%
Adds fast unit tests for previously uncovered functions in the daemon package:

- checkDaemonErrorFile: tests reading daemon error files
- StopDaemon: tests error handling for non-running daemons
- KillAllDaemons: tests empty lists and non-alive daemons
- FindDaemonByWorkspace: tests not found case
- discoverDaemon: tests missing socket scenario
- CleanupStaleSockets: tests edge cases (already removed, alive daemon)
- Registry: tests corrupted file handling and unregistering non-existent entries

Coverage improved from 22.5% to 60.0% with only fast tests (<1s runtime).
All new tests work in -short mode and don't start actual daemons.

Fixes bd-3f80d9e0

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 01:20:03 -08:00
Steve Yegge
e95885f453 Fix bd-yuf7: Add config to bd info JSON output
- bd info now includes config in JSON output
- Temporarily switches to direct mode to read config table
- Fixes issue where bd config set worked but bd info showed null config

Amp-Thread-ID: https://ampcode.com/threads/T-d2e6a5e4-7f85-4e9f-94bb-d20ea46ea13b
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 01:18:06 -08:00
Steve Yegge
af11521561 Update beads.jsonl with closed issues (bd-eimz, bd-fkdw, bd-sc57) 2025-11-08 01:14:22 -08:00
Steve Yegge
c3856bb140 Add Agent Mail documentation and bash-agent integration
- Added Agent Mail section to QUICKSTART.md with benefits and setup
- Integrated Agent Mail into bash-agent example with reservation/notification
- Added multi-agent usage instructions to bash-agent README
- Closed bd-eimz (QUICKSTART), bd-fkdw (bash-agent), bd-sc57 (production)
- Completed bd-nl8z documentation epic

Amp-Thread-ID: https://ampcode.com/threads/T-5b0d67ff-5eb2-41b3-bc9b-7f33719e0c85
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 01:10:20 -08:00
Steve Yegge
687c23cf71 Update issues (bd-2cvu closed)
Amp-Thread-ID: https://ampcode.com/threads/T-f8161cc4-d6d2-4f23-8854-4834dbdedb26
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 01:03:55 -08:00
Steve Yegge
6970fff613 bd sync: 2025-11-08 01:03:44 2025-11-08 01:03:44 -08:00
Steve Yegge
826a3b2047 Refactor AGENTS.md: extract supplemental docs
- Create docs/DAEMON.md (daemon mgmt, event-driven mode)
- Create docs/GIT_INTEGRATION.md (worktrees, conflicts, merge drivers)
- Create docs/CLI_REFERENCE.md (comprehensive command examples)
- Reduce AGENTS.md from 1047 → 906 lines (13% reduction)
- Add Agent Mail optional workflow section (bd-2cvu)

Improves navigability while preserving all content.

Amp-Thread-ID: https://ampcode.com/threads/T-f8161cc4-d6d2-4f23-8854-4834dbdedb26
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 01:03:28 -08:00
Steve Yegge
ef1634d850 bd sync: 2025-11-08 01:02:24 2025-11-08 01:02:24 -08:00
Steve Yegge
29a3dfe9a4 bd sync: 2025-11-08 00:50:07 2025-11-08 00:50:07 -08:00
Steve Yegge
596b616269 chore: Sync JSONL after closing bd-xzrv 2025-11-08 00:49:57 -08:00