Commit Graph

1017 Commits

Author SHA1 Message Date
Steve Yegge
3b39672e76 bd sync: 2025-11-08 02:28:57 2025-11-08 02:28:57 -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
5793ec32a9 bd sync: 2025-11-08 02:20:47 2025-11-08 02:20:47 -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
ce2afd18ae bd sync: 2025-11-08 01:58:15 2025-11-08 01:58:15 -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
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
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
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
Steve Yegge
9cffd39246 docs: Add comprehensive Agent Mail integration guide
- Installation and quick start
- Architecture and coordination flow
- Configuration reference (environment variables)
- When to use vs skip Agent Mail
- Multi-machine deployment patterns
- Troubleshooting and FAQ
- Migration guide from git-only mode

Closes bd-xzrv

Amp-Thread-ID: https://ampcode.com/threads/T-e8cf1b4b-38ae-4f6b-ae17-8b960d31608e
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 00:49:41 -08:00
Steve Yegge
bd59973170 Sync beads database 2025-11-08 00:36:42 -08:00
Steve Yegge
c864527e0e Update JSONL after closing bd-zo7o
Amp-Thread-ID: https://ampcode.com/threads/T-2fb10899-490f-4d41-b003-8bc4d467cc54
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 00:36:33 -08:00
Steve Yegge
ef94641541 Add multi-agent race condition test (bd-zo7o)
- Created test_agent_race.py with 3 test scenarios
- Tests collision prevention with Agent Mail reservations
- Validates that only one agent claims an issue when reservations active
- Demonstrates collision problem when Agent Mail disabled
- Includes stress test with 10 agents
- Non-interactive mode support for CI/automation

Amp-Thread-ID: https://ampcode.com/threads/T-2fb10899-490f-4d41-b003-8bc4d467cc54
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 00:36:21 -08:00
Steve Yegge
7c6a7fc382 chore: sync beads database 2025-11-08 00:15:32 -08:00
Steve Yegge
139c693020 bd sync: 2025-11-08 00:11:03 2025-11-08 00:11:03 -08:00
Steve Yegge
f72a1d826d Fix bd-u4f5: Add warning when import syncs with working tree but not git HEAD
- Detect uncommitted changes in .beads/issues.jsonl
- Warn users when database matches working tree but differs from git HEAD
- Clarify import status messages (working tree vs git sync)
- Add comprehensive tests for dirty working tree scenarios
- Prevents false confidence about sync status

Amp-Thread-ID: https://ampcode.com/threads/T-5a0f1045-a690-42ef-8bfc-f8cf30ee4084
Co-authored-by: Amp <amp@ampcode.com>
2025-11-08 00:00:43 -08:00
Steve Yegge
0e6cb2d092 bd sync: 2025-11-08 00:00:04 2025-11-08 00:00:04 -08:00
Steve Yegge
e6e458fc40 Close bd-27xm, update bd-6hji, file bd-8zf2 (MCP context bug)
- bd-27xm: No actual tool error, MCP Agent Mail works correctly
- bd-6hji: File reservations tested successfully, in progress
- bd-8zf2: Critical bug - MCP server loses context on Amp restart

Amp-Thread-ID: https://ampcode.com/threads/T-67bde23b-d637-40ab-add5-6c8f1296e8f8
Co-authored-by: Amp <amp@ampcode.com>
2025-11-07 23:53:51 -08:00
Steve Yegge
4e97e0eb97 Clarify Agent Mail is external service, not embedded in beads
- bd-27xm: Mark as external debugging work
- Updated status doc to emphasize separation
- Agent Mail server at ~/src/mcp_agent_mail (separate repo)
- Beads integration will be lightweight HTTP client only
2025-11-07 23:21:50 -08:00
Steve Yegge
a47b69e4f3 Close test issues 2025-11-07 23:19:32 -08:00
Steve Yegge
a02467e4bd bd-muls: Add Agent Mail integration tracking 2025-11-07 23:18:19 -08:00
Steve Yegge
07bd7066c1 bd sync: 2025-11-07 23:10:55 2025-11-07 23:11:05 -08:00
Steve Yegge
93c90a48f5 Add dependencies for Agent Mail integration issues 2025-11-07 23:04:44 -08:00
Steve Yegge
78d3f5f6d0 Update bd JSONL (closed bd-z528)
Amp-Thread-ID: https://ampcode.com/threads/T-fc7b7391-8881-4dd9-8e1f-28a2f95afb2b
Co-authored-by: Amp <amp@ampcode.com>
2025-11-07 22:51:17 -08:00
Steve Yegge
e5e0c8a211 bd sync: 2025-11-07 22:51:08 2025-11-07 22:51:08 -08:00
Steve Yegge
4f442ce5f1 bd sync: 2025-11-07 22:44:23 2025-11-07 22:44:23 -08:00
Steve Yegge
1065e66a75 Add bd cleanup command for bulk deletion of closed issues
Implements bd-jx90: simple cleanup command without API key requirement.

Features:
- Delete all closed issues with --force
- Filter by age with --older-than N (days)
- Preview with --dry-run
- Cascade deletion with --cascade
- JSON output support

Usage:
  bd cleanup --force                    # Delete all closed
  bd cleanup --older-than 30 --force    # Delete >30 days old
  bd cleanup --dry-run                  # Preview

Closes bd-jx90

Amp-Thread-ID: https://ampcode.com/threads/T-8d905db0-4ec7-411e-95de-1f044219dc9c
Co-authored-by: Amp <amp@ampcode.com>
2025-11-07 22:06:50 -08:00
Steve Yegge
de665f2341 Update bd JSONL 2025-11-07 21:58:34 -08:00
Steve Yegge
6f22c9641a bd sync: 2025-11-07 21:29:59 2025-11-07 21:29:59 -08:00
Steve Yegge
3431cd455a bd sync: 2025-11-07 21:29:32 2025-11-07 21:29:38 -08:00
Steve Yegge
fe705befbe Add RPC diagnostics with BD_RPC_DEBUG env var
- Add BD_RPC_DEBUG=1 for lightweight timing logs to stderr
- Log socket path, socket exists check, dial timing, health check timing
- Improve daemon status message when lock not held
- Helps field triage of connection issues without verbose daemon logs
- Fixes bd-j7e2
2025-11-07 21:29:22 -08:00
Steve Yegge
1c86fc1434 Update bd JSONL 2025-11-07 21:21:37 -08:00
Steve Yegge
f6bdf7c641 Reduce RPC dial timeout from 2s to 200ms for fast-fail (bd-expt)
- Changed TryConnect default from 2s to 200ms
- Updated fallback timeout in TryConnectWithTimeout
- Complements bd-wgu4 lock probe to eliminate 5s delays
- Fixes GH#243 (5s delay when daemon socket missing)
- Health checks still use longer timeouts via explicit TryConnectWithTimeout calls
2025-11-07 21:12:45 -08:00
Steve Yegge
ba1b856acb Standardize daemon detection with tryDaemonLock probe (bd-wgu4)
- Extract lock checking to internal/lockfile package
- Add lock probe in RPC client before connection attempts
- Update daemon discovery to use lock probe
- Eliminates unnecessary connection attempts when socket missing

Closes bd-wgu4

Amp-Thread-ID: https://ampcode.com/threads/T-3b863f21-3af4-49d3-9214-477d904b80fe
Co-authored-by: Amp <amp@ampcode.com>
2025-11-07 21:02:38 -08:00
Steve Yegge
eeef37f37b Fix bd-srwk: Add ID-based staleness detection to bd export
Prevents data loss when exporting stale database by comparing issue IDs,
not just counts. Detects both scenarios:
- Database has fewer issues than JSONL
- Database has different issues than JSONL (same count)

Shows specific missing issue IDs in error. Allows override with --force.
Includes comprehensive tests for all scenarios.
2025-11-07 20:07:59 -08:00
Steve Yegge
73e73aecf9 File bd-srwk: Prevent stale database exports
bd export currently silently overwrites issues.jsonl even when the
database is stale (older than the JSONL file). This causes data loss
in multi-agent workflows.

Real incident from vc project:
- Agent A created 4 discovery epics and exported
- Agent B had stale database and exported, removing those epics
- Required manual recovery

Proposed fix: Check database freshness before export, similar to
VC's ValidateDatabaseFreshness(). Require --force to override.

Priority P1: Silent data loss in common multi-agent scenario.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 19:39:44 -08:00
Steve Yegge
d97df21a65 Fix MCP server integration tests - add env variable propagation
- Fix BdCliClient._run_command() to pass BEADS_DIR/BEADS_DB env vars to subprocess
- Update temp_db fixture to create .beads in workspace and return .beads dir path
- Update mcp_client fixture to use beads_dir and enable BEADS_NO_DAEMON mode
- Simplify test_init_tool to work with connection pool architecture

Result: All 19 integration tests now pass (was 19 failing)
Amp-Thread-ID: https://ampcode.com/threads/T-c1da2a55-f086-4284-9c85-0dfa4c479cf9
Co-authored-by: Amp <amp@ampcode.com>
2025-11-07 19:27:22 -08:00
Steve Yegge
33c3b05eef Update bd JSONL 2025-11-07 19:08:05 -08:00
Steve Yegge
52833704f0 bd sync: 2025-11-07 19:07:55 2025-11-07 19:07:55 -08:00
Steve Yegge
0e8936bf61 Fix test failures: update to new AddDependencyParams field names
- Update tests to use issue_id/depends_on_id instead of from_id/to_id
- Fix test_client_lazy_initialization to mock create_bd_client instead of BdClient
- Add workspace setup for lazy initialization test
- Fixes 2 test failures (now 123 passing, down from 121)

Amp-Thread-ID: https://ampcode.com/threads/T-71b3ce65-87cb-451a-a30d-162d76d92f9c
Co-authored-by: Amp <amp@ampcode.com>
2025-11-07 19:07:49 -08:00