Commit Graph

58 Commits

Author SHA1 Message Date
Steve Yegge
45c048ab96 chore: Bump version to 0.26.0
Release highlights:
- bd doctor --check-health for lightweight startup hook health checks
- --no-git-history flag to prevent spurious deletions
- gh2jsonl --id-mode hash for content-based ID generation
- Critical MCP protocol stdin fix (PR #400)
- Git worktree staleness fix (#399)
- Multi-part prefix support (#398)
- bd sync commit scope fix

Updated all component versions:
- bd CLI: 0.25.1 -> 0.26.0
- Plugin: 0.25.1 -> 0.26.0
- MCP server: 0.25.1 -> 0.26.0
- npm package: 0.25.1 -> 0.26.0

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 01:06:45 -08:00
Steve Yegge
9fc0285987 chore: Bump version to 0.25.1 2025-11-25 18:16:49 -08:00
Steve Yegge
8915026fed docs: update CHANGELOG for upcoming 0.25.1 release
🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 18:12:44 -08:00
Steve Yegge
afacb5231e docs: add stealth mode and --from-main to v0.25.0 changelog 2025-11-25 16:49:52 -08:00
Steve Yegge
d5dd01c8ff chore: Bump version to 0.25.0
Updated all component versions:
- bd CLI: 0.24.4 → 0.25.0
- Plugin: 0.24.4 → 0.25.0
- MCP server: 0.24.4 → 0.25.0
- npm package: 0.24.4 → 0.25.0
- Documentation: 0.24.4 → 0.25.0

Generated by scripts/bump-version.sh
2025-11-25 16:39:09 -08:00
Steve Yegge
6bf0472573 docs: add deletion propagation to changelog
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 16:38:12 -08:00
Steve Yegge
9b13c422ca docs: add v0.24.4 changelog entry
Comprehensive changelog documenting all changes since v0.24.3:
- Transaction API for atomic multi-operation workflows
- Tip system infrastructure for smart user hints
- Sorting flags for bd list and bd search
- Claude integration verification in bd doctor
- ARM Linux support (PR #371)
- Multiple bug fixes and improvements

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 22:28:04 -08:00
Steve Yegge
30dfb247dc Fix bd-l0r: Skip export after ZFC import to preserve JSONL source of truth
## Problem
When bd sync detected stale DB (>50% divergence), it would import JSONL to fix the DB,
but then immediately export the DB back to JSONL. This caused the stale DB to overwrite
the JSONL after a git pull, undoing cleanup work.

Example scenario:
1. Clone has 688 stale issues in DB (628 closed)
2. git pull brings JSONL with 62 issues (cleanup applied)
3. bd sync detects 1009.7% divergence and imports JSONL (DB → 62 issues) ✓
4. bd sync exports DB to JSONL (JSONL still 62 issues) ✓
5. But this marks JSONL as "changed" and commits/pushes it ✗

## Solution
After ZFC (JSONL First Consistency) import, set skipExport flag to prevent the export step.
JSONL is the source of truth after import - DB should sync to match, not export back.

## Changes
- cmd/bd/sync.go: Add skipExport flag, set it after ZFC import
- cmd/bd/sync.go: Wrap export logic in `if !skipExport` block
- CHANGELOG.md: Update ZFC entry with accurate description
- cmd/bd/sync_test.go: Add TestZFCSkipsExportAfterImport

Fixes #bd-l0r

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 10:32:56 -08:00
Steve Yegge
3eec586a18 docs: Complete comprehensive v0.24.3 changelog
Thorough manual review of all 243 commits between v0.24.2 and v0.24.3:

- 10 major Added features with detailed sub-bullets
- 15 critical Fixed issues with technical context
- 4 Changed improvements to workflows
- 2 Testing enhancements
- 1 Performance optimization

Each entry includes:
- Commit hashes for traceability
- bd issue IDs where applicable
- User-focused descriptions
- Technical details and impact
- Follows Keep a Changelog format

This matches the quality and detail of previous changelog entries.
2025-11-24 00:12:17 -08:00
Steve Yegge
e05784f4a9 docs: Add v0.24.3 changelog entry
Properly documents all changes from v0.24.2 to v0.24.3:
- Version management and auto-migration features
- Data consistency and sync improvements
- Security enhancements
- Cross-platform bug fixes
- Web UI improvements
- Daemon and git hook enhancements
2025-11-24 00:06:25 -08:00
Steve Yegge
f454b3dd1d Increase daemon log rotation limits for production use
- Max size: 10MB → 50MB per file
- Max backups: 3 → 7 files
- Max age: 7 → 30 days
- Updated tests and documentation

Resolves bd-t7ds

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 21:33:00 -08:00
Steve Yegge
106499c4fc Improve pre-push hook: suggest bd sync with auto-sync option
The pre-push hook now provides better guidance when beads JSONL has
uncommitted changes:

- Interactive terminals: Prompts to auto-run 'bd sync' (y/N)
- Non-interactive/CI: Shows 'bd sync' command to run
- Fallback: Manual git commands if bd not available

This addresses the UX issue where users weren't sure they should
run 'bd sync' instead of manual git commands.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 16:10:02 -08:00
Steve Yegge
a6fb23596b docs: Add v0.24.2 changelog entry
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 00:06:10 -08:00
Steve Yegge
89aa83a8d9 docs: Add v0.24.1 changelog entry 2025-11-21 22:13:00 -08:00
Steve Yegge
2ba3cd64fe docs: Add #328 fix to 0.24.0 changelog
Include the duplicate function declaration fix that was merged
after the initial changelog was prepared.
2025-11-20 22:15:47 -05:00
Steve Yegge
00840aa72f chore: Bump version to 0.24.0
Updated all component versions:
- bd CLI: 0.23.1 → 0.24.0
- Plugin: 0.23.1 → 0.24.0
- MCP server: 0.23.1 → 0.24.0
- npm package: 0.23.1 → 0.24.0
- Documentation: 0.23.1 → 0.24.0

Added comprehensive CHANGELOG.md entry for 0.24.0 with 179 commits:
- Critical bug fixes (auto-import resurrection, sync conflicts, resource leaks)
- Performance improvements (GetReadyWork optimization, N+1 query elimination)
- New features (bd doctor --fix, bd clean, auto-detection)
- Enhanced AI agent support (context propagation, error handling)
- Cross-platform improvements (Windows, macOS stability)
2025-11-20 22:15:04 -05:00
Steve Yegge
98f2e85618 Fix version test error message assertion 2025-11-08 22:57:49 -08:00
Steve Yegge
f12004c7ab Add Agent Mail 98.5% git traffic reduction metric to changelog and README 2025-11-08 03:54:28 -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
559d1ecf65 docs: Add CHANGELOG entry for v0.22.1 2025-11-06 20:24:09 -08:00
Steve Yegge
dcb6eb27a8 Vendor beads-merge by @neongreen for native bd merge command
- Vendored beads-merge algorithm into internal/merge/ with full MIT license attribution
- Created bd merge command as native wrapper (no external binary needed)
- Updated bd init to auto-configure git merge driver (both interactive and --quiet)
- Removed obsolete test files that were incompatible with vendored version
- Added merge to noDbCommands list so it can run standalone
- Tested: successful merge and conflict detection work correctly

Closes bd-bzfy

Thanks to @neongreen for permission to vendor!
See: https://github.com/neongreen/mono/issues/240
Original: https://github.com/neongreen/mono/tree/main/beads-merge

Amp-Thread-ID: https://ampcode.com/threads/T-f0fe7c4c-13e7-486b-b073-fc64b81eeb4b
Co-authored-by: Amp <amp@ampcode.com>
2025-11-06 15:38:48 -08:00
Steve Yegge
aca631a1c4 Update CHANGELOG for git hook version detection 2025-11-06 15:02:38 -08:00
Steve Yegge
e294fc0f4d docs: Add CHANGELOG entry for v0.22.0 2025-11-05 19:59:48 -08:00
Steve Yegge
a41a08506b docs: Add CHANGELOG entry for v0.21.9 2025-11-05 01:15:57 -08:00
Steve Yegge
d46894e0ad docs: Add CHANGELOG entry for v0.21.8 2025-11-05 00:09:08 -08:00
Steve Yegge
3af353ade3 Fix P0 bug: JSONL lookup now returns LAST match (bd-58c0)
Addresses code review feedback:

 P0 (Must Fix):
- Fix JSONL lookup to return LAST match, not FIRST (resurrection.go:160-162)
  - Changed from early return to scan all matches and keep last
  - Respects JSONL append-only semantics

 P1 (Should Fix):
- Add test for multiple JSONL versions
  - TestTryResurrectParent_MultipleVersionsInJSONL verifies correct behavior
- Document error message change in CHANGELOG.md
  - Old: "parent issue X does not exist"
  - New: "parent issue X does not exist and could not be resurrected from JSONL history"
  - Marked as breaking change for script parsers

 P2/P3 (Nice to Have):
- Add documentation to AGENTS.md explaining auto-resurrection behavior
- Document best-effort dependency resurrection

⏸️ Deferred (P1 - Optimize batch resurrection):
- Caching optimization deferred (no batch use cases currently)

All tests pass:
- Unit tests: internal/storage/sqlite/
- Integration test: TestImportWithDeletedParent
2025-11-04 22:25:33 -08:00
Steve Yegge
96f0931389 docs: Add 0.21.7 release notes to CHANGELOG 2025-11-04 01:11:47 -08:00
Steve Yegge
b7ac88f56e docs: Add 0.21.6 release notes to CHANGELOG 2025-11-04 00:40:26 -08:00
Steve Yegge
3c87fdd928 Update CHANGELOG.md with correct 0.21.5 release notes 2025-11-02 22:42:51 -08:00
Steve Yegge
3f28ea7981 Add 0.21.5 release notes 2025-11-02 22:39:32 -08:00
Steve Yegge
c45d4c9f80 Add 0.21.4 release notes 2025-11-02 21:42:27 -08:00
Steve Yegge
e05c898987 Update CHANGELOG for 0.21.2 2025-11-01 10:43:12 -07:00
Steve Yegge
6e0dee17d2 Update CHANGELOG for 0.21.1 2025-10-31 23:46:50 -07:00
Steve Yegge
a5be0d13bf Version bump to 0.20.1: Hash-based IDs
- Bump version across all components (CLI, plugin, MCP server)
- Update CHANGELOG.md with comprehensive hash ID migration notes
- Replace critical multi-clone warning with hash ID announcement
- Add Hash-Based Issue IDs section to README with:
  - ID format explanation (4/5/6 char progressive scaling)
  - Why hash IDs solve collision issues
  - Birthday paradox collision probability math
  - Migration instructions
- Update all examples to use hash IDs (bd-a1b2) instead of sequential (bd-1)

Breaking changes:
- Sequential ID generation removed (bd-c7af, bd-8e05, bd-4c74)
- issue_counters table removed from schema
- --resolve-collisions flag removed (no longer needed)

Migration: Run 'bd migrate' to upgrade database schema
Amp-Thread-ID: https://ampcode.com/threads/T-0b000145-350a-4dfe-a3f1-67d4d52a6717
Co-authored-by: Amp <amp@ampcode.com>
2025-10-31 01:47:54 -07:00
Steve Yegge
3b89178ebc Add 0.20.0 release notes and fix golangci-lint config 2025-10-30 20:39:24 -07:00
Steve Yegge
f07b60b23a Add 0.17.7 release notes 2025-10-26 23:30:09 -07:00
Steve Yegge
fdf7188ba4 Add 0.17.2 release notes 2025-10-25 18:57:07 -07:00
Steve Yegge
79a182bfc1 Add 0.16.0 and 0.17.0 release notes 2025-10-24 22:38:04 -07:00
Steve Yegge
283a5216e6 Add 0.15.0 release notes 2025-10-23 14:26:19 -07:00
Steve Yegge
feac3f86e7 MCP: Smart routing for lifecycle status changes in update tool
- update(status="closed") now routes to close() tool
- update(status="open") now routes to reopen() tool
- Respects Claude Code approval workflows for lifecycle events
- Prevents bypass of approval settings
- bd CLI remains unopinionated; routing only in MCP layer
- Users can safely auto-approve benign updates without exposing closure bypass

Fixes #123

Amp-Thread-ID: https://ampcode.com/threads/T-8b85a68e-7e06-460e-9840-9c6b6a6b7e85
Co-authored-by: Amp <amp@ampcode.com>
2025-10-23 14:10:33 -07:00
Steve Yegge
603367676c docs: Update CHANGELOG for v0.14.0 release 2025-10-22 23:16:20 -07:00
Steve Yegge
e291f464ee Fix bd-54: Prevent multiple daemon instances via file locking
- Implemented daemon.lock using flock (Unix) and LockFileEx (Windows)
- Lock acquired before PID file, held for daemon lifetime
- Eliminates race conditions in concurrent daemon starts
- Backward compatible: falls back to PID check for old daemons
- Updated isDaemonRunning() to check lock availability
- All tests pass including new lock and backward compatibility tests

Amp-Thread-ID: https://ampcode.com/threads/T-0e2627f4-03f9-4024-bb4b-21d23d296300
Co-authored-by: Amp <amp@ampcode.com>
2025-10-22 13:59:58 -07:00
Steve Yegge
37cd5a5330 Update CHANGELOG for 0.11.0 release 2025-10-22 01:09:14 -07:00
Steve Yegge
e1a445afd2 Remove global socket fallback, enforce local-only daemons
- Remove ~/.beads/bd.sock fallback in getSocketPath()
- Always return local socket path (.beads/bd.sock)
- Add migration warning if old global socket exists
- Update AGENTS.md to remove global daemon references
- Document breaking change in CHANGELOG.md
- Fix test isolation: tests now use temp .beads dir and chdir

Prevents cross-project daemon connections and database pollution.
Each project must use its own local daemon.

Amp-Thread-ID: https://ampcode.com/threads/T-c4454192-39c6-4c67-96a9-675cbfc4db92
Co-authored-by: Amp <amp@ampcode.com>
2025-10-21 20:35:55 -07:00
Steve Yegge
94a23cae39 Release 0.10.0 - Add bd onboard command
- Update CHANGELOG.md with 0.10.0 release notes
- Clean up dist/ directory (remove 0.9.11 artifacts)
- bd-173: Agent-first onboarding command
2025-10-20 15:48:38 -07:00
Steve Yegge
01aeed6997 Add 0.9.11 release notes 2025-10-19 23:27:14 -07:00
Steve Yegge
422c102f46 Add label filtering to bd list with AND/OR semantics
- Add --label flag for AND filtering (must have ALL labels)
- Add --label-any flag for OR filtering (must have AT LEAST ONE label)
- Add normalizeLabels() helper to trim, dedupe, and clean inputs
- Fix RPC title filtering parity bug (forward via Query field)
- Add comprehensive tests for label filtering including combined AND+OR
- Update documentation in README and CHANGELOG
- Improve flag help text to clarify combined semantics

Closes bd-161
2025-10-19 23:03:02 -07:00
Steve Yegge
cff10b1998 Add automatic log rotation for daemon (bd-154)
- Integrated lumberjack library for production-ready log rotation
- Configurable via env vars: BEADS_DAEMON_LOG_MAX_SIZE, BEADS_DAEMON_LOG_MAX_BACKUPS, BEADS_DAEMON_LOG_MAX_AGE, BEADS_DAEMON_LOG_COMPRESS
- Defaults: 10MB max size, 3 backups, 7 day retention, compression enabled
- Added comprehensive tests for env var parsing and rotation config
- Updated README.md and CHANGELOG.md with rotation documentation
- Prevents unbounded log growth for long-running daemons

Amp-Thread-ID: https://ampcode.com/threads/T-8232d41a-6872-4f4c-962c-7fae8f5e83b7
Co-authored-by: Amp <amp@ampcode.com>
2025-10-18 16:30:19 -07:00
Steve Yegge
c17174b80a fix: bd list --status all showing 0 issues (bd-148)
The status filter was treating 'all' as a literal status value instead of
a special case meaning 'show all statuses'. This caused the SQL query to
filter for 'WHERE status = all' which matched no issues.

Fixed by checking if status is 'all' and skipping the filter in that case.

- Fix list.go to skip status filter when status == 'all'
- Update CHANGELOG with fix details
- All tests pass
2025-10-17 21:56:03 -07:00
Steve Yegge
ee94d817ed feat: Add batch deletion support (bd-127)
- Add DeleteIssues() method in sqlite.go for atomic batch deletion
- Support multiple issue IDs as arguments or from file
- Add --from-file flag to read IDs from file (supports comments)
- Add --dry-run mode for safe preview without deleting
- Add --cascade flag for recursive deletion of dependents
- Add --force flag to orphan dependents instead of failing
- Pre-collect connected issues before deletion for text reference updates
- Add orphan deduplication to prevent duplicate IDs
- Add rows.Err() checks in all row iteration loops
- Full transaction safety - all deletions succeed or none do
- Comprehensive statistics tracking (deleted, dependencies, labels, events)
- Update README and CHANGELOG with batch deletion docs

Fixed critical code review issues:
- Dry-run mode now properly uses dryRun parameter instead of deleting data
- Text references are pre-collected before deletion so they update correctly
- Added orphan deduplication and error checks
- Updated defer rollback pattern per Go best practices
2025-10-17 21:13:23 -07:00