v0.49.2
beads v0.49.2
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
- e02c44d1d74b4ff78c8e9b1e8b4db17500071a64 Merge PR #1290: feat: Add GitLab backend for bidirectional issue sync
- dc8bb7af1a30dce8026f60aa69c8a75067468349 feat(cli): add bd backend and bd sync mode subcommands
- 7810c630b1c8eea4cc73555c9779e5192141ce4c feat(config): add env var overrides for Dolt server connection settings
- 9df801effd606b3195c2108278eb511ebec7e27b feat(config): make agent roles configurable (bd-hx8w)
- 857d2b696aabedda36dc0f8e094ff19272f0f59f feat(context): add UserRole detection to RepoContext
- 9e37767df589f28555071231a20473f9b39f0a7e feat(dep): resolve external refs in dep list for cross-rig dependencies
- e4886a0f1b44cf54393c0d0706022e8ac837f141 feat(doctor): add Dolt-specific diagnostics and performance profiling
- abbc0914ec70fd0084db4d759a8946c73227373a feat(gitlab): implement GitLab REST API client wrapper
- fc278403546dce5d6f93505183e7d4a894ea7496 feat(import): process JSONL deletion markers (bd-9qywp)
- d5a8e0f236e852f2d58dfadf36215785c4c3c9eb feat(init): add interactive contributor role prompt
- a2a94e1f2d3a3c7bca6d77cc69ed14933bd2db61 feat(init): auto-detect dolt server and enable server mode (gt-1mf.3)
- 03ba29f647bb370e7246e748876fd051542427cf feat(jira): add pull_prefix and push_prefix config options
- eb07ed986e8f7833bd41571bcb40e6a96d85d86a feat(kv): add key-value store commands
- 13dbef58d73206d207e8c371745d01b05ea918a4 feat(kv): add key-value store commands (#1164)
- 82a235494a70e421baeab1923f731f2ff20f984d feat(mol): add hint to view step instructions in mol current output (#1403)
- 9e16f3473315fd49c4db07a03f0bf4b3e38ed52b feat(role): implement explicit role configuration via git
- b080961c1af5220a6192ee53cc26a0271e31b7a9 feat(sync): detect push permission errors during sync
- 774cc5bbd0d35142e8dcc1f6b694c168ac218bf2 feat: add comment_count to issue JSON views (list, ready, search)
- c23a84801d22a5851d077d365897066d3f2c1779 feat: add events JSONL export (opt-in via events.export config)
- 92fd124f5c23871c6359a983f5bc3980859bd658 feat: add optional per-issue JSON metadata field (SQLite + Dolt) (#1407)
Bug Fixes
- 2879554b26a37363c6df07b315ba958cdf30fed6 fix: handle nil pointer dereference in bd restore with invalid issue ID
- e66b775d800e503d353508895f3d54d2b1c2f9f8 fix(build): add CGO build tags to Dolt storage for cross-compilation
- 9e5ea59fea9d10cf73b0af2bce434225b8f5fe67 fix(ci): disable CGO for Windows build in goreleaser
- 051aeb0a631ffc726fbb254b7b07be24a8c8ca4a fix(cli): address code review feedback for backend/sync mode commands
- e07ac184cf0de31a2266a76936f1d1282f7081b9 fix(cli): use abstract error messages instead of exposing internals (bd-ats9.3.2)
- 7448754152b1ef5bf3408ccec0c0acbc805335f0 fix(config): add YAML config support for daemon auto-sync settings (#1294)
- 3abec58fc4e083cf8c2ec95ad120f5f3cd387c02 fix(create): remove Gas Town-specific --role-type flag (bd-31ajf)
- 02b445e87662389154cd6b94230099c0a46b2707 fix(daemon): make daemon start idempotent (#1334)
- 9939e717bf55fe76ab047bfd223e2267d73d795f fix(doctor): add Dolt backend detection to all fix functions (gt-doctor-dolt-fix)
- cb1a3790503618e89ba86d5cc0f328f625a230e6 fix(doctor): add fix for stale JSONL in dolt-native mode (bd-bbo8)
- 289512ad809c76d929ad4d5fbcba3a828e605eaa fix(doctor): address review issues in Dolt diagnostics
- bf194b7d8be357a6f1215bc3431d000ce255a48a fix(doctor): skip SQLite-specific checks when using Dolt backend
- ba3a725299de5a554a86e7d038262946cbca475a fix(formula): add dev build handling to local-install step
- 93965b4abeed920a4701e03571d1b6bb75810722 fix(formula): ignore undeclared handlebars in description text (gt-ky9loa) (#1394)
- a90720395f191bc88129fe7d728d5bef48131424 fix(gitlab): P0 - conflict detection before push and SyncContext
- f9f3a03ad68ead99c3c59995334f48ff54b7c8b7 fix(gitlab): P1 - add pagination limit and context cancellation
- 745002eeac58e61eb34430b258321eac9ea09c73 fix(gitlab): P2 - fix error handling and type safety
- 917d8be8ff7de91a6f5309aa784325b09a9b6d5d fix(gitlab): P2-P3 - cleanup deprecated code and improve docs
- 96a28eefaa3b13fb8bc27f0f23e912fc077fcad8 fix(gitlab): address PR review findings for merge readiness
- 8604c5ec1872b67ae9b87471846d75891bd3c909 fix(gitlab): address code review round 3 feedback
- a17617704d0d333dba852fb9100b02c6f6ecbf38 fix(importer): remove dead code with sqlite.IsUniqueConstraintError (bd-2kgr)
- dbc5f3c34ccd9de1f4603ca550e7c8c3a81cb8f1 fix(kv): add key validation and exit code on missing key
- d8f5e1f1fce57649d27113e8ea5b0d0f9424ab11 fix(linear): exclude ephemeral issues from sync push by default (#1397)
- 9d75d41327af5f9d5da3eaba4f37288a76f3f6a4 fix(lint): add gosec nolint for events.jsonl file permissions
- 18b7baacb57485cff553140a7e8a903dfd1ecaea fix(lint): use 0600 permissions for events.jsonl
Others
- c8abf99dd8b2af7833ad8973753f7df505aad786 Add GitLab types for beads integration (Issue #4)
- 04b34b25a0ba036f12d1b2278d27379e8016949a Add bd gitlab command with sync, status, projects subcommands
- 789a0a4f66d3c97c995ae95f5d665866e2fd9671 Add export-state/ to gitignore template
- efe31b4578f05c4fdbe2c80e859ec4d26536e4c9 Add integration tests for GitLab backend (Issue #11)
- 70e5cc16159fd929734a55d7b108c9f047db40f0 Add review fixes: URL encoding, WithEndpoint, FetchIssueByIID, CreateIssueLink
- f271075976edda5e64eb3c8a8c67918fe12c2a4b Add unit tests for GitLab backend (Issue #10)
- b600c477d32af74b1a910f4db327264e5efd789b Fix code review issues: path-based IDs, ID collisions, warnings
- 78adcf5320841d8ff5bcb34abf0149c5a9c60763 Fix daemon to respect BD_SOCKET environment variable
- 7af8153b432cc0f7974248aa65d0990ccbe87c58 Implement GitLab sync (Issue #7): pull, push, conflict detection
- e8dd9b412d9fbd0942f6028fe63e6357a05f352b Implement GitLab to beads mapping (Issue #6)
- 1f5cb9f8fc768c70deff8c4bf15f7eafd44cd487 Implement conflict resolution strategies (Issue #8)
- 2c7e2d88afc00695f8c64e2c1ba5740beea92078 Revert Dolt lock cleanup workaround; fix embedded Dolt open via driver retries (#1389)
- c6bb265460103170364bcd770d4f36ccbc512d1a Show blocking dependencies inline in bd list output
- 5457c1d40bd490ca05c466481625e7b591aa134b Update COMMUNITY_TOOLS.md
- ed3d36da8b2964fb2ac8ea2c6799ed9cbc29f0fc chore(beads): sync after closing bd-7nd6t
- 379c4c124900849c8a1d42522250712addfa5162 chore(deps): bump fastmcp in /integrations/beads-mcp (#1345)
- b8f4f917cfa37060f081dc735ad64cbaf4182a90 chore(deps): bump github.com/ncruces/go-sqlite3 from 0.30.4 to 0.30.5 (#1346)
- 922c7f63f624996d7d18ec669ff673f15f62eec6 docs(kv): add CLI documentation and tests for KV store
- 100b89a7893fed743e50a1bfd3643ebe31fc3902 feat(show,comments): display comment timestamps with time and add --local-time flag
- 6a9de494784ed3a933bc0ccdd5db62faacd0f08e refactor(compact): accept interface instead of concrete SQLiteStorage (bd-oa45)
- 07600dcffbedd9560e9b4041c811a9a06d59c506 refactor(hooks): remove Gas Town role detection from beads core
- 8516436c9e6eff7e83e9a76d5d4b98781867b94d refactor(hooks): remove all Gas Town role detection from beads
- 2e6789d450784ef5e1290db22c627bb16dae0383 refactor(kv): move commands under bd kv subcommand
- cb1e3555110afe83dfad41c94ddbf6d8287f7a6c refactor(rpc): fix leaky abstraction - remove direct sqlite imports (bd-oslm)
- 2d4469763c8308608204cd9e67e3613f5b2878c2 refactor(validation): remove Gas Town actor validation from beads core (bd-741si)
- 36e17250b36774d5d5ba590e90591081dd6306a5 review(dolt): complete bd-ats9.4 - Dolt integration review