Commit Graph

1360 Commits

Author SHA1 Message Date
Steve Yegge
b7ac88f56e docs: Add 0.21.6 release notes to CHANGELOG 2025-11-04 00:40:26 -08:00
Steve Yegge
062a707cef chore: Bump version to 0.21.6
Updated all component versions:
- bd CLI: 0.21.5 → 0.21.6
- Plugin: 0.21.5 → 0.21.6
- MCP server: 0.21.5 → 0.21.6
- Documentation: 0.21.5 → 0.21.6

Generated by scripts/bump-version.sh
2025-11-04 00:38:35 -08:00
Steve Yegge
6e4a1589f4 Auto-sync issues 2025-11-04 00:38:23 -08:00
Steve Yegge
1009f0b263 Sync issues to JSONL
Amp-Thread-ID: https://ampcode.com/threads/T-c3fa2879-21ad-4918-b539-8f299e13f706
Co-authored-by: Amp <amp@ampcode.com>
2025-11-04 00:38:15 -08:00
Steve Yegge
efed596124 bd sync: 2025-11-04 00:37:56 2025-11-04 00:37:56 -08:00
Steve Yegge
abbdbf487a fix: Update dep_add test to match current show output format 2025-11-04 00:23:25 -08:00
Steve Yegge
df6534de7f fix: Update Nix vendorHash after go.mod dependency updates
The Anthropic SDK update in PR #216 changed go.sum, requiring a new
vendorHash for the Nix flake build.

Updated hash from CI error output: sha256-m/2e3OxM4Ci4KoyH+leEt09C/CpD9SRrwPd39/cZQ9E=
2025-11-03 23:48:49 -08:00
Steve Yegge
6d3e2e0b4d Merge pull request #219 from rsnodgrass/fix-symlink-bug
Fix symlink path resolution in findDatabaseInTree
2025-11-03 23:39:06 -08:00
Steve Yegge
b27e3069e6 Merge pull request #214 from steveyegge/dependabot/pip/integrations/beads-mcp/fastmcp-2.13.0.2
Bump fastmcp from 2.13.0.1 to 2.13.0.2 in /integrations/beads-mcp
2025-11-03 23:37:48 -08:00
Steve Yegge
b22bfca85a Merge pull request #216 from steveyegge/dependabot/go_modules/github.com/anthropics/anthropic-sdk-go-1.16.0
Bump github.com/anthropics/anthropic-sdk-go from 1.14.0 to 1.16.0
2025-11-03 23:37:43 -08:00
Steve Yegge
7caab7aa9a bd sync: 2025-11-03 22:40:18 2025-11-03 22:40:18 -08:00
Steve Yegge
fc2a9e183e Implement bd comment alias for bd comments add (bd-d3f0)
- Add commentCmd as top-level alias that delegates to commentsAddCmd
- Add flags for --file and --author to the alias
- Add comprehensive tests in comments_test.go
- Maintain backward compatibility with bd comments add
- Close bd-d3f0
2025-11-03 22:23:36 -08:00
Steve Yegge
4e1e1f361c bd sync: 2025-11-03 22:23:29 2025-11-03 22:23:29 -08:00
Steve Yegge
68876dd98f fix: CI failures - performance thresholds, test eligibility, Nix hash, lint errors
- TestSyncBranchPerformance: Increase Windows threshold to 500ms (was 150ms)
  Windows git operations are ~3x slower than Unix
- TestCompactTier1: Fix eligibility by using 7-day minimum and 8-day closure
  Changed compact_tier1_days from 0 to 7 to properly test eligibility checks
- Nix flake: Update vendorHash for current go.mod dependencies
  sha256-cS2saiyKMgw4cXSc2INBHNJfJz5300ybI6Vxda1vLGk=
- Lint fixes:
  - Remove unused 'quiet' parameter from createConfigYaml
  - Change template file permissions from 0644 to 0600 (gosec G306)
  - Add nosec comment for sanitized file path (gosec G304)
2025-11-03 22:01:37 -08:00
Steve Yegge
c86c4b7219 docs: Add Claude Code marketplace update section to release process 2025-11-03 22:01:37 -08:00
Steve Yegge
21797db780 bd sync: 2025-11-03 21:31:40 2025-11-03 21:31:40 -08:00
Steve Yegge
0ad8a0ef01 bd sync: 2025-11-03 20:54:29 2025-11-03 20:54:30 -08:00
Steve Yegge
2b1606443b new design docs 2025-11-03 20:54:00 -08:00
dependabot[bot]
4549da3db3 Bump github.com/anthropics/anthropic-sdk-go from 1.14.0 to 1.16.0
Bumps [github.com/anthropics/anthropic-sdk-go](https://github.com/anthropics/anthropic-sdk-go) from 1.14.0 to 1.16.0.
- [Release notes](https://github.com/anthropics/anthropic-sdk-go/releases)
- [Changelog](https://github.com/anthropics/anthropic-sdk-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/anthropics/anthropic-sdk-go/compare/v1.14.0...v1.16.0)

---
updated-dependencies:
- dependency-name: github.com/anthropics/anthropic-sdk-go
  dependency-version: 1.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-04 04:32:06 +00:00
Steve Yegge
eb434dd08c Add template support for issue creation (bd-164b)
- Built-in templates: epic, bug, feature (embedded in binary)
- Custom templates in .beads/templates/ (override built-ins)
- Commands: bd template list/show/create
- Flag: bd create --from-template <name> "Title"
- Template fields: description, type, priority, labels, design, acceptance
- Security: sanitize template names to prevent path traversal
- Flag precedence: explicit flags override template defaults
- Tests: template loading, security, flag precedence
- Docs: commands/template.md and README.md updated

Closes bd-164b

Amp-Thread-ID: https://ampcode.com/threads/T-118fe54f-b112-4f99-a3d9-b7df53fb7284
Co-authored-by: Amp <amp@ampcode.com>
2025-11-03 20:31:11 -08:00
Steve Yegge
d2328f23bf bd sync: 2025-11-03 19:56:41 2025-11-03 19:56:41 -08:00
Steve Yegge
99c03ddc1a bd sync: 2025-11-03 19:14:00 2025-11-03 19:14:00 -08:00
Steve Yegge
07668e7346 chore: Update Beads issue tracker and ignore malformed DB files
- Export latest issue state to beads.jsonl
- Add gitignore entries for malformed SQLite DB files created by old buggy code
- Ignore bd-original backup

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 18:03:07 -08:00
Steve Yegge
e972f1d866 fix(sqlite): Fix connection string construction for :memory: databases
The previous code had two bugs:
1. Double 'file:' prefix when path was ':memory:'
2. Two '?' separators instead of proper '?...&...' syntax

This caused SQLite errors: 'no such cache mode: shared?_pragma=...'

Fixed by:
- Building connStr directly for :memory: case with proper syntax
- Using '&' to chain query parameters
- Handling filepath.Abs() only for real files, not :memory:

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 16:16:27 -08:00
Steve Yegge
a0eb19066a Fix SQLite file:// URI scheme to prevent query params in filename (bd-c54b) 2025-11-03 16:08:34 -08:00
Steve Yegge
30eccde11f Update beads.jsonl with bd-c54b (SQLite filename bug) 2025-11-03 15:05:49 -08:00
Steve Yegge
cecec99672 Fix: bd init --no-db now sets no-db: true in config.yaml
GH #210: bd init --no-db was creating config.yaml but leaving
no-db commented out, forcing users to pass --no-db on every command.

Changes:
- Modified createConfigYaml() to accept noDbMode parameter
- When true, writes 'no-db: true' instead of '# no-db: false'
- Added TestInitNoDbMode() to verify end-to-end workflow

The config reading logic was already in place (main.go:122), just needed
to write the correct value during init.

Fixes bd-5cny

Amp-Thread-ID: https://ampcode.com/threads/T-2c569435-6291-40e8-b39b-c33fd317d853
Co-authored-by: Amp <amp@ampcode.com>
2025-11-03 15:01:46 -08:00
Steve Yegge
60bdccf508 Update beads.jsonl auto-sync
Amp-Thread-ID: https://ampcode.com/threads/T-43f6c7bf-9d4f-4475-8266-69e0a35a5909
Co-authored-by: Amp <amp@ampcode.com>
2025-11-03 14:55:37 -08:00
Ryan Snodgrass
22311b9240 Fix symlink path resolution in findDatabaseInTree
Resolve symlinks in working directory before walking up the tree
to find .beads directory. This ensures consistent path handling
when repositories are accessed via symlinks.

Without this fix, daemon operations can fail with 'operation not
permitted' errors when trying to export to JSONL, because the
daemon resolves paths differently than the CLI commands.

Example issue: /Users/user/Code -> /Users/user/Documents/Code
The daemon would try to write to the symlinked path while the
file system expects operations on the resolved path.
2025-11-03 14:48:13 -08:00
Steve Yegge
3343351d3b Fix epic hierarchy display in bd show command
Amp-Thread-ID: https://ampcode.com/threads/T-43f6c7bf-9d4f-4475-8266-69e0a35a5909
Co-authored-by: Amp <amp@ampcode.com>
2025-11-03 14:24:45 -08:00
dependabot[bot]
2ec55563ff Bump fastmcp from 2.13.0.1 to 2.13.0.2 in /integrations/beads-mcp
Bumps [fastmcp](https://github.com/jlowin/fastmcp) from 2.13.0.1 to 2.13.0.2.
- [Release notes](https://github.com/jlowin/fastmcp/releases)
- [Changelog](https://github.com/jlowin/fastmcp/blob/main/docs/changelog.mdx)
- [Commits](https://github.com/jlowin/fastmcp/compare/v2.13.0.1...v2.13.0.2)

---
updated-dependencies:
- dependency-name: fastmcp
  dependency-version: 2.13.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 20:55:49 +00:00
Steve Yegge
e07e3a7833 bd sync: 2025-11-03 12:30:28 2025-11-03 12:30:28 -08:00
Steve Yegge
a58f5b4509 Merge wasm-port-bd-44d0: Add npm package with native binaries
Merges complete npm package implementation for @beads/bd.

Features:
- npm package wrapping native bd binaries
- Automatic platform-specific binary download
- Claude Code for Web integration via SessionStart hooks
- Comprehensive integration test suite (5 tests, all passing)
- Complete documentation (6 guides)
- Release process documentation

Published to npm: https://www.npmjs.com/package/@beads/bd

Benefits over WASM:
- Full SQLite support (native vs custom VFS)
- Better performance
- Simpler implementation and maintenance
- 100% feature parity with standalone bd

Closes bd-febc
2025-11-03 12:08:39 -08:00
Steve Yegge
3335cde33a bd sync: 2025-11-03 12:07:56 2025-11-03 12:07:56 -08:00
Steve Yegge
f2baecf249 bd sync: 2025-11-03 10:49:27
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 12:04:17 -08:00
Steve Yegge
b10293533f bd sync: 2025-11-03 12:04:01 2025-11-03 12:04:01 -08:00
Steve Yegge
b4cb636d92 Switch from hex to Base36 encoding for issue IDs (GH #213)
This change improves information density by using Base36 (0-9, a-z) instead
of hex (0-9, a-f) for hash-based issue IDs. Key benefits:

- Shorter IDs: Can now use 3-char IDs (was 4-char minimum)
- Better scaling: 3 chars good for ~160 issues, 4 chars for ~980 issues
- Case-insensitive: Maintains excellent CLI usability
- Backward compatible: Old hex IDs continue to work

Changes:
- Implemented Base36 encoding with proper truncation (keep LSB)
- Updated adaptive length thresholds (3-8 chars instead of 4-8)
- Fixed collision probability math to match encoding (was calculating
  for base36 but encoding in hex - now both use base36)
- Fixed ID parser bug (use prefixWithHyphen for substring matching)
- Updated all tests and test data patterns

Fixes #213

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 12:02:15 -08:00
Steve Yegge
fc71d4e192 Add integration tests and release documentation for npm package
Integration Tests:
- Comprehensive test suite covering all major functionality
- 5 test scenarios: installation, binary functionality, workflow,
  Claude Code for Web simulation, platform detection
- Tests JSONL import/export across sessions
- Tests all major commands (init, create, list, show, update, close, ready)
- All tests passing 

Testing Documentation:
- TESTING.md with complete test documentation
- Describes unit vs integration tests
- Manual testing scenarios
- CI/CD recommendations
- Troubleshooting guide

Release Documentation:
- RELEASING.md with comprehensive release process
- Covers all distribution channels: GitHub, Homebrew, PyPI, npm
- Step-by-step instructions for each channel
- Version numbering and release cadence
- Hotfix and rollback procedures
- Automation opportunities with GitHub Actions

npm Package Updates:
- Added test:integration and test:all scripts
- Integration tests validate real-world usage patterns
- Tests simulate Claude Code for Web SessionStart hooks

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 11:54:37 -08:00
Steve Yegge
da921e1829 Add npm package for bd with native binaries (bd-febc)
Implements @beads/bd npm package for easy installation in Node.js
environments, especially Claude Code for Web.

Features:
- Automatic platform-specific binary download during postinstall
- CLI wrapper that invokes native bd binary
- Full feature parity with standalone bd
- Works with SessionStart hooks for auto-installation

Package structure:
- bin/bd.js: Node.js CLI wrapper
- scripts/postinstall.js: Downloads correct binary from GitHub releases
- scripts/test.js: Verification tests
- Comprehensive documentation (6 guides)

Published to npm: https://www.npmjs.com/package/@beads/bd

Benefits vs WASM:
- Full SQLite support (no custom VFS)
- Better performance (native vs WASM)
- Simpler implementation and maintenance
- All commands work identically

Closes bd-febc, bd-be7a, bd-e2e6, bd-f282, bd-87a0, bd-b54c

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 11:41:18 -08:00
Steve Yegge
add5599d7e bd sync: 2025-11-03 10:35:27 2025-11-03 10:35:27 -08:00
Steve Yegge
39840f6b67 Fix GH #210: bd init --no-db now creates metadata.json and config.yaml
Problem: bd init --no-db returned early (line 131) before creating config files,
causing 'no beads database found' errors on subsequent commands.

Solution:
- Extracted createConfigYaml() helper function
- Call it in both --no-db and normal paths
- Create metadata.json in --no-db path before early return

Fixes bd-c66a
2025-11-03 10:35:21 -08:00
Steve Yegge
e7be0a2869 bd sync: 2025-11-02 23:40:51 2025-11-02 23:40:51 -08:00
Steve Yegge
fc9ad21e4b bd sync: 2025-11-02 23:36:47 2025-11-02 23:36:47 -08:00
Steve Yegge
3c87fdd928 Update CHANGELOG.md with correct 0.21.5 release notes 2025-11-02 22:42:51 -08:00
Steve Yegge
82996178c8 chore: Bump version to 0.21.5
Updated all component versions:
- bd CLI: 0.21.3 → 0.21.5
- Plugin: 0.21.3 → 0.21.5
- MCP server: 0.21.3 → 0.21.5
- Documentation: 0.21.3 → 0.21.5

Generated by scripts/bump-version.sh
2025-11-02 22:42:24 -08:00
goreleaserbot
871ab48ade Brew formula update for beads version v0.21.5 2025-11-03 06:40:37 +00:00
Steve Yegge
3f28ea7981 Add 0.21.5 release notes 2025-11-02 22:39:32 -08:00
Steve Yegge
6fbc6d8a08 chore: Bump version to 0.21.5
Updated all component versions:
- bd CLI: 0.21.4 → 0.21.5
- Plugin: 0.21.4 → 0.21.5
- MCP server: 0.21.4 → 0.21.5
- Documentation: 0.21.4 → 0.21.5

Generated by scripts/bump-version.sh
2025-11-02 22:37:40 -08:00
Steve Yegge
481649a605 Fix widespread double JSON encoding bug in daemon RPC calls (bd-1048, bd-4ec8)
Multiple CLI commands had a systematic bug where ResolveID responses were
incorrectly converted using string(resp.Data) instead of json.Unmarshal.
Since resp.Data is json.RawMessage (already JSON-encoded), this preserved
the JSON quotes, causing IDs to become "bd-1048" instead of bd-1048.
When re-marshaled for subsequent RPC calls, these became double-quoted
("\"bd-1048\""), causing database lookups to fail.

Bugs fixed:
1. Nil pointer dereference in handleShow - added nil check after GetIssue
2. Double JSON encoding in 12 locations across 4 commands:
   - bd show (3 instances in show.go)
   - bd dep add/remove/tree (5 instances in dep.go)
   - bd label add/remove/list (3 instances in label.go)
   - bd reopen (1 instance in reopen.go)

All instances replaced string(resp.Data) with proper json.Unmarshal.
Removed debug logging added during investigation.

Tested: All affected commands now work correctly with daemon mode.
2025-11-02 22:34:24 -08:00
Steve Yegge
3e193f25d1 bd sync: 2025-11-02 22:23:58 2025-11-02 22:23:58 -08:00