github steveyegge/beads v0.49.4

7 hours ago

beads v0.49.4

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

  • ebead13 feat(bd): add wisp_type field support for TTL-based compaction (gt-7mqd.2)
  • e8158ae feat(cli): add --metadata flag to bd update (bd-0vud2)
  • feae3bc feat(config): support .beads/config.local.yaml for local overrides
  • 30e8c99 feat(doctor): add Dolt migration validation checks (gt-nibe)
  • 22e21c6 feat(dolt): add BD_SKIP_ACCESS_LOCK env var for lock testing
  • 8b24c12 feat(make): check repo is up-to-date before install
  • 909085b feat(migrate): add agent-managed Dolt upgrade path
  • c2ae767 feat(migrate): add orphan branch support for sync-branch mode
  • 7e21aef feat(migrate): make orphan branch default for bd migrate sync (#1148)
  • e5c8c1d feat(schema): add wisp_type column for TTL-based compaction (gt-7mqd.1)
  • 51dc5ff feat: add 'beads' alias for bd command during installation
  • 46b6b7a feat: add --label-pattern and --label-regex flags to bd list
  • fa1218d feat: add Dolt schema migration runner (bd-ijw)
  • f3874ed feat: add simple query language for complex filtering
  • cf185ce feat: add spec_id field for linking issues to specification documents (#1372)
  • a1c447e feat: add spec_id support
  • dc038c9 feat: allow UpdateIssue metadata updates via json.RawMessage/[]byte (#1417)

Bug Fixes

  • 7451ddc Merge PR #1279: fix: add JSONL file locking to prevent race conditions
  • 0b92eae Merge PR #1281: fix: add WAL checkpoint robustness with retry logic
  • f220cb4 fix(autoflush): use unique temp file names for concurrent writes
  • e48e94e fix(compact): restore safety logic accidentally removed in cb1e355
  • b5ae6e8 fix(daemon): add initial JSONL import on startup with hash update
  • 22bbbc4 fix(daemon): update hash after auto-import to prevent export validation failure
  • 4d9fced fix(daemon_lock): update race test to document transient PID state
  • 4564736 fix(dep): use factory.NewFromConfig for cross-rig dependency resolution
  • 1ee9fbe fix(doctor): use read-only mode to avoid creating database
  • 6ec1943 fix(dolt): add retry logic for server mode transient connection errors
  • 1c2166e fix(dolt): add spec_id column migration for existing databases
  • 9f2326b fix(dolt): add timeout to embedded Dolt close to prevent indefinite hang
  • eaa4e79 fix(dolt): fix driver bad connection errors from nested queries in server mode
  • 623c36b fix(dolt): remove FK constraint on depends_on_id for external references
  • 054e92d fix(dolt): use correct variable in initSchemaOnDB
  • ead2428 fix(dolt): work around merge join panic in ready_issues view
  • bc70460 fix(lint): address unparam warnings in gitlab_sync.go
  • bde38fd fix(lint): handle rows.Close() errors explicitly (G104)
  • 70bc384 fix(lint): suppress G304 false positive for @file.json syntax
  • 76e7aa2 fix(lint): use secure file permissions for lock file (G302)
  • f3317a3 fix(migrate): use --stdin for cross-platform empty tree creation
  • 1797e33 fix(nix): allow Go toolchain auto-download for version compatibility
  • 4af28d5 fix(nix): use Go 1.25.6 overlay for dolthub/driver compatibility
  • 24097e0 fix(nix): use buildGoModule.override for go-modules derivation
  • 7032113 fix(path): exclude routes.jsonl from FindJSONLInDir fallback
  • 5f8cb4c fix(routing): respect BEADS_DIR over prefix routing in show/close/update
  • aa5e92f fix(show): display relates-to deps correctly and deduplicate RELATED section
  • 69bf2c9 fix(sync): disable JSONL auto-flush in dolt-native mode (bd-zlih1)
  • 1c02b4e fix(sync): disable JSONL imports in dolt-native mode, keep local writes as safety net
  • cd9768d fix(sync): disable JSONL sync exports in dolt-native mode (bd-zlih1)
  • 2726e6b fix(sync): use GetGitCommonDir for worktree creation in bare repo setups
  • c5953db fix(sync): use content-based merge for daemon pulls (GH#1358)
  • 665863e fix(test): create database before use in migrations_test.go
  • 6f89e65 fix(test): use atomic counter in TestFetchIssues_ContextCancellation
  • f5b7025 fix(test): use atomic counter to fix data race in gitlab test
  • 047174e fix(update): add config.yaml fallback for custom types in daemon mode
  • 001a6ae fix: accept simple string vars in TOML [vars] section
  • 26bed83 fix: add JSONL file locking to prevent race conditions
  • 7165f31 fix: add JSONL locking to performIncrementalExport
  • 9e397bc fix: add WAL checkpoint robustness with retry logic
  • c96e62e fix: add atomic compare-and-swap semantics to bd claim (#1474)
  • 690adbb fix: add missing placeholder for spec_id in Dolt INSERT
  • 8457d9e fix: add missing spec_id to SQL queries using scanIssues
  • 6b46f3a fix: add process-level semaphore to limit concurrent dolt access (G5)
  • bb18dad fix: add routes.jsonl to FindJSONLInDir skip list to prevent corruption
  • 823efe6 fix: add toml tags for snake_case fields in formula structs
  • 7dcfb1c fix: add transaction safety and daemon lock improvements
  • 5619c50 fix: add wisp_type to Dolt GetIssuesByIDs and insertIssueTx queries
  • 1269368 fix: advisory flock to prevent zombie bd processes from dolt lock contention
  • 9acaa85 fix: align resolve_conflicts tie-breaking with merge driver (#1481)
  • 2aff2db fix: bd cleanup --hard always prunes tombstones immediately (bd-4q8)
  • 4b80094 fix: bd ready now excludes in_progress issues to show only claimable work
  • 92d1e59 fix: deduplicate children in bd list --tree
  • 49cf54e fix: enable govet linter and resolve all IPv6 address format issues
  • dfeac38 fix: merge driver silently drops issue fields (#1480)
  • f013db9 fix: merge driver silently drops issue fields (#1480) (#1482)
  • ed71a9a fix: remove unused source return value from getGitLabConfigValue (unparam)
  • 60978cf fix: replace daemonLogger with *slog.Logger for proper structured logging
  • 62c9f9b fix: resolve all CI failures (lint, tests, nix) (#1464)
  • 87a22e0 fix: resolve connection pool deadlock in dolt dependency resolution (G10)
  • c2f3d46 fix: resolve errcheck violations in cmd/bd/gitlab.go and gitlab_sync.go
  • 309bab4 fix: resolve failing tests in daemon autostart, gitlab, and syncbranch
  • 3db3d2c fix: resolve gosec G104 unhandled rows.Close() error in doctor/perf_dolt.go
  • b169dc1 fix: resolve gosec G104 unhandled rows.Close() errors in dependencies.go
  • a7f9e86 fix: resolve remaining errcheck violations in gitlab files
  • 789ffe7 fix: resolve unused ctx lint warning in filterByLabelRegex
  • 78b657c fix: scope Dolt migration helpers to current database (bd-0gfm6)
  • 74920a8 fix: skip CREATE DATABASE for read-only commands in dolt store
  • 0bca2f5 fix: use types.Dependency end-to-end, add JSONL round-trip tests (#1481)

Others

  • 1a6bedd Document ICU build deps and hint in installer (bd-1409)
  • c761bc3 Document Windows Dolt limitation (main-3vt)
  • fae6b4d Enable Dolt build on Windows via pure-go regex (main-3vt)
  • b169256 Fix Windows build by excluding Dolt on Windows (main-3tg)
  • 02f29ea Fix auto-pull: check JSONL changes AFTER pulling
  • ae5d13d Fix daemon auto-import before export on mutation events
  • 888e3e6 Fix other instances of dolt db lock due to hanging process
  • d8798a2 Merge main into feature/bd-0vud2-cli-metadata
  • cca086c Merge main into refactor/merge-embed-types-issue-b2
  • cca0dc9 Revert "thinking about issue namespaces, GH#759"
  • b7e0fc3 Use prebuilt Windows releases in installer (bd-1493)
  • beb8058 bd daemon sync: 2026-01-13 05:02:39
  • c5cfe58 chore(deps): bump github.com/anthropics/anthropic-sdk-go from 1.19.0 to 1.20.0
  • 1278d43 chore(deps): bump github.com/cenkalti/backoff/v4 from 4.2.1 to 4.3.0 (#1452)
  • 3cbe2bd ci: allow Nix Flake test to fail temporarily
  • 72b8632 refactor(release): transform release.sh into molecule gateway
  • 426fb96 refactor: merge driver embeds types.Issue to prevent field drift (#1481)
  • 3032c62 release: v0.49.4
  • 8442a83 revert: remove Go overlay, use continue-on-error instead
  • 3bab433 thinking about issue namespaces, GH#759

Don't miss a new beads release

NewReleases is sending notifications on new releases.