beads v0.58.0
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
- 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)
- 2ec8c10 Merge PR: feat: add --backend flag to bd init with SQLite deprecation notice (bd-7xj5)
- 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)
- 587eabb feat(doctor): bridge pending hook migrations into --fix
- 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)
- 52d7447 feat(show): add --current flag to show active issue (GH#2184)
- 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
- 89569b9 feat: add --backend flag to bd init with SQLite deprecation notice (bd-7xj5)
- 157135f feat: add --long flag to bd show for full-detail output (bd-unav)
- 1c6f373 feat: add --metadata flag to bd create (GH#1406)
- fb23623 feat: add --state as hidden alias for --status in bd list (bd-9h3w)
- f1a299d feat: add --stdin flag as alias for --body-file - on bd create/update (bd-gz2o)
- 0ed2e1a feat: add .dolt/ and *.db to project .gitignore on bd init (GH#2034)
- b769a00 feat: add Dolt-native conflict detection to bd doctor validate (GH-2249)
- 02e177b feat: add JSONL-to-Dolt migration script (GH#2276)
- 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)
- 0ec5d2e feat: add bd mol last-activity command for molecule progress tracking (GH-1456)
- a7325f7 feat: add bd purge command to delete closed ephemeral beads (GH-1692)
- ed8dc56 feat: add bd remember/memories/forget/recall for persistent agent memory
- 0cb7936 feat: add circuit breaker for Dolt server connections (bd-05an)
- 7228991 feat: add dolt-data-dir config for custom dolt data directory
- 20f2d19 feat: add gofmt + golangci-lint pre-commit hook (GH#2179)
- 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)
- e926d52 feat: add memory instructions to bd prime output and changelog
- 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)
- 464c952 feat: add type index on wisp_dependencies for blocker queries
- 7dca9e7 feat: align bd preflight --check with CI checks (GH#2230)
- 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
- 7807c2c Merge PR #2278: fix(deps): update opentelemetry-go monorepo to v1.41.0
- 9e093c1 Merge PR #2285: fix(dep): add prefix-based routing to dep add/rm/blocks/tree
- c4ca676 Merge PR #2287: fix(dep): skip target existence check for cross-prefix deps
- b958768 Merge PR #2288: fix: recreate wisps tables on schema fast-path (GH#2271)
- d5f6727 Merge PR #2289: fix: strip absolute dolt_data_dir from metadata.json on save (GH#2251)
- 5699472 fix(ci): remove stale hook-template checks and add hook install coverage
- 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)
- f430b97 fix(create): read contributor routing config from DB fallback
- 5668932 fix(dep): add prefix-based routing to dep add/rm/blocks/tree
- e3fbffc fix(dep): skip target existence check for cross-prefix dependencies
- facc13a fix(dep): traverse blocks-type edges in dep tree and graph commands
- 7913c05 fix(dep): use errors.Is for sql.ErrNoRows check, update metadata on re-add
- ebf78eb fix(deps): update opentelemetry-go monorepo to v1.40.0
- 72ae980 fix(deps): update opentelemetry-go monorepo to v1.41.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
- c62a891 fix(doctor): escalate broken hook migration severity
- 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
- b96483f fix(doctor): recognize marker-managed hooks, fix stale advice (#2244, #2242)
- 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
- a9c6806 fix(dolt): narrow test database prefix "beads_t" to "beads_test" to avoid false positives (#2297)
- 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
- b21a38e fix(init): set beads.role=contributor in contributor setup
- 24836dd fix(init): skip AGENTS.md generation in bare repositories
- 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
- fc03c6b fix(read): apply contributor routing to list and ready
- e10dbb9 fix(readiness): evaluate conditional-blocks deps in computeBlockedIDs()
- 7909150 fix(ready): molecule steps appear in bd ready, remove stale filtering (GH#1359)
- 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
- 9fe38d3 fix(upgrade): graceful recovery for pre-0.56 dolt databases (#2137)
- 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
- f2426cb fix: UpdateIssueID now handles wisps (wisp_* tables)
- 34a9c39 fix: Windows compatibility for doltserver package
- b6ad8e7 fix: add .dolt/ to project .gitignore (#2081)
- fff02df fix: add 5-minute timeout to doltCLIPush/doltCLIPull to prevent indefinite hangs (bd-x9oj)
- 1efc9f8 fix: add DOLT_COMMIT after tx.Commit in AddDependency/RemoveDependency (bd-2avi)
- 3700441 fix: add Gas Town daemon guardrails to dolt server operations
- 7122679 fix: add Gas Town guardrails to beads Dolt server management
- 57e88d0 fix: add SSH fallback for federation PushTo/PullFrom/Fetch (bd-zoi2)
- 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)
- d1859a0 fix: add doctor subsystem test coverage and fix 3 bugs (bd-0jkc)
- 442bf27 fix: add dolt.auto-start config check and BEADS_DOLT_AUTO_START=1 test
- 1e33b31 fix: add field validation parity to createWisp (#2032)
- 022f917 fix: add input validation for --status, --sort, --type flags in list.go (bd-ttno)
- dbd706b fix: add label inheritance and post-create Dolt commit to create-form --parent
- 3f960ef fix: add missing dolt runtime files to gitignore template (GH#2256)
- 8643ae0 fix: add missing spec_id, wisp_type, metadata columns to migration INSERT
- c61d8fa fix: add optimistic concurrency control to AdvanceToNextStep TOCTOU race (bd-e1ev)
- fe385f9 fix: add timeout to StartIsolatedDoltContainer context (bd-ilcx)
- 93f3425 fix: add unique DB naming and cleanup to doctor test helpers (bd-cv9)
- 716b12d fix: address 4 doctor bugs — panics, masked errors, missing rows.Err()
- 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
- fef392c fix: align IsBlocked blocker reporting with blocked-cache semantics (GH-1524)
- 88015ad fix: align TestDoltStoreSearch with title-only search optimization (bd-2lfo)
- fddc2dc fix: align transaction SearchIssues filter support with store-level (bd-v6v8)
- 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
- b378c1a fix: avoid Dolt joinIter hangs in GetReadyWork blocker computation
- 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
- 4397013 fix: batch IN-clause queries in computeBlockedIDs to prevent Dolt CPU spikes
- 4c8c374 fix: batch IN-clause queries in dependencies.go to prevent Dolt CPU spikes (#2294)
- 2460e0c fix: batch findParentMolecule to eliminate N+1 query pattern (bd-hn4q)
- 1cf0ad4 fix: batch wisp deletes in DeleteIssues to reduce Dolt commit pressure (bd-2ehd)
- f417eed fix: bd init --stealth sets no-git-ops: true in config (GH#2159)
- 6d7eb25 fix: cascade-delete blocked step children during wisp GC (bd-7hjy)
- 4394fdc fix: centralize hardcoded "beads" database defaults to configfile.DefaultDoltDatabase (bd-tcn)
- c2e213c fix: check SSH remote before remoteUser in Push/ForcePush/Pull (bd-msdq)
- 716d013 fix: checkDoltLocks returns error instead of masking connection failures (bd-gzu5)
- 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)
- a444bc2 fix: close 3 easy-win GHIs — stealth outside git, dead docs link, holder field
- d510a7f fix: complete explicit-ID ephemeral routing across all storage layers (GH#2053)
- 301952a fix: connect directly to Dolt server in clean-databases command
- e673429 fix: consult config.yaml for dolt.port in DefaultConfig (GH#2073)
- 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
- c459812 fix: default bd mol wisp create to root-only unless formula sets pour=true
- 5b280bc fix: defer FOREIGN_KEY_CHECKS restore to handle tx rollback (bd-zzji)
- 3c41ee0 fix: defer PID file cleanup in dolt idle-monitor (bd-m7ry)
- 1df14a5 fix: defer RUnlock in getWisp to prevent deadlock on panic (bd-klgl)
- 60ded4c fix: delegate bd migrate --to-dolt to shim path in nocgo builds (bd-rmll)
- f8515d6 fix: dep.go external ref removal, dead --type flag, and type validation (bd-jmzc)
- 89b97da fix: detect Go version mismatch in pre-commit hook before golangci-lint panics (bd-66nc)
- 35732f6 fix: detect and repair missing dolt_database in metadata.json (GH#2160)
- 746564e fix: detect fork workflow as contributor when role unset
- 4b86cf3 fix: disable backup git push in stealth mode (GH-2290)
- 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
- ff1a409 fix: enforce same-type blocking validation for dependencies (GH#1495)
- 15e2a26 fix: escape '#' in SQLite URI paths to prevent truncation
- 2acbbb2 fix: escape backticks in database names to prevent SQL injection in dolt clean-databases (bd-yzlh)
- a1484df fix: exclude ephemeral wisps from bd backup export (bd-qwa3)
- 097a280 fix: exclude pinned beads from bd list by default (bd-uhcg)
- 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
- 57619f9 fix: expand validateRef pattern to allow dots and slashes in branch names (bd-8ifp)
- 6dce899 fix: export events.jsonl with full re-export instead of incremental append (bd-qnd)
- ef7cf9f fix: extend cycle detection to span wisp_dependencies table (bd-xe27)
- b9a46ea fix: fall back to DerivePort when default port occupied by another project
- 299dd0d fix: fall through to issues table when wisps table missing
- 6dd42f6 fix: federation checks use wrong PID path and hardcoded port (bd-uz1x)
- 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
- 599e7d6 fix: gate DatabaseConfig fix behind SQLite backend check (bd-0xqi)
- c8c4ab6 fix: gofmt alignment in bd doctor agent mode
- c7336c0 fix: gofmt formatting and remove dead TestCheckDoltLocks_NotDoltBackend
- fd2047d fix: gofmt formatting and remove stale hook template version checks
- 9888cc9 fix: gracefully handle missing wisps table in epic/blocked queries (GH#2271)
- 63418ae fix: guard CREATE DATABASE to prevent shadow databases on wrong server
- 9bfc22a fix: guard dolt remote subcommands against store init bypass (GH#2224)
- 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
- 729001a fix: hold federationEnvMutex for all withPeerCredentials calls (bd-wn3n)
- 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
- 327335f fix: hooks subcommands no longer trigger Dolt store init (SIGSEGV)
- 6595087 fix: hooks subcommands skip store init to prevent SIGSEGV (#2245)
- 21601cf fix: ignore unhandled conn.Close() error in migrate_safety
- 6fa31b7 fix: implement showConfigYAMLOverrides to warn about config precedence (bd-rq2w)
- d8f4979 fix: include children of blocked parents in bd blocked (GH#1495)
- 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)
- 17a8cc3 fix: invalidate blocked-IDs cache on issue deletion
- 893d7fb fix: isolate federation credentials to subprocess env, eliminating race window (bd-9k0c)
- e447ab2 fix: isolate id_parser_test.go from shared Dolt server (bd-19i)
- 3a0e582 fix: isolate protocol tests with unique per-test Dolt databases
- 6039798 fix: log errors from event/comment copy in PromoteFromEphemeral (bd-n01d)
- 2e1df31 fix: make Commit() tolerate 'nothing to commit' like other Dolt operations
- ed5c02c fix: make install works on tag checkouts
- 4891d87 fix: make migration 007 resilient to schema evolution differences
- 045b627 fix: migration port mismatch and UX improvements for Windows migration path
- 8140c1a fix: move Landing the Plane inside beads integration markers (#2265)
- e95a07f fix: move syncCommandContext() before staleness check so --allow-stale works (bd-f49)
- ee6a3c1 fix: nocgo stubs return StatusWarning instead of StatusOK for skipped checks (bd-lars)
- 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
- 92e57a0 fix: optimize bd search to avoid LIKE %% full-table scans (hq-319)
- 8f260f0 fix: panic if BEADS_TEST_MODE=1 without BEADS_DOLT_PORT (bd-zt7)
- 017022b fix: pass configured credentials to verifyServerTarget instead of hardcoded root (bd-7lgi)
- a388c3e fix: prevent OSC escape leaks in git hooks, detect stale hooks in doctor (GH#1303, GH#1466)
- 28d51ac fix: prevent OSC escape leaks when third-party hook runners call bd hooks run (GH#1303)
- 1c3bacc fix: prevent child counter overwrite after JSONL import (GH#2166)
- 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
- 6aec75f fix: record events in addWispLabel/removeWispLabel (bd-0jph)
- 39a0e01 fix: recreate dolt_ignore'd wisps tables on schema fast-path (GH#2271)
- 8e2b749 fix: refresh last_import_time after write commands to prevent false staleness (#2255)
- 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
- 6ebd797 fix: remove "notify polecat" instructions from refinery template
- cf1e93d fix: remove 'mode' from valid keys in dolt set error message (bd-99ny)
- 87493ce fix: remove Beads Classic SQLite backend and migration infrastructure
- 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)
- 2666369 fix: remove dead SQLite duplicate-error check in fixtures importFromJSONL (bd-tn12)
- 877b47e fix: remove dead code in doctor subsystem (bd-6yqf)
- e79f9a1 fix: remove dead probeStale code, deduplicate noms LOCK cleanup (#2059 follow-up)
- 5e834bf fix: remove deprecated commands, dead SQLite code, and legacy scripts
- caf101b fix: remove duplicate help groups GroupMaintenance/GroupIntegrations (bd-54jr)
- e2375da fix: remove extra arg from formatHookMigrationPlan test calls (bd-ddn)
- 6d3de58 fix: remove go-sqlite3 dependency, use Dolt testcontainers for tests
- 2b263d1 fix: remove hardcoded limits from findGateReadyMolecules queries (bd-kzp3)
- 9544974 fix: remove incorrect Dolt backend skip in StaleClosedIssues (bd-bbr6)
- 765f583 fix: remove local --json flag in mol_stale.go that shadowed persistent root flag (bd-pr9v)
- 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
- e1e4cb7 fix: remove unused embedded hook templates and dead installHooks wrapper (bd-gp5b)
- eb451c3 fix: remove unused hasRedirect param from scanCruftBeadsDir
- 5002b08 fix: remove unused hasRedirect parameter from scanCruftBeadsDir
- 1f8cb03 fix: remove unused hasRedirect parameter from scanCruftBeadsDir
- 0f2a626 fix: repair CI failures - test fix and gofumpt formatting
- 27680fa fix: repair migrations_test.go for modern dolt versions
- 10a2715 fix: repair two pre-existing test failures on main
- e4a3f5c fix: replace N+1 query patterns with batch queries in deep.go and migration_validation.go (bd-7zej)
- ea329d1 fix: replace SHOW DATABASES LIKE with exact-match iteration
- 1afd815 fix: replace deprecated GetDoltServerPort() with doltserver.DefaultConfig()
- 092897d fix: replace fsnotify watcher with polling in watchIssues (bd-87xv)
- 32a32b6 fix: replace hand-rolled YAML parser with yaml.Unmarshal in multirepo.go (bd-7fsv)
- 59b4597 fix: replace hardcoded status strings with StatusOK/StatusWarning constants in legacy.go (bd-wif2)
- 162ab27 fix: replace information_schema queries with SHOW COLUMNS/TABLES to avoid stale catalog crashes (bd-ggnx)
- 2241581 fix: replace meaningless Fix field with actionable instructions in remotes check (bd-hwxg)
- aadef18 fix: replace port-fallback with kill-before-start to prevent server proliferation
- 2874b81 fix: replace stale beads.db check with metadata.json in ensureBeadsDirForPath (bd-rev6)
- 7b6d5ae fix: report accurate surface suffix in dolt remote add/remove messages (bd-e6o2)
- 2276c5f fix: report correct status when reopen/undefer is a no-op (GH#2037)
- 154e32e fix: reset core.hooksPath on uninstall, remove misleading hook text (bd-31bo)
- 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
- b115c5e fix: resolve lint issues — errcheck and gosec nolint annotations
- 162707e fix: resolve pre-existing CI failures (gt-ngoe)
- 292f518 fix: respect stealth mode (no-git-ops) in backup git push (GH#2290)
- b3848aa fix: restore SQLite backup on getBdBinary() failure in recovery (bd-ppnp)
- fd21fa4 fix: restore bd init --from-jsonl for server mode (bd-phzy)
- c3d011a fix: restore sandbox guard in maybeAutoPush (#2192)
- d248903 fix: retry GitLab API requests on 5xx server errors
- c60bcfe fix: retry stale DB connection and preserve temp file in bd edit (GH-2267)
- b65ec94 fix: return consistent 6-check shape from RunDoltHealthChecksWithLock on connection failure (bd-6gs3)
- a35d11f fix: return error from waiters JSON marshal instead of discarding (bd-57ab)
- 98dc4c0 fix: return errors from RunPerformanceDiagnostics instead of calling os.Exit() (bd-hwmb)
- 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)
- 0800914 fix: scan wisp_dependencies in getChildrenOfIssues and getChildrenWithParents (bd-8qc5)
- 87fba0c fix: set BEADS_TEST_MODE=1 in all test server setups for DB isolation
- 72fc86c fix: shell-quote interpolated args in dolt remote fallback messages (bd-6dvy)
- 40a8410 fix: show helpful hint when dolt push/pull fails with remote not found (GH#2118)
- c2888b1 fix: skip Docker tests when image not cached locally (GH#2277)
- e68e668 fix: skip Viper defaults in getRoutingConfigValue to unblock DB fallback (bd-2qef)
- 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)
- 2d369a6 fix: skip remotesapi check when no federation peers configured (bd-5c7)
- 30a3be9 fix: skip remotesapi port check when no federation peers configured (GH#2273)
- a964124 fix: split TestCheckTestPollution_NoTestIssues by platform (GH#2262)
- 9ffb6aa fix: split TestCheckTestPollution_NoTestIssues by platform (GH#2262)
- 49a607c fix: split TestCheckTestPollution_NoTestIssues by platform (GH#2262)
- e75491e fix: strip absolute dolt_data_dir from metadata.json on save (GH#2251)
- 612b370 fix: suppress git upstream warning for repos with no remotes
- 1be8475 fix: surface errors from FindOrphanedIssues and add git command timeouts (bd-mppa)
- 4b627d2 fix: surface errors from ScanForArtifacts and checkDatabaseConfigValues (bd-4hn4)
- 9dc33be fix: surface real errors from SearchIssues ephemeral fallthrough (bd-w59l)
- 68e224f fix: unexport DefaultInfraTypes to prevent mutation inconsistency (#2193)
- 59ff8d9 fix: unify hook outdated detection between CheckGitHooks and hooksNeedUpdate
- b2370e4 fix: unify openDoltDB with openFixDB for timeout and password support (bd-s20p)
- 9bf46a4 fix: update stale JSONL and SQLite references to Dolt semantics (bd-cg90)
- 88707d5 fix: update stale JSONL/SQLite references across doctor subsystem (bd-zw81)
- c48f544 fix: update stale SQLite comments in doctor package (bd-516)
- d19a3a1 fix: update stale SQLite error messages in perf_dolt.go (bd-gv7)
- dd24537 fix: update stale SQLite reference in config.go help text (bd-zkfn)
- 5cf4f71 fix: update test expectation for StatusWarning on query failure
- 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)
- 54d3a28 fix: update tests for nocgo StatusWarning change and repoPath params
- ba08e97 fix: update version scripts for section markers, suppress unused param lint
- 4b1e5bb fix: update wisp table references in UpdateIssueID (bd-od40)
- bb6b712 fix: use CLI fallback for all git-protocol remotes, not just SSH (GH#2268)
- d78d0f1 fix: use NOT IN exclusion for active status checks so custom statuses are visible (bd-1x0)
- 1f1e63e fix: use centralized IsDaemonManaged() in migrate_dolt.go (bd-3hfp)
- b0c32dc fix: use configfile.DefaultDoltServerPort (3307) instead of DerivePort
- 939bfed fix: use configured credentials and context timeout in perf_dolt.go (bd-c1g8)
- 48438a7 fix: use created_at ordering in UNION ALL queries to avoid auto-increment ID collisions (bd-hl48)
- 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)
- 4bf94cd fix: use explicit path params in doctor checks instead of relative paths
- 2752d60 fix: use marker-managed install path for jj hooks (#2232)
- 62e9485 fix: use net.JoinHostPort for IPv6-safe address formatting (bd-0tn)
- ae8f3fd fix: use net.SplitHostPort for IPv6-safe HTTP URL parsing (bd-7dqc)
- f3f50d3 fix: use random encryption key for federation credentials (bd-rv8g)
- 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
- 85979ca fix: validate marker count and order in detectHookMarkerState (bd-d96s)
- 3ef50b8 fix: validate status on update against built-in + custom statuses (#2021)
- 53a8edb fix: validateIssueIDPrefix now checks allowed_prefixes config (GH#1179)
- f4a858c fix: warn when bd defer --until date is in the past
- df47a96 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)
- 9c6ee17 fix: worktree separate-DB discovery skips own .beads/ (GH#2190)
- 4773526 fix: wrap burnWisps in transaction for atomic deletion (bd-6py7)
- b837a23 fix: wrap doctor fix DELETEs in explicit transactions for autocommit-OFF safety
Others
- e5179c7 #1380 Phase 2: hook migration apply mode (#2235)
- 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)
- 146203f Merge PR #2275: fix nix package build
- 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
- bbcb2c6 Merge remote-tracking branch 'origin/main' into fix/doltserver-windows-compat
- 61a1722 Merge remote-tracking branch 'origin/main' into fix/doltserver-windows-compat
- 989b485 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'
- 6e2c93b Merge remote-tracking branch 'origin/polecat/jasper/bd-hwxg@mm8lme64'
- 582b190 Merge remote-tracking branch 'origin/polecat/jasper/beads-69o@mm0568gv'
- bdc9915 Merge remote-tracking branch 'origin/polecat/obsidian/bd-mppa@mm8el4g8'
- c204e9a Merge remote-tracking branch 'origin/polecat/obsidian/bd-ppnp@mm8llzok'
- 517ae19 Merge remote-tracking branch 'origin/polecat/obsidian/beads-2zj@mm055izh'
- 9cc9ce9 Merge remote-tracking branch 'origin/polecat/onyx/bd-7fsv@mm8lmm76'
- dad2e2d Merge remote-tracking branch 'origin/polecat/onyx/bd-7zej@mm8m5n1j'
- 45ddb5e Merge remote-tracking branch 'origin/polecat/onyx/bd-s20p@mm8en9js'
- 1326993 Merge remote-tracking branch 'origin/polecat/opal/bd-6yqf@mm8eipnt'
- b444e27 Merge remote-tracking branch 'origin/polecat/quartz/bd-d96s@mm8elcl5'
- d0a90b9 Merge remote-tracking branch 'origin/polecat/quartz/bd-uz1x@mm8lm7hx'
- 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
- aef7502 Stabilize hook-related tests by forcing repo-local hooksPath (#2233)
- f81b9b7 Test isolation follow-up: consolidate and guard hooksPath leakage (#2234) (#2237)
- 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
- 6b0a4a0 bd: backup 2026-03-01 08:31
- 1f0b27f bd: backup 2026-03-01 09:26
- ee75522 bd: backup 2026-03-01 09:43
- c33dda7 bd: backup 2026-03-01 10:00
- ae0e7f1 bd: backup 2026-03-01 10:19
- 64de3ab bd: backup 2026-03-01 15:51
- fe16736 bd: backup 2026-03-01 16:37
- 34c0c8b bd: backup 2026-03-01 17:02
- 7422088 bd: backup 2026-03-01 17:31
- e3a5558 bd: backup 2026-03-01 17:46
- a88993b bd: backup 2026-03-02 03:59
- 6c49958 bd: backup 2026-03-02 04:14
- 2b296e1 bd: backup 2026-03-02 04:29
- b7db265 bd: backup 2026-03-02 06:30
- f7c0ad8 bd: backup 2026-03-02 18:44
- 683d3ba bd: backup 2026-03-02 19:05
- a0a87cc bd: backup 2026-03-02 20:10
- 7fca054 bd: backup 2026-03-02 20:25
- 3e57403 bd: backup 2026-03-02 20:40
- d03cd0e bd: backup 2026-03-02 21:03
- 7250990 bd: backup 2026-03-02 21:26
- 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
- edc0aeb feat(create-form): add --parent flag for creating sub-issues
- 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
- 5476b9c preflight: require lint unless explicitly skipped (#2227)
- 332b4f4 refactor(output): simplify title-length semantics and default to 255
- 765ac3c refactor(protocol): split protocol_test.go monolith into thematic files
- d0af696 refactor: address review — use constants, fix stale comments, hermetic tests
- 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
- ed02bf4 refactor: extract shared DoltDockerImage, FindFreePort, WaitForServer into testdoltcommon.go (bd-4q6f)
- 080a6b9 refactor: extract shared filter-building into buildIssueFilterClauses (bd-is9q)
- 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)
- 0a54d5c refactor: remove dead functions printNoop, migratePrintSuccess, migratePrintWarning (bd-c7v1)
- 809a880 refactor: remove dead wisp table routing functions
- 6f9fcc1 refactor: remove duplicate DB() method from DoltStore (bd-ar6)
- a4b6071 refactor: remove unused xLargeFromJSONL function (bd-aonx)
- cc55e34 refactor: surgical JSONL removal from core Go files (bd-9ni.2)
- c1d436e revert: remove auto-push to git remote (broken)
- c6a900d style(dolt): unexport remoteCredentials fields
- 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
- 55e44c9 style: fix gofmt formatting in show_current_test.go and wisps.go
- 0bdfd40 style: fix pre-existing gofmt issues on main
- fbc3be5 style: fix pre-existing gofmt issues on main
- 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
- 0702ea0 update nix package so it build again