diff --git a/.beads/metadata.json b/.beads/metadata.json index 6e36c945..4faf148a 100644 --- a/.beads/metadata.json +++ b/.beads/metadata.json @@ -1,5 +1,5 @@ { "database": "beads.db", "jsonl_export": "issues.jsonl", - "last_bd_version": "0.25.1" + "last_bd_version": "0.26.0" } \ No newline at end of file diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 05d6ea7f..10a16188 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -9,7 +9,7 @@ "name": "beads", "source": "./", "description": "AI-supervised issue tracker for coding workflows", - "version": "0.25.1" + "version": "0.26.0" } ] } diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index e41f08a4..91a75da9 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -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.25.1", + "version": "0.26.0", "author": { "name": "Steve Yegge", "url": "https://github.com/steveyegge" diff --git a/CHANGELOG.md b/CHANGELOG.md index f8b6bca6..fa555663 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,93 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.26.0] - 2025-11-27 + +## [0.26.0] - 2025-11-27 + +### Added + +- **bd doctor --check-health**: Lightweight health checks for startup hooks (3fe94f2) + - Quick, silent health checks (exit 0 on success, non-zero on issues) + - Checks: version mismatch, sync.branch config, outdated hooks + - New `hints.doctor` config option to suppress doctor hints globally + - Git hooks now call `bd doctor --check-health` in post-merge/post-checkout + +- **--no-git-history Flag**: Prevent spurious deletions during import/sync (5506486) + - Use when git history is unreliable (shallow clones, squash merges) + - Prevents deletion manifest from removing issues based on stale history + +- **gh2jsonl Hash ID Mode**: Content-based ID generation for GitHub imports (#383 by @deangiberson) + - `--id-mode {sequential|hash}` flag (default: sequential for backward compatibility) + - `--hash-length {3,4,5,6,7,8}` for configurable hash length (default: 6) + - Hash IDs are deterministic using title, description, creator, timestamp + +- **CI Provenance Attestation**: npm publish now includes provenance attestation (03d62d0) + +- **bdui**: Added to Third-Party Tools ecosystem (#384) + +### Fixed + +- **Critical: MCP Protocol Stdin Fix** (PR #400 by @cleak) + - Subprocess stdin inheritance was breaking MCP JSON-RPC protocol + - All subprocess calls now use `stdin=subprocess.DEVNULL` + - Fixes hanging/blocking issues in Claude Desktop MCP integration + +- **Git Worktree Staleness** (#399) + - Staleness check was failing after writes in git worktrees + - Now uses RFC3339Nano precision for `last_import_time` metadata + +- **Multi-Part Prefix Support** (#398) + - Issue ID extraction now correctly handles multi-part prefixes + - Example: `my-app-123` correctly extracts prefix `my-app` + +- **bd sync Commit Scope** (bd-red) + - `bd sync` now only commits `.beads/` files, not other staged files + - Prevents accidental commits of unrelated staged changes + +- **Auto-Import to Wrong File** (bd-tqo) + - Fixed auto-import exporting to wrong JSONL file + - FindJSONLPath now correctly skips deletions.jsonl + +- **Deletions.jsonl Handling** + - Git hooks now properly stage deletions.jsonl for cross-clone propagation + - bd doctor no longer warns about deletions.jsonl + - Prevent rebase failures from deletions.jsonl writes + +- **Defense-in-Depth** (bd-4t7) + - Added additional check for --no-auto-import flag + +- **Tilde Expansion**: Global gitignore path now expands `~` correctly + +- **beads-mcp Type Checking**: Resolved all mypy type checking errors + +- **CI Test Stability**: Fixed Windows test failures + +### Changed + +- **Stealth Mode**: Removed global gitattributes setup from `bd init --stealth` (#391) + - Stealth mode now purely local with no global git configuration + +- **Pre-Push Hook Error Message**: Improved clarity when sync fails (#390) + +### Refactoring + +- Extract path canonicalization and database search helpers (7d765c2) +- Consolidate check-health DB access and expand hook checks (3458956) + +### Documentation + +- Sync skill CLI reference with current docs (62d1dc9) + +### Community + +- PR #400: MCP stdin fix (@cleak) +- PR #398: Multi-part prefix support +- PR #391: Stealth mode gitattributes removal +- PR #390: Pre-push hook error message (@jonathanpberger) +- PR #384: bdui ecosystem addition +- PR #383: gh2jsonl hash ID support (@deangiberson) + ## [0.25.1] - 2025-11-25 ### Added diff --git a/cmd/bd/info.go b/cmd/bd/info.go index 40932be0..65183729 100644 --- a/cmd/bd/info.go +++ b/cmd/bd/info.go @@ -287,6 +287,19 @@ type VersionChange struct { // versionChanges contains agent-actionable changes for recent versions var versionChanges = []VersionChange{ + { + Version: "0.26.0", + Date: "2025-11-27", + Changes: []string{ + "bd doctor --check-health - Lightweight health checks for startup hooks (exit 0 on success)", + "--no-git-history flag - Prevent spurious deletions when git history is unreliable", + "gh2jsonl --id-mode hash - Hash-based ID generation for GitHub imports", + "MCP Protocol Fix (PR #400) - Subprocess stdin no longer breaks MCP JSON-RPC", + "Git Worktree Staleness Fix (#399) - Staleness check works after writes in worktrees", + "Multi-Part Prefix Support (#398) - Handles prefixes like 'my-app-123' correctly", + "bd sync Commit Scope Fixed - Only commits .beads/ files, not other staged files", + }, + }, { Version: "0.25.1", Date: "2025-11-25", diff --git a/cmd/bd/templates/hooks/pre-commit b/cmd/bd/templates/hooks/pre-commit index 7838eb41..5929b766 100755 --- a/cmd/bd/templates/hooks/pre-commit +++ b/cmd/bd/templates/hooks/pre-commit @@ -1,5 +1,5 @@ #!/bin/sh -# bd-hooks-version: 0.25.1 +# bd-hooks-version: 0.26.0 # # bd (beads) pre-commit hook # diff --git a/cmd/bd/templates/hooks/pre-push b/cmd/bd/templates/hooks/pre-push index f80dc1f6..db3b4631 100755 --- a/cmd/bd/templates/hooks/pre-push +++ b/cmd/bd/templates/hooks/pre-push @@ -1,5 +1,5 @@ #!/bin/sh -# bd-hooks-version: 0.25.1 +# bd-hooks-version: 0.26.0 # # bd (beads) pre-push hook # diff --git a/cmd/bd/version.go b/cmd/bd/version.go index 47c1cfb3..c097392d 100644 --- a/cmd/bd/version.go +++ b/cmd/bd/version.go @@ -14,7 +14,7 @@ import ( var ( // Version is the current version of bd (overridden by ldflags at build time) - Version = "0.25.1" + Version = "0.26.0" // Build can be set via ldflags at compile time Build = "dev" // Commit and branch the git revision the binary was built from (optional ldflag) diff --git a/integrations/beads-mcp/pyproject.toml b/integrations/beads-mcp/pyproject.toml index 1ea64c6d..52ac6023 100644 --- a/integrations/beads-mcp/pyproject.toml +++ b/integrations/beads-mcp/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "beads-mcp" -version = "0.25.1" +version = "0.26.0" description = "MCP server for beads issue tracker." readme = "README.md" requires-python = ">=3.10" diff --git a/integrations/beads-mcp/src/beads_mcp/__init__.py b/integrations/beads-mcp/src/beads_mcp/__init__.py index 4bfb9a45..920f5f7b 100644 --- a/integrations/beads-mcp/src/beads_mcp/__init__.py +++ b/integrations/beads-mcp/src/beads_mcp/__init__.py @@ -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.25.1" +__version__ = "0.26.0" diff --git a/npm-package/package.json b/npm-package/package.json index 4ce6caf8..96a3a0b9 100644 --- a/npm-package/package.json +++ b/npm-package/package.json @@ -1,6 +1,6 @@ { "name": "@beads/bd", - "version": "0.25.1", + "version": "0.26.0", "description": "Beads issue tracker - lightweight memory system for coding agents with native binary support", "main": "bin/bd.js", "bin": {