github steveyegge/beads v0.49.5

latest release: v0.49.6
15 hours ago

beads v0.49.5

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

  • 3c167b8 feat(dolt): fail-fast TCP check before MySQL protocol initialization
  • e06e0cc feat: add bd find-duplicates for AI-powered duplicate detection (bd-581b80b3)
  • 4d16070 feat: add bd promote command for wisp-to-bead promotion (gt-7mqd.9)
  • 55a4140 feat: add bd todo command for lightweight task management
  • 24ba7e3 feat: add bd validate command for data-integrity health checks (bd-e108)
  • 6d99a8c feat: add content and null-check filters to bd search (bd-au0.5)
  • a6cbb7c feat: centralize AI model config into ai.model with DefaultAIModel()
  • 6fe7f20 feat: default to chaining hooks in bd init instead of prompting (bd-bxha)
  • 66b7fc4 feat: embed Windows PE version info to reduce antivirus false positives (bd-t4u1)
  • e533064 feat: remove embedded Dolt mode, keep server-only connections (bd-esqfe)

Bug Fixes

  • f5e0de4 fix(ci): resolve lint failures and test guard false positive (#1550)
  • f763b15 fix(ci): resolve lint failures and test guard false positive on main
  • 31687be fix(ci): unbreak Nix and Windows CI
  • 307cd1b fix(ci): update vendorHash, fix pre-existing lint failures
  • 9affc8f fix(config): log when viper uninitialized in getConfigList
  • d0cb650 fix(config): write beads.role to git config instead of SQLite
  • 3ba6bc3 fix(daemon): use rpc.ShortSocketPath for daemon status/health/metrics
  • 7057b08 fix(docs): correct markdown link syntax in COMMUNITY_TOOLS.md
  • 3d4ac66 fix(doctor): correct brew upgrade command from "bd" to "beads"
  • c9f68c2 fix(doctor): improve output formatting with summary-first layout (bd-4qfb)
  • 282c13e fix(dolt): clean test tables in setupTestStore to prevent duplicate primary key errors
  • ac0ff2e fix(gitignore): add .jsonl.lock to template and requiredPatterns
  • 85bd4bb fix(lint): suppress unparam for doctor/sqlite_open.go readOnly
  • 1296242 fix(merge): use strings.HasPrefix to prevent panic on short error messages
  • 3e8bc4f fix(migrate): check for running daemon before dolt migration
  • 8566c34 fix(nix): update flake.lock, remove CI workaround
  • a96df5a fix(rpc): pass issueID via closure to prevent empty mutation events
  • fea2bc7 fix(rpc): replace hardcoded /tmp paths with t.TempDir() in tests
  • 531f7a9 fix(security): path traversal in export handler and command injection in import
  • 85a5b84 fix(security): upgrade Go toolchain to 1.25.7 for CVE-2025-68121
  • eb1049b fix(sqlite): make Close() idempotent to prevent WAL retry deadlock (bd-4ri)
  • 0f14a11 fix(sync): apply --ours/--theirs strategy to conflict resolution
  • 914146d fix(sync): include tombstones in auto-flush full export
  • f72000a fix(tests): add missing assertions to RPC coverage and list filter tests
  • 5b8090e fix(tests): re-enable deadlock test and add timeout guards for peer sync (dolt-test-ebm)
  • 3273834 fix(update): log DB error when GetCustomTypes fails
  • 182655c fix(update): skip type pre-validation in daemon mode
  • 16ac05c fix: ShouldExportJSONL reads DB directly, returns false in dolt-native mode
  • 3d01c7f fix: Support cross-prefix ID resolution in multi-repo scenarios (GH#1513)
  • 69ab6b6 fix: add bounds checks for slice/string access in migrate.go (dolt-test-atg)
  • b78a67a fix: add exclusive lock to flushToJSONLWithState to prevent race conditions
  • f291727 fix: add nil storage guard to handleCommentList and handleCommentAdd (dolt-test-w1p)
  • 48574fe fix: add staleness check to export, graph, history, gate list commands (bd-2q6d)
  • fd274c9 fix: apply approved fixes before returning on stdin read error (dolt-test-hp8)
  • de5f702 fix: bd dep list cross-rig routing broken from town root (bd-ciouf)
  • 8ea2353 fix: bd doctor --check=validate re-checks after fix, reuses doctor infra (bd-e108)
  • 2b90ed1 fix: bd list --all disables default limit (bd-u0l9f)
  • dd2e1c6 fix: block BD_BACKEND env var to prevent data fragmentation (bd-hevyw)
  • bf3af46 fix: centralize error handling patterns in storage layer (bd-bwk2)
  • 656c806 fix: detect cross-rig contamination in post-migration check (bd-73cf5)
  • 75fd768 fix: dolt_conflicts column name, doctor gastown detection, explicit routing mode
  • 831c6ab fix: drain in-flight requests before closing storage in Server.Stop (dolt-test-rgh)
  • 2a0cd4c fix: handle json.Marshal error in runServerHealth (dolt-test-hk6)
  • a66165a fix: include dependencies and comments in issueEqual comparison (dolt-test-7e4)
  • 1b42ec3 fix: isolate Dolt tests with per-test databases (dolt-test-1cf)
  • 8a18582 fix: log warnings for label and dependency import errors in migration (dolt-test-qf0)
  • 342af3b fix: make "connection refused" retryable in Dolt retry logic (bd-p3ytz)
  • 81a87a7 fix: make TestRoutingIntegration/maintainer_with_SSH_remote deterministic (bd-g9eu)
  • e73f16f fix: prevent stdout export from clearing dirty flags and auto-flush state (dolt-test-f8l)
  • c4c54cb fix: remove global os.Stderr redirect during daemon import (dolt-test-s6y)
  • db232c8 fix: remove output_schema=None workaround, FastMCP 2.14.4 handles union return types (bd-49kw)
  • a8bc581 fix: remove unreachable RPC import method and dead code
  • 766f6dc fix: replace hardcoded 100ms sleep with response-write-then-shutdown pattern (dolt-test-931)
  • 2f4c26f fix: resolve gosec lint warnings in migrate_sync.go and migration_hint.go
  • 7b9c581 fix: separate parent-child from blocks in bd list output (bd-ohn7c)
  • ac09cde fix: standardize JSON output across commands (bd-au0.7)
  • 4eafe63 fix: sync labels during import by removing DB labels absent from JSONL (dolt-test-96u)
  • 6be7133 fix: use SQLITE_BUSY retry logic for all BEGIN IMMEDIATE calls (bd-ola6)
  • 1d77673 fix: use port 3307 consistently for Dolt server connections (bd-ig3re)
  • 249609d fix: use prefix-based Dolt database names to prevent cross-rig contamination (bd-u8rda)
  • 4bf6e8f fix: use unique temp filename in writeMergedStateToJSONL to avoid collisions (dolt-test-1so)

Others

  • 556836b Add beads-manager plugin to community tools list
  • 17e54c5 Enable Dolt on Windows via gms_pure_go build tag
  • 8cc9344 Fix bd doctor fix suggestion: bd daemon stop requires workspace path
  • 3126997 Fix daemon ignoring auto-sync config from YAML
  • 89e4ec5 Fix doctor --fix migration for legacy spec_id
  • 976fbe6 Fix doctor role check false positive when role set via bd config
  • df0204d Initialize bd after merge
  • 7593042 Merge remote-tracking branch 'origin/main' into fix/nix-and-windows-ci
  • a39cf8b Newsletter generator: automated narrative summaries of releases (#1197)
  • a0450ec cleanup: remove G5 flock semaphore remnants (server mode makes them obsolete)
  • e54ac33 hygiene: consolidate internal/util into internal/utils
  • 16cdc21 hygiene: consolidate sqliteConnString into internal/storage
  • d182aa0 hygiene: extract requireFreshDB to eliminate staleness boilerplate
  • ae108e8 hygiene: renumber spec_id migration from 041 to 043
  • 4bc425e hygiene: unexport 5 dead symbols in internal/merge
  • d6690dc perf(tests): speed up cmd/bd test suite from ~158s to ~50s (bd-1rh)
  • 198fcbf refactor: consolidate findJSONLPath in doctor/fix to use utils.FindJSONLInDir (bd-74w1)
  • 5e2c4e9 refactor: move bd validate into bd doctor --check=validate (bd-e108)
  • 829ac59 refactor: replace manual save/defer globals with saveAndRestoreGlobals helper (dolt-test-0uf)
  • bcf54c5 release: v0.49.5
  • 0a9bf3d security: add SQL identifier validation for dynamic table and database names (dolt-test-46a)
  • 2bb827f style: run gofmt across entire codebase (bd-nmk12)
  • eb571f9 test(beads): improve internal/beads coverage from 55.5% to 88.3%
  • 9c96517 test(compact): improve internal/compact coverage from 54.9% to 87.9%
  • 7033f0c test(create): add tests for --body-file and --description-file flags (bd-hy9p)
  • 3aa501f test(daemon): add CLI-level integration tests for daemon mode
  • 0129a46 test(gitignore): add failing tests for .jsonl.lock in template
  • 72b3f0a test(syncbranch): improve test coverage from 63.5% to 78.8% (bd-io8c)
  • 80e7509 test(utils): add multi-hyphen prefix tests for GH#405 (bd-s0qf)
  • df08dd4 tests: add tests for doltutil and factory packages

Don't miss a new beads release

NewReleases is sending notifications on new releases.