github gastownhall/beads v1.0.5

16 hours ago

beads v1.0.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/gastownhall/beads/main/scripts/install.sh | bash

Windows (PowerShell):

irm https://raw.githubusercontent.com/gastownhall/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

  • 12bb76b feat(config): add dolt.mode config key with ambiguous-config warning
  • d476fba feat(config): validate dolt.mode accepts server or embedded
  • 82020c4 feat(init): auto-configure contributor routing on fork detect (be-7daa14) (#4028)
  • e49bc91 feat(list): be-a5z add --skip-labels hydration toggle (AD-02)
  • 7da4f78 feat(schema): schema-skew guard — hard fail on forward DB drift (be-wwbsv)
  • 287d8a8 feat(setup): Gemini/Claude hook JSON compliance, --hook-json flag, legacy migration
  • cfcc957 feat(show): count-only JSON details with opt-in streamed payloads
  • 05c7835 feat(storage): honor .beads/config.yaml types.custom in server-side validation (#4024) (#4026)
  • 25703f8 feat: add Copilot CLI setup recipe (#3839)

Bug Fixes

  • 78cacb9 Revert "fix(ci): create flake lock PRs from fork"
  • 3c8c8be fix(audit): widen newID entropy to 16 bytes + bump test to 8000 IDs (be-5uxe)
  • 3b841e1 fix(audit): widen newID entropy to 8 bytes (be-yc9h)
  • 26a7a96 fix(ci): create flake lock PRs from fork
  • 598a4d2 fix(ci): use app token for flake lock PRs
  • a180c63 fix(close): support per-id reasons (#4194)
  • 1f2ec3c fix(close): treat re-close of already-closed issue as idempotent success (GH#4025)
  • 0afd3d5 fix(codex): ship hook release safely
  • f8b9400 fix(create): commit labels during initial issue creation (#4149)
  • cbef9fb fix(create): set status=deferred when --defer date is in the future (GH#4071)
  • 480ffe4 fix(create): warn on unknown fields and honor --dry-run with --graph (#3762)
  • 660250e fix(dep): keep relates-to out of dependency tree
  • 4ad5b53 fix(doctor): stop emitting fresh-clone false positive in Dolt server mode (#3755)
  • d7d3dad fix(dolt): adopt git origin on first push (#3940)
  • 2a5a980 fix(dolt): bd dolt status probes SQL when local server is externally-managed
  • 32586cb fix(dolt): detect managed handoff port conflicts (#4217)
  • 52cc8be fix(export): fail on auto-export git add errors
  • 663bc01 fix(export): guard auto-export against richer JSONL overwrite
  • 9e956db fix(export): guard empty auto-export over populated JSONL
  • 36f7e8a fix(hooks): address review timeout edge cases
  • 85549f4 fix(hooks): bound prime and hook waits
  • 5629e18 fix(import): preserve JSONL comment IDs (#4103)
  • be0aa70 fix(init): apply config server mode before validation
  • f6f1c00 fix(init): hard-fail when dolt.host/dolt.port set without server mode
  • 278b24a fix(init): honor dolt local-only remote wiring (#4227)
  • 3988db7 fix(init): make JSONL auto-export opt-in (#4063)
  • f4c3adf fix(init): mark server-mode Dolt dirs compatible
  • 1837fff fix(init): narrow hard-fail to remote host, not port-only
  • 6467c4f fix(init): platform-accurate config path in warning and add init test coverage
  • 8ba0b46 fix(init): surface marker write failures
  • 220e552 fix(init): tighten Dolt marker handling (#4083)
  • 0c47b3c fix(init): use git origin as default Dolt remote (#3909)
  • 602593b fix(install): use declared module path for go fallback (#4215)
  • c17f3fd fix(list): honor skip-labels in JSON output
  • 7f8baea fix(list): keep relates-to out of bd list tree mode (#3936)
  • 8a8a2ec fix(mcp): route validate and detect-pollution to bd doctor (GH#4037)
  • 4cba4ef fix(migration): run schema migrations on a connection with no read timeout
  • e4a0b2c fix(mol): bd mol wisp materializes full child DAG by default (#3872) (#3911)
  • ed2b5ae fix(ready): apply filters to wisp ready work (#4008)
  • 6a5c9e3 fix(schema): migrate TEXT → LONGTEXT for large-content columns (be-knye)
  • bbd91cb fix(schema): panic on duplicate migration version numbers
  • 6a5fb83 fix(schema): preserve wisps DEFAULT '' and renumber LONGTEXT migration → 0046 (be-knye)
  • 028690b fix(schema): qualify go install guidance with gms_pure_go
  • 34936e2 fix(schema): renumber duplicate release migrations
  • 1f073c5 fix(schema): reorder 0041 FK before generated column for Dolt 2.0.6 (#4120)
  • 376a24a fix(schema): serialize Dolt schema migrations (#4005)
  • 35b9bbb fix(schema): unify migration advisory lock path (#4031)
  • 4a24bc3 fix(schema): update renumbered migration comment (#4235)
  • 6143a19 fix(schema): widen events/wisp_events value columns to LONGTEXT (be-kkp)
  • 4db8d74 fix(setup): clarify symlinked agents skip
  • f52c78b fix(setup): finish hook JSON migration
  • 86545f6 fix(setup): harden symlink follow-up handling
  • 09a3890 fix(storage): preserve mixed issue and wisp reads (#3991)
  • 99653e0 fix(trackers): route secret keys through config.yaml in all tracker getConfig methods
  • 88aa88d fix(update): clear external_ref to SQL NULL when --external-ref "" (#3912)
  • c0bdf49 fix: guard JSONL auto import/export edge cases
  • e569c74 fix: materialize local table schemas for branch tests (#4014)
  • 7f7708e fix: preserve Windows drive remotes for dolt sync
  • 8ae4c3c fix: repair PR4107 blocked-state corruption (#4139)
  • 3068bc4 fix: skip auto-backup file:// register on external Dolt server (#3523)

Others

  • 24a1a93 /.github/workflows/ci.yml: run tests in CI
  • 2985630 /cmd/bd/init.go: disable again
  • bd02b5e /cmd/bd/init.go: experimental
  • bcad825 /cmd/bd/init.go: remove comment
  • a65d9d1 /cmd/bd/init.go: some more fixes
  • 23e11ff /cmd/bd/store_factory_nocgo.go: fix build
  • 9c88107 /cmd/bd: cleaning up
  • cb04e03 /cmd/bd: get compiling again
  • 55b302a /cmd/bd: some cleanup
  • 9a5cd78 /cmd/bd: wip need tests
  • 04a922c /internal/storage/db/proxy/server.go: lint
  • bd1a0dd /internal/storage/dbproxy/server: fix test
  • 7ce1330 /internal/storage/dbproxy/server: wip, external dolt server
  • 41a5107 /internal/storage/dolt: fix after rebase
  • 64ed6c0 /internal/storage/doltserver/store.go: fix panic
  • 1075ec3 /internal/storage/doltserver/store.go: fixes
  • e346490 /internal/storage/domain/db: comments
  • d56ca38 /internal/storage/domain/db: dependency
  • a873d5e /internal/storage/domain/db: handle wisps too
  • 5a1d5b4 /internal/storage/domain/db: issue
  • 93b63c7 /internal/storage/domain: add event
  • 80194d1 /internal/storage/domain: address feedback
  • 54b83a3 /internal/storage/domain: consolidate
  • 7320f26 /internal/storage/domain: more impls
  • b01ddb6 /internal/storage/domain: wip
  • 30158fc /internal/storage/embeddeddolt/create_issue_test.go: fix test
  • ba28732 /internal/storage/embeddeddolt/open.go: change max conns
  • d9383ff /internal/storage/embeddeddolt/version_control.go: fix one call site
  • 9106148 /internal/storage/issueops/dependencies.go: fix formatting
  • 3b1d3b3 /internal/storage/issueops/dependencies.go: remove comment
  • 44d3288 /internal/storage/issueops/ready_work.go: fix ready work query
  • cc0f80c /internal/storage/issueops/ready_work_test.go: fix tests
  • 1946389 /internal/storage/issueops: wip, cleaning up
  • 693bd32 /internal/storage/schema/branch_migrate.go: fix branch migrate
  • fdb4f25 /internal/storage/schema/helpers.go : remove table exists
  • 689fdf2 /internal/storage/schema/migrations/0035: remove comments
  • 5a98cb7 /internal/storage/schema/migrations: fix index creation if not exists
  • 00393ff /internal/storage/schema/migrations: fix migration
  • db2ca20 /internal/storage/schema/migrations: fix migrations
  • b22ef92 /internal/storage/schema/migrations: migrate ignored tables to non local ones
  • bfb6a6a /internal/storage/schema/migrations: move non local after fk registration
  • c190250 /internal/storage/schema/migrations: remove add and commit calls in schema
  • 79cf211 /internal/storage/schema/migrations: restore foreign key statements
  • 7d8f66d /internal/storage/schema/migrations: wip, fixing migrations
  • c90a2da /internal/storage/schema/schema.go: advisory lock for concurrent inits
  • 0d27f41 /internal/storage/schema/schema.go: fix panic
  • beb2969 /internal/storage/schema/schema.go: panic on failure to unlock
  • 4c0338e /internal/storage/schema/schema.go: use query context
  • e94ba12 /internal/storage/schema: add foreign keys to normal tables
  • 8b43328 /internal/storage/schema: another fix
  • ff342b2 /internal/storage/schema: fix ignored table schema
  • f412c88 /internal/storage/schema: fix schema migrations
  • b0a7ae4 /internal/storage/schema: more fixes
  • 2f9eebf /internal/storage/schema: remove views
  • 48fe1d6 /internal/storage/uow/doltserver_provider.go: fix provider
  • aa968e8 /internal/storage/{dbproxy,uow}: external uow provider
  • fee553f /internal/storage/{dolt,issueops,schema}: remove comments
  • eee26a7 /internal/storage/{dolt,issueops}: more fixes
  • b1e4652 /internal/storage/{domain,uow}: dependency
  • 242ecfd /internal/storage/{embeddeddolt,schema}: add wisp_child_counters
  • 24b97a2 /internal/storage/{embeddeddolt,schema}: fix test
  • 2d8b5f2 /internal/storage/{embeddeddolt,schema}: more cleanup
  • e8fb231 /internal/storage/{uow,domain}: wip stubs
  • 479445c /internal/storage: cleanup
  • 2585b21 /internal/storage: get schema working, wip, deleting wisps from dependencies
  • 49c6008 /internal/storage: keep it same branch
  • e425037 /internal/storage: more comment cleanup
  • 173288d /internal/storage: remove backward compat stuff
  • 3c563f7 /internal/storage: remove dual tx
  • 34ad562 /internal/storage: remove some comments
  • 8cba973 /internal/storage: split tx
  • d3145a3 /internal/storage: use branch migrate
  • a729b41 /internal/storage: wip, fixing schema
  • 247e719 /internal/storage: wip, removing backfill stuff
  • e84de4c /internal/storage: wip, start on default branch
  • b860988 /internal/{dolt,issueops,schema}: foreign key stuff
  • 18a93ec /internal: delete some comments and old store code
  • 6c59d53 /{.github,cmd}: comment out ci, disable proxied-server mode
  • 364a1b7 /{.github,cmd}: remove parrallelism for ps tests
  • 40506ee /{.gitignore,cmd}: disable proxy server mode
  • 316cfc6 /{cmd,docs,internal,website}: remove pass
  • a106722 /{cmd,docs,internal,website}: wire up
  • 3080839 /{cmd,docs,website}: gen docs
  • e898bab /{cmd,docs,website}: gen docs again
  • 6bb7dba /{cmd,internal}: add migrate schema command
  • e9ece3a /{cmd,internal}: cleanup
  • 42ad1b7 /{cmd,internal}: cleanup
  • 7a6b164 /{cmd,internal}: create tests
  • 1fecac9 /{cmd,internal}: external server
  • 5a7cc3e /{cmd,internal}: fix proxied server path
  • 4d32285 /{cmd,internal}: get debug mode working
  • 4bf03b3 /{cmd,internal}: initial proxy server backend pass
  • ba36b67 /{cmd,internal}: more cleanup
  • 56ce24f /{cmd,internal}: more fixes
  • ff8a2e8 /{cmd,internal}: read optimizations
  • 98be00c /{cmd,internal}: refactoring
  • f030006 /{cmd,internal}: remove bad test
  • d13c2ee /{cmd,internal}: remove comments
  • 536e114 /{cmd,internal}: remove dead code
  • d15c757 /{cmd,internal}: remove depends_on_id
  • 78eb7f5 /{cmd,internal}: remove more code
  • 04f4e06 /{cmd,internal}: root piece
  • 4ff5308 /{cmd,internal}: server config
  • b456ec5 /{cmd,internal}: some cleanup
  • 48b244a /{cmd,internal}: some cleanup
  • c2cbfd3 /{cmd,internal}: some fixes
  • c2b998e /{cmd,internal}: some refactors
  • f2954dd /{cmd,internal}: support logpath
  • 6caed19 /{cmd,internal}: surface mismatches
  • c7aa60d /{cmd,internal}: tweaks before merge
  • ac52b56 /{cmd,internal}: wip create
  • 4fcbd58 /{cmd,internal}: wip, implementing init with proxied-server
  • 84d8796 /{cmd,internal}: wip, removing ignored table code
  • b4a88e0 /{docs,.github,internal,scripts}: dolt 1.88.1
  • e4f0f9b /{docs,website}: gen docs
  • 885eacb /{docs,website}: gen docs
  • e4b4d84 /{docs,website}: gen docs for new flags
  • 4b5936d /{docs,website}: generate docs
  • 3d7173c /{internal,cmd,.gitignore}: wip, proxy server fixes and uow impl
  • 507b2a1 Add configurable JSONL import path
  • e69c53d Add proper hook integration
  • fcd3cc0 Consider entire PR thread, clarifying info are often in comments (#4105)
  • ec116c4 Consolidate docs evidence review inventory
  • b1c968e Document import path portability
  • 7044802 Document project scope boundaries (mybd-1fn) (#3842)
  • 3a7a2e8 Fix ephemeral graph apply readiness and dependency cost (#3943)
  • 3c34d62 Guard auto-export against JSONL-only records (#4090)
  • 368eca7 Make auto-export git add lock-aware (#4089)
  • 99565c0 Merge remote-tracking branch 'upstream/main' into AI/import-path-config-upstream
  • eea1cce Merge remote-tracking branch 'upstream/main' into AI/import-path-config-upstream
  • 95930c4 Regenerate CLI reference docs
  • 87963b4 Revert "Add external server CLI dir override (bd-fn9) (#3498)" (#3890)
  • 0fdaa27 Revert "Revert "Revert external server CLI dir override" (#3891)"
  • e7fb579 Revert "Revert external server CLI dir override" (#3888)
  • 410cff4 Revert "Revert external server CLI dir override" (#3891)
  • 9b0cf9e Revert external server CLI dir override
  • 42be8e8 Stamp auto-import attempts for unchanged JSONL
  • 4990c83 auto-import: gate server mode at call site (#4170)
  • 47adc62 build(deps): bump github.com/anthropics/anthropic-sdk-go from 1.37.0 to 1.45.0 (#3959)
  • 9c45638 build(deps): bump golang.org/x/sys from 0.43.0 to 0.45.0 (#3958)
  • 1404130 build(deps): bump goreleaser/goreleaser-action from 7.2.1 to 7.2.2 (#4109)
  • f18daea chore(deps): bump actions/create-github-app-token from 3.1.1 to 3.2.0 (#3956)
  • e1c8b8b chore(deps): bump fastmcp from 3.2.4 to 3.3.1 in /integrations/beads-mcp (#3957)
  • 9cdb628 chore(deps): bump github.com/dolthub/driver from 1.86.4 to 1.88.1 (#3830)
  • 9ca6b51 ci(nix): auto-update default.nix vendorHash on dependabot Go bumps (#3804)
  • 4c22bf0 ci: gate regression tests on risky PR paths (#4123)
  • 2382952 cleanup: remove unused private helpers (#4205)
  • 027b17d debug config discovery and issue prefix failures (#4191)
  • e279a1c debug missing dolt database metadata (#4202)
  • c4c3a83 deps: update MCP Python dependencies (#3856)
  • 2b4339d deps: update vulnerable Go modules (#3855)
  • dec53a2 deps: update website npm dependencies (#3857)
  • ced5c50 docs(changelog): credit Kevin Glynn for JSONL cleanup origin
  • fcbb823 docs(cli): regenerate CLI reference for --ignore-schema-skew
  • 9bdf785 docs(import): enumerate all fields the importer handles in --help
  • c4c5b5f docs(import): remove false 'type' alias claim from help
  • 70c82c0 docs(list): regenerate CLI reference for --skip-labels (be-rqm7yb)
  • 337903d examples: add GitHub issue-to-PR and PR triage formulas (#3866)
  • 182bf2e fix setup injection for symlinked agent files
  • 1f82e00 fix(auto-import): make upgrade-recovery fallback non-destructive (#3955) (#3960)
  • 158a136 fix(auto-import): pass serverMode=false in rebased stamp tests
  • 1cf8337 fix(auto-import): restore empty-DB guard regressed by #3630, plus a test repair (#3691)
  • c2c3760 fix(github) bd github sync (GitHub issues integration) (#3929)
  • 7111e24 flake.lock: Update
  • dec564e flake.lock: Update (#4143)
  • 647b2b0 gc: recheck closed deletion candidates (#4171)
  • 02aa69c import: skip beads-jsonl metadata/header line on JSONL import
  • 7229fb1 import: skip stale JSONL issue snapshots (#4204)
  • 5d33b4c init: run Codex project setup by default
  • 70f5076 internal/storage/schema/migrations: fix nonlocal migrations;
  • bd13f47 perf(count): Q1 — SQL COUNT(*) aggregate replaces SearchIssues+len in bd count (bd-xoi0x)
  • ad046c9 perf(deps): narrow recursive cycle checks (#3966)
  • a4ebe8f perf(deps): scan one cycle table for same-storage edges (#4004)
  • ad7674d perf(get): query primary issues before wisp fallback (#4003)
  • 0bf33da perf(ready): narrow deferred-parent child filtering (#4001)
  • ffd5e32 perf(ready): page blocked checks for limited ready work (#3968)
  • 83f49c0 perf(ready): restrict blocked dependency scans to active IDs (#4002)
  • 9a29a15 perf(search): Q2+Q3+Q5 — skip-wisps merge, id-shrunk Pattern B, wisp count cache (bd-qi4qr, bd-co6m6)
  • 6ec5244 perf(search): tighten label and partial-id queries (#3967)
  • 42a2772 refactor(ui): extract markdown rendering to internal/uimd package (#4009)
  • 174dd91 test(auto-import): model concurrent writer guard (#4218)
  • 9fea6d3 test(cmd/bd): be-0x25q flag-to-env-var propagation gate for --ignore-schema-skew
  • 458cf89 test(cmd/bd): route sync.Once test temp dirs through TestMain cleanup (#4108)
  • c62f012 test(cmd/bd): use t.Chdir in drift tests to fix chdir race (#3747)
  • 882403f test(config): dolt.mode validation rejects invalid values
  • 57b0cab test(create): guard external-ref prelinking (#4216)
  • 61ae73e test(embedded): grep combined stdout+stderr for bd status text
  • 88e1354 test(embedded): split stdout/stderr in all JSON-parsing helpers (be-0ya2oe)
  • 4dc8dbd test(export): assert byte-stable JSONL across all record types (#4086)
  • 4189cdb test(init): host-only fatal guard + remove DRAFT_PR.md
  • 4561c05 test(init): port-only config should not fatal
  • 6913833 test(mcp): cover bd doctor routing for validate/detect_pollution
  • a499c2b test(regression): make workspace cleanup robust (#3854)
  • 439afcf test(regression): prevent baseline daemon timeout (#3809)
  • 4eaced4 test(setup): use filepath.Join in TestGeminiSettingsPaths assertions (#3555)
  • c1091b8 test(spike): joinIter panic repro test for current go-mysql-server (bd-wsgws)
  • 52a5ecf test(upgrade-smoke): exercise dependency blocker paths on migrated DB (#4238)
  • 6e7d0b0 test(where): isolate initialized db path state (#4193)
  • d80daa9 {CHANGELOG.md,internal}: cleanup and release notes

Don't miss a new beads release

NewReleases is sending notifications on new releases.