chore: bump version to 0.27.0

Release highlights:
- Custom status states via config (bd-1pj6)
- Contributor fork workflows: bd init --contributor (bd-bx9)
- Full git worktree support (#416)
- CRITICAL: Sync corruption prevention (hash-based staleness + reverse ZFC)
- Out-of-order dependency handling in JSONL import (#414)
- bd sync --squash for batching commits (bd-o2e)
- Fresh clone detection in bd doctor (bd-4ew)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Steve Yegge
2025-11-29 23:37:25 -08:00
parent 133503c2b0
commit 7faf787e6d
7 changed files with 94 additions and 18 deletions

View File

@@ -7,6 +7,86 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.27.0] - 2025-11-29
### Added
- **Custom Status States**: Define custom issue statuses via config (bd-1pj6)
- Configure project-specific statuses like `testing`, `blocked`, `review`
- Status validation ensures only configured statuses are used
- Backwards compatible: open/in_progress/closed always work
- **Contributor Fork Workflows**: `bd init --contributor` now auto-configures `sync.remote=upstream` (bd-bx9)
- Syncs issues from upstream rather than origin
- Ideal for contributors working on forks
- **Git Worktree Support**: Full support for git worktrees (#416)
- `bd hooks install` now works correctly in worktrees
- Helpful message when entering worktree repo without beads initialized
- Hooks properly detect worktree vs main repository
- **Daemon Health Checks**: Health monitoring in daemon event loop (bd-gqo)
- Periodic health checks detect stale database state
- Auto-recovery from detected inconsistencies
- **Fresh Clone Detection**: `bd doctor` now detects fresh clones (bd-4ew)
- Suggests `bd init` when JSONL exists but no database
- Improved onboarding experience for new contributors
- **bd sync --squash**: Batch multiple sync commits into one (bd-o2e)
- Reduces commit noise when syncing frequently
- Optional flag for cleaner git history
- **Error Handling Helpers**: Extracted FatalError/WarnError utilities (bd-s0z)
- Consistent error formatting across codebase
- Better error messages for users
### Fixed
- **CRITICAL: Sync Corruption Prevention**: Multiple fixes prevent stale database from corrupting JSONL
- **Hash-based staleness detection** (bd-f2f): SHA256 hash comparison catches content mismatches
- **Reverse ZFC check** (bd-53c): Detects when JSONL has more issues than DB
- **Stale daemon connection** (eb4b81d): Prevents corruption from stale SQLite connections
- Combined, these fixes eliminate the sync corruption bugs that affected v0.26.x
- **Multi-Hyphen Prefix Support** (#419): Hash IDs with multi-part prefixes now handled correctly
- Example: `my-app-abc123` correctly parsed as prefix `my-app`
- **Out-of-Order Dependencies** (#414): JSONL import handles dependencies before their targets exist
- Fixes import failures when issues reference not-yet-imported dependencies
- **--from-main Sync Mode** (#418): Now defaults to `noGitHistory=true`
- Prevents spurious deletions when syncing from main branch
- **JSONL-Only Mode Detection**: Auto-detects when config has `no-db: true` (bd-5kj)
- Properly handles repositories using JSONL without SQLite
- **Init Safety Guard**: Prevents overwriting existing JSONL data on init
- Warns user when data already exists, requires confirmation
- **Snapshot Cleanup** (bd-0io): Properly cleans up snapshot files after sync
- Removes `.beads/*.snapshot` files that could cause conflicts
- **Daemon Registry Locking** (bd-5bj): Cross-process locking prevents registry corruption
- Fixes race conditions when multiple processes access daemon registry
- **Doctor Merge Artifacts**: Excludes merge artifacts from "multiple JSONL" warning
- Reduces false positives during merge resolution
### Changed
- **Documentation**: Fixed birthday paradox threshold explanation in README
- **Documentation**: Corrected `bd dep add` syntax and semantics
### Community
- PR #419: Multi-hyphen prefix support
- PR #418: --from-main noGitHistory default
- PR #416: Git worktree hooks support
- PR #415: CI fixes
- PR #414: Out-of-order dependency handling
- PR #404: Error on invalid JSON during init (@joelklabo)
## [0.26.2] - 2025-11-29 ## [0.26.2] - 2025-11-29
### Fixed ### Fixed

View File

@@ -288,21 +288,17 @@ type VersionChange struct {
// versionChanges contains agent-actionable changes for recent versions // versionChanges contains agent-actionable changes for recent versions
var versionChanges = []VersionChange{ var versionChanges = []VersionChange{
{ {
Version: "0.26.2", Version: "0.27.0",
Date: "2025-11-29", Date: "2025-11-29",
Changes: []string{ Changes: []string{
"FIX (bd-f2f): Hash-based staleness detection prevents stale DB from corrupting JSONL", "Custom Status States - Define project-specific statuses via config (testing, blocked, review)",
"Detects content differences even when issue counts match between DB and JSONL", "Contributor Fork Workflows - `bd init --contributor` auto-configures sync.remote=upstream",
"Computes SHA256 hash of JSONL content to detect mismatches missed by count-based checks", "Git Worktree Support - Full support for worktrees in hooks and detection",
}, "CRITICAL: Sync corruption prevention - Hash-based staleness + reverse ZFC checks",
}, "Out-of-Order Dependencies (#414) - JSONL import handles deps before targets exist",
{ "--from-main defaults to noGitHistory=true - Prevents spurious deletions",
Version: "0.26.1", "bd sync --squash - Batch multiple sync commits into one",
Date: "2025-11-29", "Fresh Clone Detection - bd doctor suggests 'bd init' when JSONL exists but no DB",
Changes: []string{
"CRITICAL FIX (bd-53c): Reverse ZFC check prevents stale DB from corrupting JSONL",
"bd sync now detects when JSONL has more issues than DB and imports first",
"Prevents fresh/stale clones from exporting incomplete database state",
}, },
}, },
{ {

View File

@@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
# bd-hooks-version: 0.26.2 # bd-hooks-version: 0.27.0
# #
# bd (beads) post-checkout hook # bd (beads) post-checkout hook
# #

View File

@@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
# bd-hooks-version: 0.26.2 # bd-hooks-version: 0.27.0
# #
# bd (beads) post-merge hook # bd (beads) post-merge hook
# #

View File

@@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
# bd-hooks-version: 0.26.2 # bd-hooks-version: 0.27.0
# #
# bd (beads) pre-commit hook # bd (beads) pre-commit hook
# #

View File

@@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
# bd-hooks-version: 0.26.2 # bd-hooks-version: 0.27.0
# #
# bd (beads) pre-push hook # bd (beads) pre-push hook
# #

View File

@@ -14,7 +14,7 @@ import (
var ( var (
// Version is the current version of bd (overridden by ldflags at build time) // Version is the current version of bd (overridden by ldflags at build time)
Version = "0.26.2" Version = "0.27.0"
// Build can be set via ldflags at compile time // Build can be set via ldflags at compile time
Build = "dev" Build = "dev"
// Commit and branch the git revision the binary was built from (optional ldflag) // Commit and branch the git revision the binary was built from (optional ldflag)