Merge branch 'main' of github.com:steveyegge/beads

# Conflicts:
#	.beads/beads.jsonl
This commit is contained in:
Steve Yegge
2025-11-02 21:53:39 -08:00
10 changed files with 159 additions and 66 deletions

File diff suppressed because one or more lines are too long

View File

@@ -9,7 +9,7 @@
"name": "beads",
"source": "./",
"description": "AI-supervised issue tracker for coding workflows",
"version": "0.21.3"
"version": "0.21.4"
}
]
}

View File

@@ -1,7 +1,7 @@
{
"name": "beads",
"description": "AI-supervised issue tracker for coding workflows. Manage tasks, discover work, and maintain context with simple CLI commands.",
"version": "0.21.3",
"version": "0.21.4",
"author": {
"name": "Steve Yegge",
"url": "https://github.com/steveyegge"

View File

@@ -7,6 +7,66 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
## [0.21.4] - 2025-11-02
### Added
- **New Commands**:
- `bd status` - Database overview command showing issue counts and stats (bd-28db)
- `bd comment` - Convenient alias for `bd comments add` (bd-d3f0)
- `bd daemons restart` - Restart specific daemon without manual kill/start
- `--json` flag for `bd stale` command
- **Protected Branch Workflow**:
- `BEADS_DIR` environment variable for custom database location (bd-e16b)
- `sync.branch` configuration for protected branch workflows (bd-b7d2)
- Git worktree management with sparse checkout for sync branches (bd-a4b5)
- Only checks out `.beads/` in worktrees, minimal disk usage
- Only used when `sync.branch` is configured, not for default users
- Comprehensive protected branch documentation
- **Migration & Validation**:
- Migration inspection tools for AI agents (bd-627d)
- Conflict marker detection in `bd import` and `bd validate`
- Git hooks health check in `bd doctor`
- External reference (`external_ref`) UNIQUE constraint and validation
- `external_ref` now primary matching key for import updates (bd-1022)
### Fixed
- **Critical Fixes**:
- Daemon corruption from git conflicts (bd-8931)
- MCP `set_context` hangs with stdio transport (GH #153)
- Double-release race condition in `importInProgress` flag
- Critical daemon race condition causing stale exports
- **Configuration & Migration**:
- `bd migrate` now detects and sets missing `issue_prefix` config
- Config system refactored (renamed `config.json``metadata.json`)
- Config version update in migrate command
- **Daemon & RPC**:
- `bd doctor --json` flag not working (bd-6049)
- `bd import` now flushes JSONL immediately for daemon visibility (bd-47f1)
- Panic recovery in RPC `handleConnection` (bd-1048)
- Daemon auto-upgrades database version instead of exiting
- **Windows Compatibility**:
- Windows test failures (path handling, bd binary references)
- Windows CI: forward slashes in git hook shell scripts
- TestMetricsSnapshot/uptime flakiness on Windows
- **Code Quality**:
- All golangci-lint errors fixed - linter now passes cleanly
- All gosec, misspell, and unparam linter warnings resolved
- Tightened file permissions and added security exclusions
### Changed
- Daemon automatically upgrades database schema version instead of exiting
- Git worktree management for sync branches uses sparse checkout (`.beads/` only)
- Improved test isolation and performance optimization
## [0.21.2] - 2025-11-01
### Changed

View File

@@ -5,21 +5,21 @@
class Bd < Formula
desc "AI-supervised issue tracker for coding workflows"
homepage "https://github.com/steveyegge/beads"
version "0.21.2"
version "0.21.4"
license "MIT"
on_macos do
if Hardware::CPU.intel?
url "https://github.com/steveyegge/beads/releases/download/v0.21.2/beads_0.21.2_darwin_amd64.tar.gz"
sha256 "c877171d54fa0270601cd48a817f8acdc3b8b091afdc5997b3aa0aa61e82b1df"
url "https://github.com/steveyegge/beads/releases/download/v0.21.4/beads_0.21.4_darwin_amd64.tar.gz"
sha256 "c9a922de032f1861fe928f5a817da76b18718f6a30fd36fa2f1d8845d637d2ce"
def install
bin.install "bd"
end
end
if Hardware::CPU.arm?
url "https://github.com/steveyegge/beads/releases/download/v0.21.2/beads_0.21.2_darwin_arm64.tar.gz"
sha256 "ef06c2f8dcd72424563ab6661bba01d0493f87a74f616303b44064609d4b28ff"
url "https://github.com/steveyegge/beads/releases/download/v0.21.4/beads_0.21.4_darwin_arm64.tar.gz"
sha256 "b04a9ac371fbeb3d18817b18f0c0a04665cb8ae24c79c8891ca3ed477ac444ce"
def install
bin.install "bd"
@@ -29,15 +29,15 @@ class Bd < Formula
on_linux do
if Hardware::CPU.intel? && Hardware::CPU.is_64_bit?
url "https://github.com/steveyegge/beads/releases/download/v0.21.2/beads_0.21.2_linux_amd64.tar.gz"
sha256 "1ede94b38f6f3ec5bc50b507c5491a9a508c0c88ca3299c2daed964a4816da1b"
url "https://github.com/steveyegge/beads/releases/download/v0.21.4/beads_0.21.4_linux_amd64.tar.gz"
sha256 "edc9a3262c0edc0f4e9a05f1fcd86d612be1434af4a38a5563879d3a54b125f8"
def install
bin.install "bd"
end
end
if Hardware::CPU.arm? && Hardware::CPU.is_64_bit?
url "https://github.com/steveyegge/beads/releases/download/v0.21.2/beads_0.21.2_linux_arm64.tar.gz"
sha256 "4eaee34c8adb38707f9b82a4b52530d17582fff3b9892377afa448272e5a8d73"
url "https://github.com/steveyegge/beads/releases/download/v0.21.4/beads_0.21.4_linux_arm64.tar.gz"
sha256 "a0bcd71c6f00ce7149123bd6e60a755f4b8bb4f2b3ce7eeacbe37afb00b846ad"
def install
bin.install "bd"
end

View File

@@ -29,6 +29,37 @@ export PATH="$PATH:$(go env GOPATH)/bin"
go install github.com/steveyegge/beads/cmd/bd@latest
```
### Wrong version of bd running / Multiple bd binaries in PATH
If `bd version` shows an unexpected version (e.g., older than what you just installed), you likely have multiple `bd` binaries in your PATH.
**Diagnosis:**
```bash
# Check all bd binaries in PATH
which -a bd
# Example output showing conflict:
# /Users/you/go/bin/bd <- From go install (older)
# /opt/homebrew/bin/bd <- From Homebrew (newer)
```
**Solution:**
```bash
# Remove old go install version
rm ~/go/bin/bd
# Or remove mise-managed Go installs
rm ~/.local/share/mise/installs/go/*/bin/bd
# Verify you're using the correct version
which bd # Should show /opt/homebrew/bin/bd or your package manager path
bd version # Should show the expected version
```
**Why this happens:** If you previously installed bd via `go install`, the binary was placed in `~/go/bin/`. When you later install via Homebrew or another package manager, the old `~/go/bin/bd` may appear earlier in your PATH, causing the wrong version to run.
**Recommendation:** Choose one installation method (Homebrew recommended) and stick with it. Avoid mixing `go install` with package managers.
### `zsh: killed bd` or crashes on macOS
Some users report crashes when running `bd init` or other commands on macOS. This is typically caused by CGO/SQLite compatibility issues.

View File

@@ -100,5 +100,6 @@ func init() {
staleCmd.Flags().IntP("days", "d", 30, "Issues not updated in this many days")
staleCmd.Flags().StringP("status", "s", "", "Filter by status (open|in_progress|blocked)")
staleCmd.Flags().IntP("limit", "n", 50, "Maximum issues to show")
staleCmd.Flags().BoolVar(&jsonOutput, "json", false, "Output JSON format")
rootCmd.AddCommand(staleCmd)
}

View File

@@ -11,7 +11,7 @@ import (
var (
// Version is the current version of bd (overridden by ldflags at build time)
Version = "0.21.3"
Version = "0.21.4"
// Build can be set via ldflags at compile time
Build = "dev"
)

View File

@@ -1,6 +1,6 @@
[project]
name = "beads-mcp"
version = "0.21.3"
version = "0.21.4"
description = "MCP server for beads issue tracker."
readme = "README.md"
requires-python = ">=3.10"

View File

@@ -4,4 +4,4 @@ This package provides an MCP (Model Context Protocol) server that exposes
beads (bd) issue tracker functionality to MCP Clients.
"""
__version__ = "0.21.3"
__version__ = "0.21.4"