Commit Graph

1342 Commits

Author SHA1 Message Date
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
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
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
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
Steve Yegge
9ce1d6c7a5 WIP: WASM port - switch to ncruces/go-sqlite3, add WASM stubs
- Switched from modernc.org/sqlite to ncruces/go-sqlite3 for WASM support
- Added WASM-specific stubs for daemon process management
- Created wasm/ directory with build.sh and Node.js runner
- WASM build succeeds (32MB bd.wasm)
- Node.js can load and execute the WASM module
- Next: Need to bridge Go file I/O to Node.js fs module

Related: bd-44d0, bd-8534, bd-c7eb
2025-11-02 22:17:08 -08:00
Steve Yegge
63ff9b93bc Update bd-1048 with investigation findings 2025-11-02 22:12:21 -08:00
Steve Yegge
7fe7d4d50a bd sync: 2025-11-02 22:12:17 2025-11-02 22:12:17 -08:00
Steve Yegge
d5dde7c753 bd sync: 2025-11-02 21:58:16 2025-11-02 21:58:16 -08:00
Steve Yegge
4e30d91d52 Update issues (testing bd-1048) 2025-11-02 21:55:56 -08:00
Steve Yegge
c5dc490bc6 Merge branch 'pr-102'
Amp-Thread-ID: https://ampcode.com/threads/T-158775b4-36b5-41f2-808a-d236d7eecd4b
Co-authored-by: Amp <amp@ampcode.com>

# Conflicts:
#	cmd/bd/main.go
2025-11-02 21:53:55 -08:00
Steve Yegge
f5478b7400 Merge branch 'main' of github.com:steveyegge/beads
# Conflicts:
#	.beads/beads.jsonl
2025-11-02 21:53:39 -08:00
Steve Yegge
32fd74c680 bd sync: 2025-11-02 21:50:32 2025-11-02 21:50:32 -08:00
Steve Yegge
66589f5c93 bd sync
Amp-Thread-ID: https://ampcode.com/threads/T-ca5b1c5c-3e47-4f3a-bd64-d079f1cb1643
Co-authored-by: Amp <amp@ampcode.com>
2025-11-02 21:48:55 -08:00
Steve Yegge
0218ffa253 Document multiple bd binaries in PATH issue 2025-11-02 21:48:55 -08:00
goreleaserbot
ce3d708d4d Brew formula update for beads version v0.21.4 2025-11-03 05:45:33 +00:00
Steve Yegge
c45d4c9f80 Add 0.21.4 release notes 2025-11-02 21:42:27 -08:00
Steve Yegge
f7667c0145 bd sync: 2025-11-02 21:41:43 2025-11-02 21:41:43 -08:00
Steve Yegge
e6c1170e20 chore: Bump version to 0.21.4
Updated all component versions:
- bd CLI: 0.21.3 → 0.21.4
- Plugin: 0.21.3 → 0.21.4
- MCP server: 0.21.3 → 0.21.4
- Documentation: 0.21.3 → 0.21.4

Generated by scripts/bump-version.sh
2025-11-02 21:31:43 -08:00
Steve Yegge
d2e3a43902 bd sync: 2025-11-02 21:31:38 2025-11-02 21:31:38 -08:00
Steve Yegge
2aef84b6d7 bd sync: 2025-11-02 21:31:29
Amp-Thread-ID: https://ampcode.com/threads/T-61dc6400-6b66-4dc8-a0b4-60f0acbb8b88
Co-authored-by: Amp <amp@ampcode.com>
2025-11-02 21:31:29 -08:00
Steve Yegge
8efaefe18f bd sync: 2025-11-02 21:31:13 2025-11-02 21:31:13 -08:00
Steve Yegge
3d46170693 Add --json flag to stale command 2025-11-02 21:25:40 -08:00