beads v0.56.1
Pre-compiled binaries for Linux, macOS (Intel & Apple Silicon), Windows (AMD64 & ARM64), Android/Termux (ARM64), and FreeBSD.
Installation
Homebrew (macOS/Linux):
brew install beadsQuick 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
- 8561884 feat(cook): support standalone expansion formula execution in bd mol wisp (#1903)
- 1d4ff86 feat(import): add --skip-prefix-validation flag for legacy data migration
- 0c2d95c feat(metadata): add human-readable metadata visibility to bd show and bd list --long (#1905)
- 6e4ad9b feat(otel): opt-in OpenTelemetry instrumentation (#1940)
- f383ce3 feat(setup): add Mux setup recipe with layered AGENTS and managed hooks
- b2f7cc3 feat(storage): add sentinel errors ErrNotFound, ErrNotInitialized, ErrPrefixMismatch
- 32a3bba feat: add SIGTERM/SIGHUP batch commit flush and improve commit messages
- 836835d feat: add batch auto-commit mode for Dolt to reduce commit bloat
- f06c280 feat: add bd migrate wisps command for SQLite-to-Dolt ephemeral data migration
- 8244818 feat: add commit message parameter to RunInTransaction for Dolt history
- b13720d feat: add dolt_ignore patterns and create wisps table (bd-f6b62)
- 1ade634 feat: drop dolthub/driver dependency — binary size 168MB → 41MB
- 87d49a6 feat: embed AGENTS.md templates with embed.FS and add --agents-template flag
- 00e802f feat: make metadata queryable from bd list, bd search, and bd query (#1908)
- c4010c1 feat: remove CGO build-tag bifurcation for dolt commands
- ec62bc3 feat: remove SQLite ephemeral store code and dependencies
- 8e5710b feat: remove embedded Dolt mode from doctor checks (server-only)
- e2e3410 feat: remove embedded Dolt mode from init and main command paths
- 630e102 feat: route wisp CRUD to dolt_ignored wisps table, remove SQLite ephemeral store
- 00f546f feat: transaction isolation, retry, and batch wrapping for Dolt concurrency
Bug Fixes
- 7269df8 fix(cook): make cookFormula atomic — single transaction for issues, labels, deps
- e751888 fix(cook): propagate cross-expansion dependencies to expanded steps
- 129e973 fix(dep): populate ParentID in dependency tree and show [BLOCKED] for root
- 8f11f7d fix(deps): update dependency fastmcp to v3 (#1991)
- effebb1 fix(deps): update dependency pydantic-settings to v2.13.1 (#1985)
- c926c03 fix(deps): update module github.com/anthropics/anthropic-sdk-go to v1.26.0 (#1986)
- 77a07f2 fix(doctor): check configured backend, not directory presence, for SQLite artifacts
- 620233d fix(doctor): exclude external: deps from orphaned dependency check (#1593)
- a0a076c fix(doctor): include database param in embedded connection string (#1924)
- a3267ee fix(doctor): pass configured db name to remaining dolt.New() call sites
- 6c6a93c fix(doctor): run Dolt health checks before federation checks (#1925)
- 59c5db3 fix(doctor): use configured database name in federation checks (#1904)
- ae4a5bb fix(dolt): add ~15 missing filter fields to searchWisps for parity with SearchIssues
- 71b0106 fix(dolt): always apply server connection defaults in applyConfigDefaults
- 583ed3b fix(dolt): commit writes via execContext when server runs with --no-auto-commit
- f6d788f fix(dolt): normalize metadata and waiters in UpdateIssue
- 0b23adc fix(dolt): persist labels, comments, and deps during batch import
- 960dee4 fix(dolt): preserve ORDER BY in scanIssueIDs results
- 09a1d50 fix(dolt): re-init schema after branch checkout for untracked tables
- 94d8607 fix(hooks): use 'bd hooks run' instead of nonexistent 'bd hook' in init hook body
- a7e1203 fix(hooks): use bd hooks run instead of nonexistent bd hook in shim templates
- da93dbb fix(jira): use correct API v3 /search/jql endpoint
- 373a365 fix(lint): resolve 4 golangci-lint violations in queries.go and wisps.go
- 2bcca39 fix(list): separate parent-child deps from blocking deps in bd list
- d54a663 fix(mcp): sanitize raw dependency records before Pydantic validation
- 2814016 fix(mol): auto-close wisp root after squash (#1898)
- dc715bd fix(plugin): correct inverted bd dep add argument order in docs
- 5916bf4 fix(queries): add nil guard in GetBlockedIssues and GetEpicsEligibleForClosure
- b4489d1 fix(ready): pass --parent filter to GetReadyWork/GetBlockedIssues and propagate blocked status to children (GH#2009, GH#1495)
- 4bdbba9 fix(ready): respect SortPolicy and preserve result ordering (#1883)
- 55f06f9 fix(release): prevent non-CGO bd binaries from shipping (#1870)
- 48bfaaa fix(release): remove verify-cgo hook from CGO_ENABLED=0 builds
- e7d0d93 fix(test): isolate regression tests from production Dolt server
- 25cfad9 fix(test): use dynamic port in ServerModeFailsWithoutServer test
- 6219b86 fix: CI formatting, lint, and test failures blocking release
- 9b745dc fix: add DOLT_COMMIT to CRUD operations and fix transaction safety
- 8380155 fix: add Limit to wisp gc/list SearchIssues to prevent OOM
- fba7dd8 fix: add promoted wisp fallback routing and fix PromoteFromEphemeral
- b0c8abf fix: add routing transaction for ephemeral store (bd-3wi7r5)
- 3631aba fix: bd list --limit applies after --sort, trim whitespace in edit (GH#1237, GH#1234)
- ff29346 fix: consolidate single-entry changelog versions to fix TestVersionChangesCoverage
- 3790768 fix: correct help text, dead code in markdown parser, stale cgo build tags
- da8a1bf fix: doctor lock false positive and stale bd sync references (GH#1981, GH#2007)
- 95234e9 fix: early CGO detection with clear error for non-CGO binaries
- 713a03a fix: ephemeral store read routing — beads created with --ephemeral now queryable
- 6ccb0b2 fix: ephemeral store routing gaps (bd-h3hhu0, bd-n8tbnx, bd-hoio75)
- 34fa288 fix: gofmt alignment on cache fields in DoltStore struct
- 00d8d84 fix: gofmt formatting and doctor test expectation for auto-initialized dolt
- d10ae6f fix: guard issue_prefix SetConfig to prevent clobber when rigs share a Dolt database
- 6dce2f6 fix: handle "nothing to commit" race in CommitPending
- e4c7a3b fix: handle error return from hash.Write to satisfy gosec G104
- 200c1d2 fix: hydrate labels in getWispsByIDs for search results
- 70f251d fix: isolate dolt package tests from production server (test-ckvw)
- 2e425d0 fix: isolate test suite from production Dolt server (bd-2lf6)
- 41a64b6 fix: make bond spawn+attach and squash operations atomic (bd-wvplu, bd-4kgbq)
- 6c724d1 fix: remove dead openDoltDB function, fix stale embedded-mode message
- f2c7d03 fix: remove stale --from-main flag from prime.go session prompts
- bd68c87 fix: remove stale embedded Dolt references after server-only migration
- 362608a fix: repair all cmd/bd tests broken by embedded Dolt removal (bd-9z7pf)
- 625aeb2 fix: repo sync cross-prefix hydration and close guard consistency (GH#1945, GH#1524)
- 0884c41 fix: resolve CI lint, format, and flaky test warnings
- 5500634 fix: restore .beads/issues.jsonl.new accidentally deleted in rebase
- f549c7f fix: route store-level event/comment methods to wisp tables for ephemeral IDs
- 8c21783 fix: update version tests to handle bool cgo field
- bb45e6c fix: use flock probe instead of file existence for noms LOCK health check (#1960)
- 2480e7c fix: waits-for readiness in bd ready and molecule analysis (#1900)
- ae79364 fix: wisp code cleanup — dead code, stale comments, minor bugs
Others
- 5d1304a Add renovate.json
- 111c81d Merge polecat/obsidian/bd-a15sp: route wisp CRUD to dolt_ignored wisps table
- c210d42 Merge polecat/obsidian/bd-bsyux: batch DML auto-commit mode for Dolt
- 9ff61c7 Merge polecat/quartz/bd-b2llu: add bd migrate wisps command for SQLite-to-Dolt migration
- 4c95f1a Merge polecat/quartz/bd-jz0hz: hydrate labels in getWispsByIDs for search results
- 7dd5d74 Merge remote-tracking branch 'origin/polecat/obsidian/bd-hbivw@mlx34nhi'
- 7180470 Merge remote-tracking branch 'origin/polecat/quartz/bd-vzcxz@mlx3568g'
- afbf65f chore(deps): update dependency node to v24 (#1987)
- dffd5d9 chore(deps): update dependency typescript to ~5.9.0 (#1974)
- f63c2b4 chore(deps): update goreleaser/goreleaser-action action to v7 (#1988)
- 071237c chore(deps): update mcr.microsoft.com/devcontainers/go docker tag to v2 (#1990)
- 3c54cf1 chore(deps): update python docker tag to v3.14
- 96c096b doctor: make deep validation backend-aware
- caf805d merge: sync with origin/main (refactor remove embedded-mode artifacts)
- bfc49fe perf(dolt): batch N+1 queries, per-invocation caching, sentinel errors (#1874)
- 90c8758 perf(tests): consolidate cmd/bd test suites to shared DB pattern (bd-1rh)
- d00aea5 perf(tests): consolidate template_test.go to shared DB pattern (bd-1rh)
- e43b491 perf(tests): optimize doctor test suite — 89s to 28s (bd-ktng)
- dc5ff70 perf(tests): replace direct git init with newGitRepo template in init_test.go, consolidate template_test.go (bd-ktng)
- da14834 perf(tests): tag import_prefix E2E test as integration (bd-1rh)
- 6911eea refactor(bootstrap): remove JSONL bootstrap, Dolt clone only (gt-vemg9q.1)
- 18522ec refactor(config): deprecate git-portable/belt-and-suspenders sync modes (gt-vemg9q.5)
- d93ab35 refactor(doctor): remove JSONL recovery paths from bd doctor (gt-vemg9q.3)
- 53e9f8c refactor(dolt): remove embedded mode, server-only operation
- 9abb7dd refactor(dolt): remove vestigial embedded-mode artifacts
- 1e1568f refactor(jsonl): remove JSONL plumbing — Dolt-native only (gt-vemg9q Phase 1)
- 01500d7 refactor(jsonl): remove cross-rig JSONL flush from create and rename-prefix (gt-vemg9q.4)
- 5446702 refactor(restore): replace JSONL git history with dolt_history_ tables (gt-vemg9q.2)
- 34fa1c1 refactor(sync): make bd sync a deprecated no-op, update agent instructions
- 9da9039 refactor: remove JSONL fork protection (dead code after Dolt migration)
- 4766a4f refactor: remove embedded Dolt server code entirely
- 4102096 refactor: standardize error handling with FatalError wrappers (bd-qioh)
- 41e47e1 refactor: standardize error handling with FatalError wrappers (bd-qioh)
- 0d72b10 refactor: unify tx-path scanner/insert to use full column set (PR #1872)
- 05ebce9 style: gofmt cmd/bd/dep_test.go and import_prefix_test.go
- 5aef09b test(dolt): add SQLite-backed unit tests for execContext and getAdaptiveIDLength
- f456a26 test(regression): Dolt migration regression discovery (long-lived branch) (#1906)