github steveyegge/beads v0.57.0

5 hours ago

beads v0.57.0

Pre-compiled binaries for Linux, macOS (Intel & Apple Silicon), Windows (AMD64 & ARM64), Android/Termux (ARM64), and FreeBSD.

Installation

Homebrew (macOS/Linux):

brew install beads

Quick Install (macOS/Linux/FreeBSD):

curl -sSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash

Windows (PowerShell):

irm https://raw.githubusercontent.com/steveyegge/beads/main/install.ps1 | iex

Manual Install:
Download the appropriate binary for your platform below, extract it, and place it in your PATH.

Changelog

Features

  • 94b699c Merge PR #1995: feat: allow per-worktree .beads/redirect to override main repo
  • f6b04f7 Merge PR #1996: feat(query): add has_metadata_key to bd query DSL
  • 24e12a3 Merge PR #2088: feat: Add the option to use the Jira V2 api
  • 21ca845 Merge PR #2143: feat: add dolt-data-dir config for custom dolt data directory
  • a9ca7b7 Merge PR #2178: feat(dolt): SSH push/pull fallback + dual-surface remote management
  • feb8a00 Merge PR #2221: feat: phase 1 hook census and migration planning (#2217)
  • e688ea7 feat(backup): add 'bd backup restore' command to bootstrap from JSONL backup
  • d821109 feat(backup): add JSONL backup command and auto-backup support
  • 051a43d feat(backup): auto-enable JSONL backup when git remote exists
  • 84c9540 feat(cli): add --comment alias for bd close, --yes/-y alias for bd mol burn
  • a3dd653 feat(cli): show titles in command feedback (GH#1384)
  • 573bdd1 feat(dolt): add 'bd dolt remote' subcommands (add/list/remove)
  • f710909 feat(dolt): auto-push to Dolt remote with 5-minute debounce
  • 20516a4 feat(dolt): dual-surface remote management (SQL + CLI)
  • a30e02a feat(init): add --database flag to configure existing server database (#2102)
  • 8cc0874 feat(init): wire sync.git-remote config into bd init for auto-bootstrap
  • 9a2eea8 feat(labels): inherit parent labels on child creation
  • e17d73a feat(linear): add Project sync support
  • 3a86e9f feat(mcp): add dedicated claim tool for atomic start-work (#2071)
  • 5f0b3be feat(protocol): lane 6 — 10 new protocol invariant tests
  • 74ffe23 feat(ready): add metadata filtering to bd ready (GH#1406)
  • 5fd7fe3 feat(regression): replace bd export with snapshot harness (list+show)
  • 0467fb0 feat(test): parallelize dolt storage tests for 3.5x speedup (bd-5ua)
  • 801965a feat(test): parallelize protocol tests for 3x speedup (bd-dgp)
  • 11f5f43 feat(testutil): branch-per-test isolation for dolt, tracker, molecules (L2)
  • 982164a feat(testutil): reuse existing Dolt server via BEADS_DOLT_PORT (L1)
  • 82a5f89 feat(testutil): server crash detection + doctor branch-per-test (L2)
  • dcf5c22 feat(update): add --set-metadata and --unset-metadata flags (GH#1406)
  • ef4c996 feat(wisp): add --root-only flag to bd mol wisp create
  • 1c6f373 feat: add --metadata flag to bd create (GH#1406)
  • 0ed2e1a feat: add .dolt/ and *.db to project .gitignore on bd init (GH#2034)
  • 6abc586 feat: add PreToolUse hook to block interactive cp/mv/rm prompts (bd-tm2p)
  • bd3fb06 feat: add ResetTestBranch and migrate tests to shared server + branch-per-test (bd-tk8y)
  • fecf282 feat: add bd backup init/sync for Dolt-native backups (bd-zafu)
  • 8d5e3ef feat: add bd doctor --agent mode for AI agent diagnostics (bd-6ud)
  • 6157920 feat: add bd dolt start/stop commands for server lifecycle management (bd-rbzi)
  • 97ae54d feat: add bd export command for JSONL backup (bd-xav)
  • 5e0e83a feat: add bd gc, bd compact, bd flatten for standalone Beads lifecycle (bd-kzn)
  • 0cb7936 feat: add circuit breaker for Dolt server connections (bd-05an)
  • 7228991 feat: add dolt-data-dir config for custom dolt data directory
  • 9457158 feat: add has_metadata_key to bd query DSL
  • eafff36 feat: add hk (hk.jdx.dev) as supported git hook manager
  • dfd9b56 feat: add hook migration census + doctor signal (bd-w4x.1, #2217)
  • 02197ee feat: add stale database detection to bd doctor and bd dolt clean-databases
  • c402711 feat: add staleness check for read-only commands against JSONL (bd-2q6d)
  • 1dcaa50 feat: allow per-worktree .beads/redirect to override main repo .beads
  • dab2a20 feat: apply error wrapping to remaining bare returns in dolt storage (bd-bwk2)
  • 24ed5a3 feat: auto-migrate SQLite to Dolt on first bd command (bd-3dx)
  • 13a8daa feat: auto-migration shim: SQLite to Dolt via sqlite3 CLI (bd--3y8)
  • 4fd1f6e feat: auto-push to git remote after Dolt commits
  • 7dafce0 feat: auto-update stale hooks during bd init (GH#1466) (#2008)
  • 06eff8a feat: centralize error handling in dolt storage layer (bd-bwk2)
  • 580e7db feat: complete branch-per-test migration with dolt reset --hard (bd-tk8y)
  • 00aa5dc feat: config-driven metadata schema enforcement (GH#1416 Phase 2) (#2027)
  • 8e22d27 feat: make IsInfraType config-driven via types.infra (bd-39c)
  • 1fda04c feat: port collision fallback, idle monitor, and crash watchdog for Dolt server (test-hqvv5t, test-n99ihy)
  • 9d64fc1 feat: route infra beads (agent/rig/role/message) to dolt-ignored wisps table
  • 893f6fc feat: self-managing Dolt server for standalone users (GH#2049, GH#2050)
  • 87f3286 feat: support issue_id_mode=counter for sequential IDs (#2013)
  • 1b56f58 feat: use section markers for git hooks (GH#1380)

Bug Fixes

  • 807091e Merge PR #1893: fix: resolve pre-existing CI failures (fmt-check, tests, lint)
  • b3d2535 Merge PR #2005: fix(deps): update opentelemetry-go monorepo to v1.40.0
  • 21e52ef Merge PR #2044: fix: add missing columns to SQLite-to-Dolt migration INSERT
  • e0417d4 Merge PR #2067: fix: follow-up to GH#2002 counter-mode review
  • 0ff6443 Merge PR #2105: fix: unify hook outdated detection
  • d6f2266 Merge PR #2106: fix(routing): check local store before prefix routing
  • 4044dc1 Merge PR #2107: fix(test): clean orphaned temp dirs for all test server prefixes
  • f70dce8 Merge PR #2108: fix(storage): batch SQL IN-clause queries to prevent query explosion
  • 373149d Merge PR #2114: fix: use doltserver.DefaultConfig for port resolution
  • 088d9bf Merge PR #2116: fix: suppress git upstream warning for repos with no remotes
  • b8d9e0a Merge PR #2119: fix(migrate): skip auto-migration when backend is already Dolt
  • 2bb4cc6 Merge PR #2120: fix(doctor): auto-import JSONL issues on fresh clone migration
  • f165654 Merge PR #2124: fix(doctor): create dolt marker directory after store creation
  • a138db4 Merge PR #2135: fix(dolt): reset AUTO_INCREMENT after DOLT_PULL
  • 4dd4b9b Merge PR #2144: fix(linear): include stateId in push updates to sync status changes
  • 0b0586f Merge PR #2147: fix: sanitize hyphens to underscores in dolt_database name
  • 6af5f5a Merge PR #2148: fix: doctor checks now use hash-derived port instead of hardcoded 3307
  • e5647f7 Merge PR #2150: fix: escape # in SQLite URI paths to prevent truncation
  • f2e0284 Merge PR #2151: fix(dep): traverse blocks-type edges in dep tree and graph
  • 4ab9d55 Merge PR #2152: fix(init): stealth mode no longer creates Claude-specific settings
  • d0c3e98 Merge PR #2153: fix: honor BEADS_DOLT_SERVER_PORT and BEADS_DOLT_SERVER_HOST in store
  • 4b816c7 Merge PR #2171: fix: handle Windows connectex syscall in verifyServerTarget ECONNREFUSED check
  • 72b7847 Merge PR #2173: fix(testutil): eliminate port allocation race with flock-based coordination
  • cc18b0f Merge PR #2180: fix: use derived port in migrate_shim and init instead of hardcoded 3307
  • a115892 Merge PR #2194: fix(doctor): clean cruft in redirect-expected dirs even without redirect file
  • be4c5ae fix(ci): resolve baseline windows, lint, and fmt failures
  • 16ff6fc fix(ci): resolve baseline windows, lint, and fmt failures (#2069)
  • 322a084 fix(create): commit post-create metadata (deps, labels) to Dolt (GH#2009) (#2055)
  • facc13a fix(dep): traverse blocks-type edges in dep tree and graph commands
  • ebf78eb fix(deps): update opentelemetry-go monorepo to v1.40.0
  • 2e8d77e fix(deps): update react monorepo to v19
  • d9a5a72 fix(doctor): auto-import JSONL issues on fresh clone migration
  • 08fc8ec fix(doctor): clean cruft in redirect-expected dirs even without redirect file
  • 7e29605 fix(doctor): eliminate false warnings after clean-room bd init
  • 76b0cc7 fix(doctor): exclude wisp tables from Dolt Status/Locks warnings (GH#2079)
  • 5eccd6b fix(doctor): follow redirect when fixing outdated .beads/.gitignore (#2078)
  • 1172880 fix(doctor): gracefully handle non-git-repo in fingerprint and role checks
  • fdb45f5 fix(doctor): gracefully handle non-git-repo in fingerprint and role checks
  • 5a6a3cc fix(doctor): migrate maintenance checks to Dolt for #2101
  • 42ae193 fix(doctor): re-run diagnostics after --fix to show fresh verification results
  • 1fddfbd fix(doctor): remove 3307 fallback in test port helpers
  • 8db0cd1 fix(doctor): remove unused cfg param, warn when SQL unreachable
  • 9be692e fix(doctor): respect dolt_data_dir config in all doctor checks
  • 5aa2ae6 fix(doctor): skip upstream warning when no git remotes exist
  • 362d82b fix(doctor): suppress expected .beads/ deletions in redirect worktrees (#2080)
  • 3d62376 fix(doctor): use configured server port in federation checks
  • 9e8567a fix(doctor): use configured server port in federation checks
  • ee03bcf fix(doctor): use correct beadsDir path in fix/remotes.go
  • 2f665cc fix(doctor): use doltserver.DefaultConfig for port resolution in openDoltDB
  • b302296 fix(dolt): BEADS_DOLT_PORT always overrides config port (env > config)
  • a10e9d1 fix(dolt): add connection timeouts to prevent agent hangs
  • a045d08 fix(dolt): commit SQL transaction when DOLT_COMMIT finds nothing to commit
  • 7c5d984 fix(dolt): commit SQL tx before DOLT_COMMIT to persist wisp data (hq-3paz0m)
  • 03322a5 fix(dolt): filter dolt_ignore'd tables from CommitPending and batch message
  • b579751 fix(dolt): per-issue ephemeral routing in batch creation
  • a22da6f fix(dolt): remove auto-push from create and repo sync
  • b199a53 fix(dolt): reset AUTO_INCREMENT counters after DOLT_PULL
  • ef57293 fix(dolt): stop wisp ID double-prefixing and add wisp fallback to ResolvePartialID
  • 2b354ff fix(dolt): use CLI fallback for push/pull on SSH remotes (#2118)
  • 762acfa fix(doltserver): add filesystem heuristic fallback for Gas Town detection (#2076)
  • 9e46fa4 fix(doltserver): remove global process count guard from Start()
  • de7cb33 fix(graph): lift children to parent's layer in graph layout (GH#1748)
  • 1bb7c4f fix(init): sanitize auto-detected prefix for MySQL database names
  • 04a2848 fix(init): skip git/worktree guards when BEADS_DIR is explicitly set
  • 51ef157 fix(init): stealth mode no longer creates Claude-specific settings
  • 6a21757 fix(init): use prefix directly as database name instead of beads_ prefix
  • 5907658 fix(jira): log when no matching workflow transition is available
  • 0b95c75 fix(linear): correct Project sync issues from PR #2022
  • 622c852 fix(linear): include stateId in push updates to sync status changes
  • 0dc6bdb fix(lint): check AcceptanceCriteria field in LintIssue
  • 8c0c007 fix(lint): check AcceptanceCriteria field in LintIssue
  • f79111c fix(list): reparented child no longer appears under old parent
  • ff178e2 fix(migrate): deterministic SQLite->Dolt fidelity + dependency/comment preservation (#2125)
  • e37d0d8 fix(migrate): skip auto-migration when backend is already Dolt
  • 9fe4856 fix(queries): also fall through on empty wisps results for ephemeral filter
  • e10dbb9 fix(readiness): evaluate conditional-blocks deps in computeBlockedIDs()
  • a08f8ba fix(regression): improve test isolation and snapshot reliability
  • a5fa36c fix(regression): normalization for snapshot-based parity
  • 7e28581 fix(regression): set BEADS_DOLT_SERVER_PORT in test harness env
  • f14c29f fix(release): auto-publish Homebrew tap on release
  • 7bc8fe1 fix(release): use brews instead of homebrew_casks for formula publishing
  • 6b47996 fix(reopen): clear defer_until when reopening an issue (#2000)
  • 0812123 fix(routing): check local store before prefix routing to prevent write divergence
  • 68f35bf fix(storage): batch SQL IN-clause queries to prevent query explosion
  • f561e9f fix(storage): exclude reparented children from dotted-ID prefix matches
  • ffb09e6 fix(storage): find ephemeral beads with explicit IDs in single-bead lookups (GH#2053)
  • e9f63a3 fix(storage): prevent silent dependency type overwrites on dep add
  • 852bfe6 fix(test): TestShimExtract_FullMigration — remove explicit sqlite backend from test config
  • ef4c85c fix(test): add skipIfNoDolt guard to all init tests that need Dolt
  • 3499e3c fix(test): clean orphaned temp dirs for all test server prefixes
  • 51bb656 fix(test): comprehensive Dolt skip guards across all test files
  • f236701 fix(test): isolate regression tests from production Dolt server
  • c3fd341 fix(test): reduce unreachable_host dial timeout to prevent CI suite timeout
  • 191eed8 fix(test): skip Dolt-dependent tests when server not available
  • 6940075 fix(test): skip TestInitCommand when dolt not installed
  • da3b21e fix(tests): wrap raw SQL inserts in transactions and isolate env overrides
  • 0f7d7d2 fix(testutil): eliminate port allocation race with flock-based coordination
  • a180ade fix(testutil): move testServer var above function doc comment
  • a227207 fix: BEADS_TEST_MODE blocks production port even when BEADS_DOLT_PORT set
  • 68be32a fix: CI formatting, lint, and test failures blocking release
  • 880b60b fix: CleanStaleTestServers now removes orphaned temp dirs and legacy PID files
  • 2785358 fix: IsRunning() checks daemon PID file under Gas Town
  • 32504ad fix: Makefile build and install fail on Windows when Make uses cmd.exe
  • 63f4523 fix: StartTestDoltServer ignores production port when BEADS_TEST_MODE=1
  • 34a9c39 fix: Windows compatibility for doltserver package
  • b6ad8e7 fix: add .dolt/ to project .gitignore (#2081)
  • 3700441 fix: add Gas Town daemon guardrails to dolt server operations
  • 7122679 fix: add Gas Town guardrails to beads Dolt server management
  • 8f7480a fix: add backpressure to clean-databases to prevent server exhaustion
  • f489463 fix: add default values to wisps table NOT NULL TEXT columns (bd-5nn)
  • 442bf27 fix: add dolt.auto-start config check and BEADS_DOLT_AUTO_START=1 test
  • 1e33b31 fix: add field validation parity to createWisp (#2032)
  • 8643ae0 fix: add missing spec_id, wisp_type, metadata columns to migration INSERT
  • 93f3425 fix: add unique DB naming and cleanup to doctor test helpers (bd-cv9)
  • f7fd46a fix: address Copilot review — context timeout, nolint comment, version refs
  • f77aa17 fix: address Copilot round 3 — LIKE escaping, comment, symlink safety
  • ae182e4 fix: address review feedback on SSH push/pull fallback
  • da508e8 fix: allow bd dolt push/pull/commit to initialize store (GH#2042)
  • 195d169 fix: atomic counter increment + gitignore overhaul (GH#2067)
  • 75c5a36 fix: atomic counter increment, gofmt, lint, and Windows build
  • 76e01b2 fix: auto-clean stale Dolt noms LOCK files on bd startup (#2059)
  • 194093c fix: auto-close molecule root when all steps complete (#2200)
  • 1d3c9a7 fix: auto-migrate database version on CLI upgrade for all commands
  • 5f35dc7 fix: avoid SELECT * UNION that crashes Dolt on column count mismatch
  • 643e4e2 fix: avoid config migration side effect in ResolveDoltDir
  • 0e459ab fix: avoid redundant worktree gitignore entries
  • f417eed fix: bd init --stealth sets no-git-ops: true in config (GH#2159)
  • 4394fdc fix: centralize hardcoded "beads" database defaults to configfile.DefaultDoltDatabase (bd-tcn)
  • a59b368 fix: clean up pre-existing phantom DBs in tests expecting StatusOK (bd-8we)
  • fe30a71 fix: clean up stale jsonl_export references in test files (bd-9ni.3)
  • d510a7f fix: complete explicit-ID ephemeral routing across all storage layers (GH#2053)
  • 301952a fix: connect directly to Dolt server in clean-databases command
  • f473b75 fix: counter mode parity for transaction path, remove dead code (#2013 follow-up)
  • a87b410 fix: create dolt marker directory after store creation in doctor --fix
  • a1933f7 fix: deduplicate worktree redirect logic from PR #1995 followup
  • 651bb13 fix: doctor and fix tests now use isolated dolt server
  • 2c206f1 fix: doctor checks use hash-derived port instead of hardcoded 3307
  • 56f4c98 fix: doctor phantom detection and INFORMATION_SCHEMA crash (#2091) (#2093)
  • fd6f9bd fix: doctor validate checks use server config for Dolt connections (bd--9w6)
  • 6df4a28 fix: enable Dolt auto-start in NewFromConfigWithOptions
  • 15e2a26 fix: escape '#' in SQLite URI paths to prevent truncation
  • b21ec9e fix: exclude zombie/defunct processes from isDoltProcess checks
  • d220955 fix: exit non-zero when all close/update attempts fail (GH#2014)
  • 228dc21 fix: expand stale database prefixes and fix per-op timeout in clean-databases
  • 6dce899 fix: export events.jsonl with full re-export instead of incremental append (bd-qnd)
  • 299dd0d fix: fall through to issues table when wisps table missing
  • 408333f fix: firewall test databases from production Dolt server (Clown Shows #12-#18)
  • 7fd9595 fix: fix comment wording and honor caller precedence over config.yaml
  • 9a6a860 fix: fix server adoption in dolt anti-proliferation guardrails
  • b68d555 fix: flush Dolt working set before server stop to prevent data loss
  • c8c4ab6 fix: gofmt alignment in bd doctor agent mode
  • 63418ae fix: guard CREATE DATABASE to prevent shadow databases on wrong server
  • 8362ddf fix: handle NULL created_by in issue scan to prevent bd duplicates crash
  • 52eaa35 fix: handle Windows connectex syscall in verifyServerTarget ECONNREFUSED check
  • 49aed46 fix: harden SQLite→Dolt migration safety, old-schema compat, and doctor recovery (#2156)
  • 5022da9 fix: harden migration safety — verify DB target, deduplicate, spot-check data
  • 70c2b0b fix: harden test dolt server startup with retry loop and longer timeout
  • 9c903d0 fix: honor BEADS_DOLT_SERVER_PORT and BEADS_DOLT_SERVER_HOST in store connection
  • ea8e9c8 fix: honor caller AutoStart value and add test coverage
  • 21601cf fix: ignore unhandled conn.Close() error in migrate_safety
  • d81badd fix: include labels, deps, and parent in bd ready --json output (bd-xgso)
  • 6704274 fix: include waits-for deps in bd blocked output (GH#2043)
  • fbe10e5 fix: increase TestRun_Async polling timeout to 10s (bd-ldi)
  • e447ab2 fix: isolate id_parser_test.go from shared Dolt server (bd-19i)
  • 3a0e582 fix: isolate protocol tests with unique per-test Dolt databases
  • 2e1df31 fix: make Commit() tolerate 'nothing to commit' like other Dolt operations
  • 4891d87 fix: make migration 007 resilient to schema evolution differences
  • 045b627 fix: migration port mismatch and UX improvements for Windows migration path
  • e95a07f fix: move syncCommandContext() before staleness check so --allow-stale works (bd-f49)
  • 37e428d fix: normalize issue_prefix in transaction and import paths to prevent double-hyphen IDs
  • d99ad71 fix: normalize issue_prefix to prevent double-hyphen bead IDs
  • eb84f6f fix: one dolt server per town, not per worktree
  • 63e14d9 fix: optimize JSONL import memory usage and emptiness check
  • 8f260f0 fix: panic if BEADS_TEST_MODE=1 without BEADS_DOLT_PORT (bd-zt7)
  • a388c3e fix: prevent OSC escape leaks in git hooks, detect stale hooks in doctor (GH#1303, GH#1466)
  • 9746220 fix: prevent closed-store panics and consolidate test suites (bd-1rh)
  • 59898e8 fix: prevent storage/dolt tests from hitting production Dolt server
  • 376122b fix: prevent test suite from leaking databases onto production Dolt server (#2089)
  • efdd6f7 fix: prevent tests from connecting to prod Dolt server
  • 2b1d84d fix: propagate notes field from formula steps to issues (#2155)
  • 83a02d8 fix: protocol tests now use isolated Dolt server instead of prod
  • 2b83768 fix: read dolt.auto-start from beadsDir for library consumers; harden tests
  • fae207e fix: reject empty and whitespace-only comment text
  • d3e581b fix: reject empty and whitespace-only comment text
  • 13190ef fix: reject empty title and empty label on update/label add (GH#1994)
  • 83b3991 fix: reject flag-like positional args in bd create (bd-2c0)
  • c9fabf2 fix: reject non-positive --days flag on bd stale
  • 9b995e3 fix: reject non-positive --days flag on bd stale
  • 9dfac4f fix: remove JSONL gitignore rules, merge driver, and issues tracking check (bd-9ni.6)
  • b69ae5b fix: remove JSONL references from core Go files (bd-9ni.2)
  • c980b96 fix: remove JSONL storage functions and config field (bd-9ni.2)
  • 8569471 fix: remove dead JSONL converter examples (bd-9ni.5)
  • e79f9a1 fix: remove dead probeStale code, deduplicate noms LOCK cleanup (#2059 follow-up)
  • e2375da fix: remove extra arg from formatHookMigrationPlan test calls (bd-ddn)
  • adb8e76 fix: remove operational constants from defaultConfig in schema.go (bd-1lc)
  • f625c95 fix: remove redundant tx.Commit() after DOLT_COMMIT in transactions
  • befc254 fix: remove stale bd export/sync references from prime output (GH#2007)
  • 5d9788a fix: remove stale stderr assertion in TestInitDoltMetadataNoGit
  • eb451c3 fix: remove unused hasRedirect param from scanCruftBeadsDir
  • 1f8cb03 fix: remove unused hasRedirect parameter from scanCruftBeadsDir
  • 5002b08 fix: remove unused hasRedirect parameter from scanCruftBeadsDir
  • 27680fa fix: repair migrations_test.go for modern dolt versions
  • ea329d1 fix: replace SHOW DATABASES LIKE with exact-match iteration
  • 1afd815 fix: replace deprecated GetDoltServerPort() with doltserver.DefaultConfig()
  • 162ab27 fix: replace information_schema queries with SHOW COLUMNS/TABLES to avoid stale catalog crashes (bd-ggnx)
  • aadef18 fix: replace port-fallback with kill-before-start to prevent server proliferation
  • 2276c5f fix: report correct status when reopen/undefer is a no-op (GH#2037)
  • 041b74b fix: resolve CI failures on main (6 tests, formatting)
  • 18e70e1 fix: resolve beadsDir correctly when dolt-data-dir is set
  • f44d580 fix: resolve gofmt alignment and errcheck lint warnings
  • 5a07c92 fix: resolve gofmt alignment and gosec lint issues blocking CI
  • fb8ca5f fix: resolve gofmt and golangci-lint CI failures
  • 42cd5db fix: resolve gofmt struct field alignment in git_test.go
  • 523ac14 fix: resolve lint errors (unparam, errcheck)
  • c879f33 fix: resolve lint errors blocking all CI (gosec G304, unused param)
  • 7ad29a0 fix: resolve lint issues in hook migration planner
  • 162707e fix: resolve pre-existing CI failures (gt-ngoe)
  • fd21fa4 fix: restore bd init --from-jsonl for server mode (bd-phzy)
  • c3d011a fix: restore sandbox guard in maybeAutoPush (#2192)
  • dfcca9b fix: revert FindBeadsDir in PersistentPreRun to fix test guard
  • 65858d6 fix: revert scanIssueFrom wrapping to preserve sql.ErrNoRows chain (bd-bwk2)
  • d741172 fix: rewrite GetNewlyUnblockedByClose to avoid nested JOIN subquery (bd-o23)
  • 2345c82 fix: rewrite protocol tests to use bd show --json instead of deleted bd export
  • 3f147b6 fix: root package tests now use isolated dolt server
  • b76276f fix: route auto-backup queries through retry-wrapped DoltStore methods
  • 07e98f1 fix: route promoted wisps to issues table in partitionByWispStatus (bd-ftc)
  • 838b79b fix: route wisp lookups through wisps table in storage functions (bd-w2w)
  • 70424e4 fix: sanitize hyphens to underscores in dolt_database name (GH#2142)
  • 781f1c9 fix: sanitize prefix hyphens to underscores for SQL database name (bd-qy0)
  • 87fba0c fix: set BEADS_TEST_MODE=1 in all test server setups for DB isolation
  • 987c227 fix: skip gt dolt start fallback in test mode (bd-kyu)
  • 7a75f1f fix: skip local-first check in routing when prefix maps to different database (bd-7vk)
  • 7cb0e0f fix: skip maybeAutoPush on read-only commands (GH#2191)
  • 612b370 fix: suppress git upstream warning for repos with no remotes
  • 68e224f fix: unexport DefaultInfraTypes to prevent mutation inconsistency (#2193)
  • 59ff8d9 fix: unify hook outdated detection between CheckGitHooks and hooksNeedUpdate
  • c48f544 fix: update stale SQLite comments in doctor package (bd-516)
  • d19a3a1 fix: update stale SQLite error messages in perf_dolt.go (bd-gv7)
  • 07e60f1 fix: update test fixture to use backend instead of sqlite_version (bd-veh)
  • 18fe2cf fix: update test to match AddDependency type-change rejection (bd-7z5)
  • ba08e97 fix: update version scripts for section markers, suppress unused param lint
  • d78d0f1 fix: use NOT IN exclusion for active status checks so custom statuses are visible (bd-1x0)
  • 7ea3b7d fix: use derived port in migrate_shim and init instead of hardcoded 3307
  • 046fa03 fix: use doltserver.DefaultConfig for port resolution across codebase (#2112)
  • 62e9485 fix: use net.JoinHostPort for IPv6-safe address formatting (bd-0tn)
  • 2ff387b fix: use repo-relative paths in backup git operations, add findGitRoot tests
  • 44fd610 fix: use types.StatusClosed constant and config-driven thresholds in compact.go (bd-17p)
  • 6254803 fix: use upsert logic for issue insert to prevent duplicate primary key errors (GH#2061)
  • aebbc5a fix: validate JSON metadata on create path to match update path
  • 2a89def fix: validate JSON metadata on issue creation path
  • 3ef50b8 fix: validate status on update against built-in + custom statuses (#2021)
  • df47a96 fix: warn when bd defer --until date is in the past
  • f4a858c fix: warn when bd defer --until date is in the past
  • 4891ec3 fix: wire up auto-fix for git merge driver %L/%R placeholders (bd-7yg)
  • acf01b6 fix: work around Dolt max1Row optimization in dolt_history_issues query (bd-d3j)
  • b837a23 fix: wrap doctor fix DELETEs in explicit transactions for autocommit-OFF safety

Others

  • f5af65b Adds the option to use the Jira V2 api
  • d8bcd8d Makes API calls to transition the jira status when the local beads status also changes
  • 0b4fffe Merge PR #2001: test for reparented child dotted-ID precedence
  • 6fa125b Merge PR #2068: docs(setup): use --claim in generated templates
  • 1c60cf6 Merge PR #2104: docs(claim): fix resume semantics and finalize review nits
  • e54b89a Merge PR #2109: docs: use make install instead of go build
  • 3e04a92 Merge PR #2131: fix "no store available" issue with "bd dolt pull"
  • 1c45a3c Merge PR #2138: Remove dolt embedded mode docs
  • f0a38c4 Merge PR #2149: Update nix so beads builds (with latest go)
  • 9b95302 Merge main: resolve gosec comment style conflicts
  • 56c423b Merge polecat/jasper/bd-d3j: work around Dolt max1Row optimization in history query
  • 73b6446 Merge polecat/obsidian/bd-ddn: fix extra arg in formatHookMigrationPlan test calls
  • cec066f Merge polecat/obsidian/bd-qnd@mm703jdp: fix stale events.jsonl export (bd-qnd)
  • 17160e4 Merge polecat/onyx/bd-5nn: add default values to wisps table NOT NULL TEXT columns
  • 76f1c0a Merge polecat/onyx/bd-6bq: speed up doctor tests via branch-per-test isolation
  • b393030 Merge polecat/opal/bd-ldi: increase TestRun_Async polling timeout
  • 9a9f92d Merge polecat/opal/bd-xmf: speed up cmd/bd tests with shared DB + branch-per-test isolation
  • 1c4c9a5 Merge polecat/quartz/bd-8we: clean up pre-existing phantom DBs in tests
  • 989b485 Merge remote-tracking branch 'origin/main' into fix/doltserver-windows-compat
  • 61a1722 Merge remote-tracking branch 'origin/main' into fix/doltserver-windows-compat
  • bbcb2c6 Merge remote-tracking branch 'origin/main' into fix/doltserver-windows-compat
  • ecddbcf Merge remote-tracking branch 'origin/polecat/garnet/bd-0tn@mm5kyq8s'
  • 3f439d5 Merge remote-tracking branch 'origin/polecat/jasper/bd-f3oo@mm17cnwi'
  • 582b190 Merge remote-tracking branch 'origin/polecat/jasper/beads-69o@mm0568gv'
  • 517ae19 Merge remote-tracking branch 'origin/polecat/obsidian/beads-2zj@mm055izh'
  • 3d97396 Merge remote-tracking branch 'origin/polecat/ruby/bd-tk8y@mm5l1669'
  • 7bca403 Merge remote-tracking branch 'origin/polecat/topaz/bd-qy0@mm5kyivk'
  • 7d3c9b3 Re-add support for custom jira statuses and field maps
  • 6c90545 Remove dolt embedded mode docs
  • 4673b00 Update nix so beads builds (with latest go)
  • f12b7c6 add "federation." to matched prefixes so that we can run "bd config set federation.remote gs://test-beads-data/prj-a"
  • 6fde394 bd: backup 2026-02-28 05:17
  • 6ad290e bd: backup 2026-02-28 05:32
  • 2607367 bd: backup 2026-02-28 05:47
  • 7537597 bd: backup 2026-02-28 06:02
  • ab005f5 bd: backup 2026-02-28 06:17
  • bfc4628 bd: backup 2026-02-28 06:32
  • ab992cc bd: backup 2026-02-28 07:05
  • a12e084 bd: backup 2026-02-28 07:37
  • d16e975 bd: backup 2026-02-28 07:52
  • b0189b2 bd: backup 2026-02-28 08:07
  • 85710c9 bd: backup 2026-02-28 08:22
  • 9a113d2 bd: backup 2026-02-28 08:45
  • 6840dff bd: backup 2026-02-28 09:35
  • 10b6325 bd: backup 2026-02-28 09:51
  • 6625f4a bd: backup 2026-02-28 12:32
  • 1bcb03c bd: backup 2026-02-28 13:41
  • 835a86e bd: backup 2026-02-28 13:56
  • 87d4b10 bd: backup 2026-02-28 14:14
  • 7e12022 bd: backup 2026-02-28 14:56
  • 46ac2d0 bd: backup 2026-02-28 15:14
  • 051bb34 bd: backup 2026-02-28 15:29
  • ef356a0 bd: backup 2026-02-28 15:46
  • 85a4a05 bd: backup 2026-02-28 16:42
  • cd998dd bd: backup 2026-02-28 16:57
  • 10cdabc bd: backup 2026-02-28 17:12
  • 4ca5623 bd: backup 2026-02-28 17:27
  • 60df1c3 bd: backup 2026-02-28 17:42
  • bae915d bd: backup 2026-02-28 18:06
  • ff5e3b5 bd: backup 2026-02-28 18:23
  • 7a76f40 bd: backup 2026-02-28 18:38
  • 99a6f9f bd: backup 2026-02-28 18:53
  • 1407423 bd: backup 2026-02-28 19:08
  • fe8f424 bd: backup 2026-02-28 19:29
  • 4c57fbc bd: backup 2026-02-28 19:44
  • 03fc994 bd: backup 2026-02-28 20:04
  • 294f0f6 bd: backup 2026-02-28 20:19
  • 1798509 bd: backup 2026-02-28 20:34
  • 3576b26 bd: backup 2026-02-28 20:49
  • 574213f bd: backup 2026-02-28 21:04
  • 99fb9fa bd: backup 2026-02-28 21:19
  • 29abd2a bd: backup 2026-02-28 21:34
  • c13a9c5 bd: backup 2026-02-28 21:49
  • 9819a0c bd: backup 2026-02-28 22:06
  • 4aff5cf bd: backup 2026-02-28 22:21
  • ec81dd8 bd: backup 2026-02-28 22:42
  • 099245f bd: backup 2026-02-28 22:57
  • a06640a bd: backup 2026-02-28 23:12
  • 7426a75 bd: backup 2026-02-28 23:27
  • 0c4df44 bd: backup 2026-02-28 23:42
  • ce0923f bd: backup 2026-02-28 23:57
  • 2769a08 bd: backup 2026-03-01 00:12
  • 2c9e46c bd: backup 2026-03-01 00:33
  • 746fed7 bd: backup 2026-03-01 00:49
  • daef91c bd: backup 2026-03-01 02:21
  • 0cad7f4 bd: backup 2026-03-01 02:36
  • 1203d2b bd: backup 2026-03-01 02:51
  • 9c50056 bd: backup 2026-03-01 03:06
  • a25e60c bd: backup 2026-03-01 03:21
  • a7b025a bd: backup 2026-03-01 03:36
  • 1e2c605 bd: backup 2026-03-01 03:51
  • de34851 bd: backup 2026-03-01 04:06
  • d5d60de bd: backup 2026-03-01 04:21
  • b392a7d bd: backup 2026-03-01 04:36
  • 63d8944 bd: backup 2026-03-01 04:51
  • 3aef63c bd: backup 2026-03-01 05:07
  • 422e687 bd: backup 2026-03-01 05:22
  • 7d2dc1f bd: backup 2026-03-01 05:45
  • fb09b01 bd: backup 2026-03-01 06:00
  • 8b7f9c2 bd: backup 2026-03-01 07:09
  • 8ccd3fd bd: backup 2026-03-01 08:01
  • f797c2d bd: backup 2026-03-01 08:16
  • 385c0c0 bd: clean JSONL export from Dolt (post-reap, post-pollution cleanup)
  • b92ce05 chore(deps): update actions/cache action to v5
  • a6f73dd chore(deps): update actions/cache action to v5
  • f5c2da1 docs(claim): address review nits and unblock resume semantics
  • f9b306f docs(claim): standardize start-work semantics to --claim (#2070)
  • fbc90a3 docs(claim): use --claim for start-work flows across docs, examples, and templates
  • b59486c docs(deps): add DEPENDENCIES.md covering dependency system and gates
  • 4f4cc41 docs(faq): clarify atomic self-pick claim wording
  • 06cc556 docs(faq): note optional assignee with claim
  • 999d158 docs(faq): reorder assigned-vs-claim note
  • 95c86e1 docs(faq): require assignee in claim example
  • 05727ef docs(faq): restore assigned-work flow and clarify claim semantics
  • 8c6375f docs(otel): add OTel architecture and data model design docs
  • f41397b docs(otel): correct data model doc against source code audit
  • 56a5ae6 docs(otel): re-verify data model appendix line numbers against main@371df32b
  • cef38b2 docs(otel): remove absent metrics section from data model appendix
  • 5e0602a docs(regression): Phase 3 triage — 95+ pass, 15 fail (all known bugs)
  • b966c10 docs(regression): add GH issue numbers for BUG-7, BUG-8, BUG-13
  • 98707aa docs(regression): fix DISCOVERY.md to reference DECISION PRs not issues
  • 4a3966c docs(regression): session 6 discovery — stale, sort, reparent cycle, overdue
  • f89af04 docs(regression): session 6b — reversed ranges, negative limit, duplicate
  • 3a937ba docs(regression): session 6c — whitespace title, config ambiguity, dep rm
  • bf03c23 docs(regression): session 7 — deferred state, comma status, filter conflicts
  • 9bac57a docs(regression): session 7b — protocol tests for status, all, type, show
  • a683708 docs(regression): session 7c — empty comments, past due date, ID filter
  • 1b2b430 docs(regression): session 8 — lifecycle validation, ready filters, duplicate cycles
  • 8e0a57c docs(regression): session 8b — stale edge, search comma-status, type filter
  • 4e15ee4 docs(regression): session 8c — blocked parent, label idempotency, dep tree
  • 547bed2 docs(regression): update DISCOVERY.md with PR status and bug triage
  • 6a70a3e docs(setup): use --claim in generated agent templates
  • fba1d3b fix "no store available" issue with "bd dolt pull".
  • 74c968c fix tests: stop version tracking from polluting repo metadata
  • 1f6ab00 fix(doctor,git): isClaudePresent gate + JJ/git boundary detection
  • d61445e format with go
  • f78df9b merge: sync docs/claim-start-work-followup with upstream main
  • a266db9 perf(doctor): speed up tests from 44s to ~12s via branch-per-test isolation
  • 4237ebb perf(test): consolidate messaging and dep test suites (bd-1rh)
  • 793f3f2 perf: speed up cmd/bd tests with shared DB + branch-per-test isolation (bd-xmf)
  • 5675a3c perf: stream backup exports to disk, reduce allocations
  • 332b4f4 refactor(output): simplify title-length semantics and default to 255
  • 765ac3c refactor(protocol): split protocol_test.go monolith into thematic files
  • 66574d8 refactor: consolidate SSH detection and CLI remote helpers into doltutil
  • 5a5cde0 refactor: consolidate duplicate findBeadsDir to use beads.FindBeadsDir (bd-74w1)
  • 97fc30d refactor: convert doctor test fixtures from SQLite to Dolt (GH#bd-o0u.1)
  • bcb22df refactor: extract ToRemoteNameMap() helper for DRY
  • 8ee993a refactor: remove JSONL references from core Go files (bd-9ni.2)
  • 5e243b1 refactor: remove JSONL storage layer from core Go files (bd-9ni.2)
  • 7d7da19 refactor: remove SQLite from doctor/database.go and doctor/deep.go (bd-o0u.2)
  • 70d7c62 refactor: remove SQLite from doctor/integrity.go and config_values.go (bd-o0u.3)
  • ce0ed23 refactor: remove SQLite from doctor/migration*.go and fix/validation.go (bd-o0u.5)
  • 7d4a18e refactor: remove SQLite from doctor/perf.go, multirepo.go, installation.go (bd-o0u.4)
  • 5f023a1 refactor: remove dead SQLite helpers, connstring.go, and --to-sqlite flag (bd-o0u.6)
  • 6f9fcc1 refactor: remove duplicate DB() method from DoltStore (bd-ar6)
  • cc55e34 refactor: surgical JSONL removal from core Go files (bd-9ni.2)
  • c1d436e revert: remove auto-push to git remote (broken)
  • 4654c42 style: fix comment alignment in resolveAutoStart priority list
  • f9af171 style: fix comment indentation in TestResolveAutoStart
  • ef43ebe style: fix gofmt alignment in messaging_test.go
  • 02e37c7 style: fix gofmt errors
  • 41cd095 style: fix gofmt formatting in discovery_test.go
  • c80dfa9 style: normalize indentation in TestGetStringFromDir
  • fc6a921 test(discovery): add tests for external blocker and conditional-blocks gaps
  • 2bc8dd2 test(discovery): session 3 — five new candidate-only seams
  • d6ebf85 test(discovery): session 4 — close guard bypass, cycles, supersede, defer
  • 372e724 test(discovery): session 4 — close guard bypass, supersede reopen, defer past date
  • e4cfbee test(discovery): session 5 — dead label filter, flag conflicts, filter bypass
  • bc6733b test(doctor): skip maintenance cgo tests when dolt test server is unavailable
  • b5c5e49 test(dolt): verify AUTO_INCREMENT reset after pull
  • e2ded3a test(protocol): split blocked-status test into separate file
  • 4e938f7 test(wisp): add regression tests for ephemeral auto-ID generation (GH#2087)
  • 1c285fd testutil: migrate test Dolt server from binary-spawning to testcontainers

Don't miss a new beads release

NewReleases is sending notifications on new releases.