beads v0.49.0
Pre-compiled binaries for Linux, macOS (Intel & Apple Silicon), Windows (AMD64 & ARM64), Android/Termux (ARM64), and FreeBSD.
Installation
Homebrew (macOS/Linux):
brew install steveyegge/beads/bdQuick Install (macOS/Linux/FreeBSD):
curl -sSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bashWindows (PowerShell):
irm https://raw.githubusercontent.com/steveyegge/beads/main/install.ps1 | iexManual Install:
Download the appropriate binary for your platform below, extract it, and place it in your PATH.
Changelog
Features
- e00f013 feat(activity): use fsnotify for real-time feed (hq-ew1mbr.17)
- 9c3c21e feat(cli): add 'view' as alias for 'show' command (#1249)
- a3ef772 feat(cmd): add 'bd children ' command (bd-scbxh)
- e82e15a feat(config): add GetSyncMode, GetConflictStrategy, GetSovereignty with warnings
- 9ddd7a2 feat(config): add validate command for sync config
- e0dc3a3 feat(create): add -m as alias for --description flag
- 1a7f8ef feat(doctor): add federation health checks (bd-wkumz.6)
- 4a0f4ab feat(doctor): add patrol pollution detection and fix
- 938a17c feat(dolt): add GetChangesSinceExport and CommitExists methods (bd-ejv83)
- 4f3c3fe feat(dolt): add federation prototype tests
- cff58c4 feat(dolt): add peer-to-peer federation integration tests (bd-wkumz.9)
- 90344b9 feat(dolt): bootstrap routes.jsonl and interactions.jsonl (bd-lbdy7)
- d3d2326 feat(federation): add SQL user authentication for peer sync
- da4584a feat(federation): add dolt sql-server mode for daemon (bd-wkumz.2)
- c3f68ca feat(federation): enhance bd federation status command (bd-wkumz.5)
- 6190dd9 feat(federation): implement bd federation sync command
- ba0e754 feat(hook): implement per-worktree export state tracking (Design Part 21)
- 2fe15e2 feat(hooks): add jujutsu (jj) version control support
- ee44498 feat(linear): add --type and --exclude-type flags for sync filtering (#1205)
- 4e3e9d1 feat(migrate): add SQLite to Dolt migration tooling (hq-ew1mbr.6)
- c1ac69d feat(mol): add 'bd mol seed --patrol' command (#1149)
- e36e2f6 feat(nix): add shell completion outputs to flake (#1210)
- d72f375 feat(rename): add bd rename command for renaming issue IDs
- ce622f5 feat(setup): add Codex CLI setup recipe (#1243)
- 63c2e50 feat(sync): add incremental export for large repos
- 9a9704b feat(sync): add per-field merge strategies for conflict resolution
- 16f8c3d feat(sync): add sync mode configuration (hq-ew1mbr.3)
- c99bd00 feat(sync): implement interactive conflict resolution for manual strategy
- 356ab92 feat(sync): wire up sync.mode config to change sync behavior
- bf92fda feat(types): add FederatedMessage type for inter-town protocol (bd-wkumz.11)
- 4f0f574 feat(types): remove Gas Town types from core built-in types
- d929c8f feat: add hierarchical tree display for --tree --parent combination (#1211)
Bug Fixes
- 1f8a6bf fix(autoimport): auto-correct deleted status to tombstone for JSONL compatibility (#1231)
- f91bbf3 fix(build): add CGO build constraints for Dolt-dependent files
- b5178e1 fix(build): disable CGO for darwin builds in goreleaser
- 83e3c75 fix(ci): resolve lint errors and test failures
- 38af99f fix(config): improve cross-platform path handling and regex efficiency
- 065ca3d fix(config): remove duplicate declarations and fix test failures (#1160)
- 0335067 fix(config): restore sync.go with warning implementations
- 73d4d5e fix(create): validate explicit IDs against allowed_prefixes using starts-with matching (#1137)
- ba832c4 fix(daemon): Eliminate race condition in sync state load-modify-save (#1139)
- 8e40018 fix(daemon): Fix double-unlock risk in debouncer on action panic (#1140)
- bb4549a fix(daemon): allow read-only daemon commands with Dolt backend
- 0eb3dd0 fix(daemon): prevent stack overflow in handleStaleLock (#1238)
- 5264d7a fix(daemon): prevent zombie state after database file replacement (#1213)
- 460d2bf fix(doctor): improve diagnostic fix message output (#1187)
- 3824aba fix(dolt): enforce single-process mode (disable daemon/autostart) (#1221)
- 2cc9619 fix(dolt): parse timestamps from TEXT columns instead of direct time.Time scan
- ea51c4b fix(federation): add configurable ports, password support, fix log leak
- 8807a17 fix(federation): allow daemon mode with --federation flag for dolt
- cf6356b fix(init): error when redirect target already has database
- abd3feb fix(lint): check error return from provider.Close() (#1250)
- 0877e14 fix(list): stabilize tree ordering for consistent --tree output (#1228)
- 97d4b17 fix(migrate): address code review issues in Dolt migration
- 3daec76 fix(nix): bake shell completions into default package (#1229)
- c11fa79 fix(orphans): honor --db flag for cross-repo orphan detection (#1200)
- 0b6df19 fix(ready): exclude molecule steps from bd ready by default (#1246)
- d41fb30 fix(redirect): follow redirect when creating database (GH#bd-0qel)
- be306b6 fix(routing): auto-enable hydration and flush JSONL after routed create (#1251)
- 4ccdd7a fix(routing): close original store before replacing with target store (#1215)
- f4ee7ee fix(routing): default to Maintainer when no git remote exists (#1185)
- 228d78c fix(routing): disable auto-routing by default (#1177)
- 8242642 fix(sqlite): Add missing rows.Err() checks after row iteration (#1141)
- 4fffdb7 fix(sqlite): add missing agent fields to scanIssues and related queries (#1176)
- 458fb71 fix(sqlite): handle text timestamps in scan for cross-driver compatibility
- 4bc0b69 fix(staleness): skip auto-import when store is read-only (GH#1089)
- 6a4a617 fix(sync): add --sparse flag to git add for worktree compatibility (#1143)
- 80cd1f3 fix(sync): address code review issues in manual conflict resolution
- f336e66 fix(sync): use sync-branch worktree for --full --no-pull (#1183)
- 1f59119 fix(sync): use town-level routes for prefix validation
- 9ed74ca fix(types): show custom types when daemon is running (#1216)
- c8ffcce fix(validation): accept prefix when it's a prefix of allowed entry (GH#1135)
- f713495 fix(worktree): correct redirect path computation in bd worktree create (#1217)
- 2cbf3a5 fix: Validate sync-branch at config-time and runtime (closes #1166) (#1168)
- b63e7b8 fix: auto-route create with explicit ID to correct database
- b7242a6 fix: load types.custom from config.yaml during init auto-import (GH#1225) (#1226)
- b09aee3 fix: set git index flags on init when sync-branch is configured (#1158)
Others
- d3ccd5c Fix Dolt backend init/daemon/doctor; prevent accidental SQLite artifacts; add integration tests; clean up lint (#1218)
- 47a31a3 /cmd/bd/daemon.go: remove debug logging
- 4e386c8 /cmd/bd/doctor/integrity.go: fix unable to query issues bug with dolt backend
- 01fa2d9 /cmd/bd/federation.go: fix windows build issue again
- 0a9bcc2 /internal/importer/importer_test.go: remove skipped tests
- 7670112 /internal/storage/dolt: fix windows build issue
- 7ed6849 /{cmd,docs,internal,website}: make dolt backend explicitly single process
- b849f59 /{cmd,docs,internal}: support import export for dolt backends
- a097fc5 /{cmd,internal}: fix lint issues
- ba43284 /{cmd,internal}: get dolt backend init working and allow issue creation
- 422bc83 /{website,internal,docs,cmd}: integration tests and more split backend fixes
- 09355ee Add --gastown flag to bd doctor for gastown-specific checks (#1162)
- 46b1678 Add
.direnvfolder to.gitignore(#1248) - e74cab8 Fix CI failures (bd 1zo sandbox tests) (#1244)
- 34b741d Fix doctor DB-JSONL sync check to exclude ephemeral wisps (#1144)
- aa3b318 Fix issue-prefix config fallback to config.yaml (GH#1145) (#1146)
- 1676f0d Merge origin/main into db/fix-2 (resolve conflicts)
- 8da7f27 docs(design): add KV store design for Dolt team review
- ef162a9 fix(GH#1224): detect Docker Desktop bind mounts in WSL2 and disable WAL mode
- 521239c refactor(config): improve sync config with warnings toggle and dedup
- 5d68e6b refactor(hook): simplify export state logic, add tests
- 4b2d179 refactor(hooks): consolidate duplicate JSONL file lists into shared constant
- 2a56aab refactor(storage): move LocalProvider to internal/storage package
- 7cf6715 refactor(types): remove Gas Town type constants from beads core (bd-w2zz4)
- cb46db6 refactor(types): use strings.Contains in federation tests
- a0dac11 refactor: reduce cyclomatic complexity in repair.go and config_values.go (#1214)
- de73002 test(dolt): add hub+spokes multi-clone integration tests