@beads/bd 0.22.1 → 0.24.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/CHANGELOG.md CHANGED
@@ -7,6 +7,712 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Improved
11
+
12
+ - **Daemon Log Rotation**: Increased default rotation limits for better production use (bd-t7ds)
13
+ - Max size increased from 10MB to 50MB per file
14
+ - Max backups increased from 3 to 7 files
15
+ - Max age increased from 7 to 30 days
16
+ - Added comprehensive documentation in CONFIG.md
17
+ - Better handles long-running daemons with high log output
18
+
19
+ - **Git Pre-Push Hook**: Better error messaging and auto-sync option
20
+ - Error message now suggests `bd sync` instead of manual git commands
21
+ - Interactive prompt offers to run `bd sync` automatically
22
+ - Falls back to manual instructions in non-interactive terminals or when bd is unavailable
23
+ - Improves user experience when beads JSONL has uncommitted changes
24
+
25
+ ## [0.24.2] - 2025-11-22
26
+
27
+ ### Fixed
28
+
29
+ - **Test Stability**: Complete rootCtx initialization fix for all hanging tests (issue #355, b8db5ab)
30
+ - Fixed TestGetAssignedStatus missing rootCtx initialization (a517ec9)
31
+ - Prevents test hangs from uninitialized context
32
+ - Improved test reliability and isolation
33
+
34
+ - **JSONL Configuration**: Improved bd doctor JSONL checks to focus on real problems (87ee3a6)
35
+ - Reduces false positives in JSONL validation
36
+ - Better detection of actual configuration issues
37
+
38
+ ### Changed
39
+
40
+ - **JSONL Filename Default**: Changed default JSONL filename from `beads.jsonl` to `issues.jsonl` (c4c5c80)
41
+ - Updated TestFindJSONLPathDefault to match new default (5eefec7)
42
+ - Removed stale `issues.jsonl` in favor of configured `beads.jsonl` (d918e47)
43
+ - More intuitive default filename for new users
44
+
45
+ ## [0.24.1] - 2025-11-22
46
+
47
+ ### Added
48
+
49
+ - **bd search**: Date and priority filters (787fb4e)
50
+ - `--created-after`, `--created-before` for date filtering
51
+ - `--priority-min`, `--priority-max` for priority range filtering
52
+ - Enables more precise search queries
53
+
54
+ - **bd count**: New command for counting and grouping issues (d7f4189)
55
+ - Count issues by status, priority, type, or labels
56
+ - Helpful for generating statistics and reports
57
+
58
+ - **Test Infrastructure**: Automatic skip list for tests (0040e80)
59
+ - Improves test reliability and maintenance
60
+ - Automatically manages flaky or environment-specific tests
61
+
62
+ ### Fixed
63
+
64
+ - **Test Stability**: Fixed hanging tests by initializing rootCtx (822baa0, bd-n25)
65
+ - Prevents test hangs from context cancellation issues
66
+ - Better test isolation and cleanup
67
+
68
+ - **Git Merge Driver**: Corrected placeholders from %L/%R to %A/%B (ddd209e)
69
+ - Fixes merge driver configuration for proper conflict resolution
70
+ - Uses correct git merge driver variable names
71
+
72
+ - **Database Paths**: Deduplicate database paths when symlinks present (#354, f724b61)
73
+ - Prevents duplicate database detection when symlinks are involved
74
+ - Improves reliability in complex filesystem setups
75
+
76
+ ### Changed
77
+
78
+ - **bd list**: Accept both integer and P-format for priority flags (2e2b8d7)
79
+ - `--priority 1` and `--priority P1` now both work
80
+ - More flexible CLI input for priority filtering
81
+
82
+ - **bd update**: Added `--body` flag as alias for `--description` (bb5a480)
83
+ - More intuitive flag name for updating issue descriptions
84
+ - Both flags work identically for backward compatibility
85
+
86
+ - **bd update**: Added label operations (3065db2)
87
+ - `--add-labels` and `--remove-labels` flags
88
+ - Simplifies label management in update operations
89
+
90
+ - **GitHub Copilot Support**: Added `.github/copilot-instructions.md` (605fff1)
91
+ - Provides project-specific guidance for GitHub Copilot
92
+ - Improves AI-assisted development experience
93
+
94
+ - **Documentation**: Moved design/audit docs from cmd/bd to docs/ (ce433bb)
95
+ - Better organization of project documentation
96
+ - Clearer separation of code and documentation
97
+
98
+ ### Performance
99
+
100
+ - **Test Suite**: Deleted 7 redundant tests from main_test.go (fa727c7)
101
+ - 3x speedup in test execution
102
+ - Improved CI/CD performance
103
+
104
+ - **Test Coverage**: Tagged 16 slow integration tests with build tags (8290243)
105
+ - Faster local test runs with `-short` flag
106
+ - CI can still run full test suite
107
+
108
+ ### Testing
109
+
110
+ - **Security Tests**: Added security and error handling tests for lint warnings (74f3844)
111
+ - Improved code quality and safety
112
+ - Better coverage of edge cases
113
+
114
+ - **Shared Database Pattern**: Refactored multiple test files to use shared DB pattern (bd-1rh)
115
+ - compact_test.go, integrity_test.go, validate_test.go, epic_test.go, duplicates_test.go
116
+ - Improved test consistency and maintainability
117
+ - Faster test execution through better resource sharing
118
+
119
+ ## [0.24.0] - 2025-11-20
120
+
121
+ ### Added
122
+
123
+ - **bd doctor --fix**: Automatic repair functionality (bd-ykd9, 7806937)
124
+ - Automatically fixes issues detected by `bd doctor`
125
+ - Repairs common database inconsistencies without manual intervention
126
+
127
+ - **bd clean**: Remove temporary merge artifacts (e8355c2)
128
+ - Cleans up `.base`, `.ours`, `.theirs` snapshot files
129
+ - Helps maintain clean `.beads/` directory after merges
130
+
131
+ - **bd cleanup**: Enhanced bulk deletion command
132
+ - Delete multiple closed issues efficiently
133
+ - Improved from previous versions with better performance
134
+
135
+ - **.beads/README.md Generation**: Auto-generated during `bd init` (bd-m7ge, e1c8853)
136
+ - Provides project-specific beads documentation
137
+ - Helps new contributors understand the setup
138
+
139
+ - **blocked_issues_cache Table**: Performance optimization for GetReadyWork (62c1f42, ed23f8f)
140
+ - Caches blocked issue relationships
141
+ - Dramatically improves `bd ready` performance on large databases
142
+
143
+ - **Commit Hash in Version Output**: Enhanced version reporting (bd-hpt5, 7c96142)
144
+ - `bd version` now shows git commit hash
145
+ - Helps identify exact build for debugging
146
+
147
+ - **Auto-detection of Issue Prefix**: Scans git history to detect prefix (#277, 8f37904)
148
+ - Automatically discovers project's issue prefix
149
+ - Reduces manual configuration needed
150
+
151
+ - **external_ref Support in Daemon RPC**: Full daemon mode support (#304, 57b6ea6)
152
+ - MCP server can now set external references in daemon mode
153
+ - Parity with CLI functionality
154
+
155
+ - **Context Optimization Features**: AI agent improvements (#297, f7e80dd)
156
+ - Context propagation with graceful cancellation (bd-rtp, bd-yb8, bd-2o2, 57253f9)
157
+ - Better memory management for long-running agent sessions
158
+
159
+ ### Fixed
160
+
161
+ - **Critical: Auto-import Resurrection Bug** (bd-khnb, 0020eb4, e28e3ea, 7b6370f)
162
+ - Fixed critical bug where deleted issues were resurrected during auto-import
163
+ - Cleaned up 497+ resurrected issues from production database
164
+ - Prevents data corruption from improper JSONL replay
165
+
166
+ - **Critical: bd sync Auto-resolves Conflicts** (bd-ca0b, a1e5075)
167
+ - `bd sync` now automatically resolves conflicts instead of failing
168
+ - Dramatically improves multi-agent workflow reliability
169
+ - Eliminates manual conflict resolution in most cases
170
+
171
+ - **Critical: Content-based Timestamp Skew Prevention** (bd-lm2q, d0e7047)
172
+ - Fixed false-positive "JSONL is newer than database" warnings
173
+ - Uses content-based comparison instead of timestamp-only
174
+ - Prevents unnecessary imports that would corrupt state
175
+
176
+ - **Critical: bd sync DB Changes After Import** (81c741b)
177
+ - Ensures database changes are properly applied after import
178
+ - Fixes desync issues between JSONL and database
179
+
180
+ - **Critical: Context Propagation Lifecycle Bugs** (bd-rtp, bd-yb8, bd-2o2, 57253f9, a17e4af)
181
+ - Fixed multiple context propagation issues causing crashes
182
+ - Graceful cancellation support for long-running operations
183
+ - Improved stability for AI agent workflows
184
+
185
+ - **Critical: Race Condition in Auto-flush** (bd-52, a9b2f9f)
186
+ - Fixed race condition in auto-flush mechanism
187
+ - Prevents data loss during concurrent operations
188
+
189
+ - **Critical: Resource Leaks and Error Handling** (#327, fb65163)
190
+ - Fixed critical resource leaks in daemon mode
191
+ - Improved error handling throughout codebase
192
+
193
+ - **Critical: In-memory Database Deadlock** (bd-yvlc, 944ed10)
194
+ - Fixed deadlock in migrations when using in-memory database
195
+ - Improves test reliability
196
+
197
+ - **MCP Schema Generation Recursion Bug** (GH#346, f3a678f)
198
+ - Fixed infinite recursion in MCP schema generation
199
+ - Prevents stack overflow crashes
200
+
201
+ - **FK Constraint Failures** (bd-5arw, 345766b)
202
+ - Fixed foreign key constraint failures in AddComment and ApplyCompaction
203
+ - Improved data integrity
204
+
205
+ - **--parent Flag Behavior** (b9919fe)
206
+ - Now correctly creates parent-child dependency relationships
207
+ - Previously was creating wrong dependency type
208
+
209
+ - **Exact ID Matching Priority** (gh-316, 934ae04)
210
+ - Prefers exact ID matches over prefix matches
211
+ - Prevents ambiguous ID resolution
212
+
213
+ - **Daemon Lifetime on macOS** (GH#278, 68f9bef)
214
+ - Fixed daemon exiting after 5s on macOS due to PID 1 parent monitoring
215
+ - Daemon now runs reliably on macOS
216
+
217
+ - **Daemon Export/JSONL Sync** (GH#301, #321, 04a1996)
218
+ - Fixed daemon export leaving JSONL newer than database
219
+ - Ensures proper sync between export and database state
220
+
221
+ - **bd doctor Hash ID Detection** (GH#322, 8c1f865)
222
+ - Fixed doctor incorrectly diagnosing hash IDs as sequential
223
+ - Improved detection logic for ID format validation
224
+
225
+ - **ResolvePartialID Handling** (GH#336, 4432af0)
226
+ - Improved ResolvePartialID / ResolveID handling for `bd show`
227
+ - Better partial ID matching and error messages
228
+
229
+ - **bd sync Windows Upstream Detection** (#281, 1deaad1)
230
+ - Fixed upstream branch detection on Windows
231
+ - Improved cross-platform compatibility
232
+
233
+ - **Compact Command Daemon Mode** (#294, d9904a8)
234
+ - Fixed compact command failing with 'SQLite DB needed' error when daemon running
235
+ - Removed premature store check, uses ensureDirectMode
236
+
237
+ - **DB mtime Update After Import** (#296, 9dff345)
238
+ - Fixed DB mtime not being updated after import with 0 changes
239
+ - Prevents false staleness warnings
240
+
241
+ - **FOREIGN KEY Constraint on Non-existent Issues** (09666b4)
242
+ - Fixed constraint failures when operating on non-existent issues
243
+ - Better error handling and validation
244
+
245
+ - **Monitor WebUI Daemon Detection** (e36baee)
246
+ - Fixed monitor-webui failure to detect running daemon
247
+ - Improved daemon health checking
248
+
249
+ - **Onboard Test Deadlock on Windows** (4e22214)
250
+ - Fixed deadlock in onboard tests on Windows
251
+ - Improved test stability
252
+
253
+ - **Windows Concurrent Issue Creation** (4cd26c8)
254
+ - Fixed concurrent issue creation failures on Windows
255
+ - Better file locking on Windows
256
+
257
+ - **Missing Git Hook Message** (#306, 92f3af5)
258
+ - Improved messaging when git hooks are missing
259
+ - Clearer instructions for users
260
+
261
+ - **Prefix Detection for Hyphenated Apps** (83472ac, bd-fasa)
262
+ - Fixed prefix detection to only use first hyphen
263
+ - Handles hyphenated application names correctly
264
+
265
+ - **External Ref Migration Failures** (8be792a)
266
+ - Fixed external_ref migration failure on old databases
267
+ - Backward compatibility improvements
268
+
269
+ - **Duplicate Function Declaration** (#328, 167ab67)
270
+ - Fixed compilation failure from duplicate computeJSONLHash declaration
271
+ - Removed old version, kept simpler implementation
272
+ - Updated test to match new API
273
+
274
+ ### Changed
275
+
276
+ - **Performance Improvements** (#319, 690c73f):
277
+ - Optimized GetReadyWork to use blocked_issues_cache (ed23f8f)
278
+ - Replaced N+1 label queries with bulk fetch in `bd list` (968d9e2)
279
+ - Cache invalidation for blocked_issues_cache (614ba8a)
280
+ - Significant speedup for large databases
281
+
282
+ - **FlushManager Improvements** (445857f)
283
+ - Added constants for magic numbers
284
+ - Enhanced error logging
285
+ - Comprehensive functional tests
286
+
287
+ - **Auto-upgrade .beads/.gitignore** (#300, f4a2f87)
288
+ - Automatically upgrades .gitignore on bd operations
289
+ - Ensures latest patterns are always applied
290
+
291
+ - **Code Refactoring**:
292
+ - Extract duplicated validation logic to internal/validation (d5239ee)
293
+ - Centralize error handling patterns in storage layer (bd-bwk2, 3b2cac4)
294
+ - Extract duplicated validation and flag logic (bd-g5p7, bbfedb0)
295
+ - Improved code organization and maintainability
296
+
297
+ - **Documentation Improvements**:
298
+ - Document files created by bd init and clarify .gitattributes (721274b, e7fd1dd)
299
+ - How to resolve merge conflicts in .beads/beads.jsonl (4985a68)
300
+ - Document MCP tools loading issue in Claude Code (GH#346, 79b8dbe)
301
+ - Add uv prerequisite to Claude Code plugin docs (#293, a020c6c)
302
+ - Don't auto-install Go in Windows installer (#302, 0cba73b)
303
+
304
+ - **Improved Error Messages** (#349, 27c0c33)
305
+ - Compact error messages
306
+ - Remove bogus merge suggestion
307
+ - Add daemon/maintenance docs
308
+
309
+ - **AGENTS.md Refactoring** (21a0656)
310
+ - Extracted detailed instructions to prevent context pollution
311
+ - Better organization for AI agent consumption
312
+
313
+ - **Type Safety Improvements** (9e57cb6)
314
+ - Improved type safety in beads-mcp
315
+ - Fixed minor type issues
316
+
317
+ - **Test Improvements**:
318
+ - Fix CI regressions and stabilize tests (7b63b5a)
319
+ - Fix parallel test deadlock (1fc9bf6)
320
+ - Annotate gosec-safe file accesses (bf9b2c8)
321
+
322
+ - **Local-only Git Repo Support** (bd-biwp, 4de9f01)
323
+ - Support repositories without remote origin
324
+ - Better handling of local development workflows
325
+
326
+ - **Version Marker in Post-checkout Hook** (ad2154b)
327
+ - Add version marker to post-checkout hook
328
+ - Include in CheckGitHooks for better version tracking
329
+
330
+ ### Performance
331
+
332
+ - **GetReadyWork Optimization** (bd-5qim, 690c73f, 62c1f42, ed23f8f)
333
+ - Introduced blocked_issues_cache table
334
+ - Eliminated expensive recursive queries
335
+ - Dramatically faster for large dependency graphs
336
+
337
+ - **bd list N+1 Query Elimination** (968d9e2)
338
+ - Replaced per-issue label queries with bulk fetch
339
+ - Significant speedup when listing many labeled issues
340
+
341
+ ### Community
342
+
343
+ - **Pull Requests**:
344
+ - #338: Prevent daemon from exiting when launcher process exits (@cpdata)
345
+ - #337: Improve ResolvePartialID handling (@cpdata)
346
+ - #333: Fix doctor incorrectly diagnosing hash IDs (@cpdata)
347
+ - #327: Address critical resource leaks and error handling
348
+ - #306: Improve missing git hook message
349
+ - #304: Add external_ref support to daemon mode RPC
350
+ - #302: Windows installer improvements
351
+ - #300: Automatic .beads/.gitignore upgrade
352
+ - #297: Context optimization features for AI agents
353
+ - #296: Fix DB mtime update after import
354
+ - #294: Fix compact command in daemon mode
355
+ - #293: Add uv prerequisite documentation
356
+ - #281: Fix bd sync Windows upstream detection
357
+ - #277: Auto-detection of issue prefix from git history
358
+
359
+ - **Dependency Updates**:
360
+ - Bump github.com/anthropics/anthropic-sdk-go from 1.17.0 to 1.18.0 (#330)
361
+ - Bump golang.org/x/mod from 0.29.0 to 0.30.0 (#331)
362
+ - Bump fastmcp from 2.13.0.2 to 2.13.1 (#332)
363
+ - Bump pydantic from 2.12.0 to 2.12.4 (#285)
364
+ - Bump pydantic-settings from 2.11.0 to 2.12.0 (#286)
365
+ - Bump golangci/golangci-lint-action from 8 to 9 (#287)
366
+ - Bump golang.org/x/sys from 0.36.0 to 0.38.0 (#288)
367
+ - Bump github.com/ncruces/go-sqlite3 from 0.29.1 to 0.30.1 (#290)
368
+ - Bump github.com/google/go-cmp from 0.6.0 to 0.7.0 (#291)
369
+
370
+ ### Notes
371
+
372
+ This release represents a major stability and performance improvement with **179 commits** since 0.23.1. Key themes:
373
+ - **Reliability**: Fixed critical auto-import resurrection bug and multiple daemon issues
374
+ - **Performance**: Significant optimizations for `bd ready` and `bd list`
375
+ - **AI Agent Support**: Improved context propagation and error handling
376
+ - **Cross-platform**: Better Windows and macOS support
377
+ - **Developer Experience**: Auto-detection, better error messages, improved docs
378
+
379
+ ## [0.23.1] - 2025-11-08
380
+
381
+ ### Fixed
382
+
383
+ - **#263: Database mtime not updated after import causing false `bd doctor` warnings**
384
+ - When `bd sync --import-only` completed, SQLite WAL mode wouldn't update the main database file's mtime
385
+ - This caused `bd doctor` to incorrectly warn "JSONL is newer than database" even when perfectly synced
386
+ - Now updates database mtime after imports to prevent false warnings
387
+
388
+ - **#261: SQLite URI missing 'file:' prefix causing version detection failures**
389
+ - Without 'file:' scheme, SQLite treated `?mode=ro` as part of filename instead of connection option
390
+ - Created bogus files like `beads.db?mode=ro`
391
+ - Caused `bd doctor` to incorrectly report "version pre-0.17.5 (very old)" on modern databases
392
+
393
+ - **bd-17d5: Conflict marker false positives on JSON-encoded content**
394
+ - Issues containing JSON strings with `<<<<<<<` would trigger false conflict marker detection
395
+ - Now checks raw bytes before JSON decoding to avoid false positives
396
+
397
+ - **bd-ckvw: Schema compatibility probe prevents silent migration failures**
398
+ - Migrations could fail silently, causing cryptic "no such column" and UNIQUE constraint errors later
399
+ - Now probes schema after migrations, retries once if incomplete, and fails fast with clear error
400
+ - Daemon refuses RPC if client has newer minor version to prevent schema mismatches
401
+
402
+ - **#264/#262: Remove stale `--resolve-collisions` references**
403
+ - Docs/error messages still referenced `--resolve-collisions` flag (removed in v0.20)
404
+ - Fixed post-merge hook error messages and git-hooks README
405
+
406
+ ### Changed
407
+
408
+ - **bd-auf1: Auto-cleanup snapshot files after successful merge**
409
+ - `.beads/` no longer accumulates orphaned `.base`, `.ours`, `.theirs` snapshot files after merges
410
+
411
+ - **bd-ky74: Optimize CLI tests with in-process testing**
412
+ - Converted exec.Command() tests to in-process rootCmd.Execute() calls
413
+ - **Dramatically faster: 10+ minutes → just a few seconds**
414
+ - Improved test coverage from 20.2% to 23.3%
415
+
416
+ - **bd-6uix: Message system improvements**
417
+ - 30s HTTP timeout prevents hangs, full message reading, --importance validation, server-side filtering
418
+
419
+ - **Remove noisy version field from metadata.json**
420
+ - Eliminated redundant version mismatch warnings on every bd upgrade
421
+ - Daemon version checking via RPC is sufficient
422
+
423
+ ### Added
424
+
425
+ - Go agent example with Agent Mail support
426
+ - Agent Mail multi-workspace deployment guide and scripts
427
+
428
+ ## [0.23.0] - 2025-11-08
429
+
430
+ ### Added
431
+
432
+ - **Agent Mail Integration**: Complete Python adapter library with comprehensive documentation and multi-agent coordination tests
433
+ - Python adapter library in `integrations/agent-mail-python/`
434
+ - Agent Mail quickstart guide and comprehensive integration docs
435
+ - Multi-agent race condition tests and failure scenario tests
436
+ - Automated git traffic benchmark showing **98.5% reduction in git traffic** compared to git-only sync
437
+ - Bash-agent integration example
438
+
439
+ - **bd info --whats-new** (bd-eiz9): Agent version awareness for quick upgrade summaries
440
+ - Shows last 3 versions with workflow-impacting changes
441
+ - Supports `--json` flag for machine-readable output
442
+ - Helps agents understand what changed without re-reading full docs
443
+
444
+ - **bd hooks install** (bd-908z): Embedded git hooks command
445
+ - Replaces external install script with native command
446
+ - Git hooks now embedded in bd binary
447
+ - Works for all bd users, not just source repo users
448
+
449
+ - **bd cleanup**: Bulk deletion command for closed issues (bd-buol)
450
+ - Agent-driven compaction for large databases
451
+ - Removes closed issues older than specified threshold
452
+
453
+ ### Fixed
454
+
455
+ - **3-way JSONL Merge** (bd-jjua): Auto-invoked on conflicts
456
+ - Automatically triggers intelligent merge on JSONL conflicts
457
+ - No manual intervention required
458
+ - Warning message added to zombie issues.jsonl file
459
+
460
+ - **Auto-import on Missing Database** (ab4ec90): `bd import` now auto-initializes database when missing
461
+ - **Daemon Crash Recovery** (bd-vcg5): Panic handler with socket cleanup prevents orphaned processes
462
+ - **Stale Database Exports** (bd-srwk): ID-based staleness detection prevents exporting stale data
463
+ - **Windows MCP Subprocess Timeout** (bd-r79z): Fix for git detection on Windows
464
+ - **Daemon Orphaning** (a6c9579): Track parent PID and exit when parent dies
465
+ - **Test Pollution Prevention** (bd-z528, bd-2c5a): Safeguards to prevent test issues in production database
466
+ - **Client Self-Heal** (a236558): Auto-recovery for stale daemon.pid files
467
+ - **Post-Merge Hook Error Messages** (abb1d1c): Show actual error messages instead of silent failures
468
+ - **Auto-import During Delete** (bd-8kde): Disable auto-import during delete operations to prevent conflicts
469
+ - **MCP Workspace Context** (bd-8zf2): Auto-detect workspace from CWD
470
+ - **Import Sync Warning** (bd-u4f5): Warn when import syncs with working tree but not git HEAD
471
+ - **GH#254** (bd-tuqd): `bd init` now detects and chains with existing git hooks
472
+ - **GH#249**: Add nil storage checks to prevent RPC daemon crashes
473
+ - **GH#252**: Fix SQLite driver name mismatch causing "unknown driver" errors
474
+ - **Nested .beads Directories** (bd-eqjc): Prevent creating nested .beads directories
475
+ - **Windows SQLite Support**: Fix SQLite in releases for Windows
476
+
477
+ ### Changed
478
+
479
+ - **Agent Affordances** (observations from agents using beads):
480
+ - **bd new**: Added as alias for `bd create` command (agents often tried this)
481
+ - **bd list**: Changed default to one-line-per-issue format to prevent agent miscounting; added `--long` flag for previous detailed format
482
+
483
+ - **Developer Experience**:
484
+ - Extracted supplemental docs from AGENTS.md for better organization
485
+ - Added warning for working tree vs git HEAD sync mismatches
486
+ - Completion commands now work without database
487
+ - Config included in `bd info` JSON output
488
+ - Python cache files added to .gitignore
489
+ - RPC diagnostics available via `BD_RPC_DEBUG` env var
490
+ - Reduced RPC dial timeout from 2s to 200ms for fast-fail (bd-expt)
491
+ - Standardized daemon detection with tryDaemonLock probe (bd-wgu4)
492
+ - Improved internal/daemon test coverage to 60%
493
+
494
+ - **Code Organization**:
495
+ - Refactored snapshot management into dedicated module (bd-urob)
496
+ - Documented external_ref in content hash behavior (bd-9f4a)
497
+ - Added MCP server functions for repair commands (bd-7bbc4e6a)
498
+ - Added version number to beads-mcp startup log
499
+ - Added system requirements section for glibc compatibility in docs
500
+
501
+ - **Release Automation**:
502
+ - Automatic Homebrew formula update in release workflow
503
+ - Gitignore Formula/bd.rb (auto-generated, real source is homebrew-beads tap)
504
+
505
+ - **Other**:
506
+ - Added `docs/` directory to links (#242)
507
+ - RPC monitoring solution with web UI as implementation example (#244)
508
+ - Remove old install.sh script, replaced by `bd hooks install`
509
+ - Remove vc.db exclusion from FindDatabasePath filter
510
+
511
+ ## [0.22.1] - 2025-11-06
512
+
513
+ ### Added
514
+
515
+ - **Vendored beads-merge by @neongreen** (bd-bzfy): Native `bd merge` command for intelligent JSONL merging
516
+ - Vendored beads-merge algorithm into `internal/merge/` with full attribution and MIT license
517
+ - New `bd merge` command as native wrapper (no external binary needed)
518
+ - Same field-level 3-way merge algorithm, now built into bd
519
+ - Auto-configured during `bd init` (both interactive and `--quiet` modes)
520
+ - Thanks to @neongreen for permission to vendor: https://github.com/neongreen/mono/issues/240
521
+ - Original tool: https://github.com/neongreen/mono/tree/main/beads-merge
522
+
523
+ - **Git Hook Version Detection** (bd-iou5, 991c624): `bd info` now detects outdated git hooks
524
+ - Adds version markers to all git hook templates (pre-commit, post-merge, pre-push)
525
+ - Warns when installed hooks are outdated or missing
526
+ - Suggests running `examples/git-hooks/install.sh` to update
527
+ - Prevents issues like the `--resolve-collisions` flag error after updates
528
+
529
+ - **Public API for External Extensions** (8f676a4): Extensibility improvements for third-party tools
530
+ - **Multi-Repo Patterns Documentation** (e73f89e): Comprehensive guide for AI agents working across multiple repositories
531
+ - **Snapshot Versioning** (a891ebe): Add versioning and timestamp validation for snapshots
532
+ - `--clear-duplicate-external-refs` flag for `bd import` command (9de98cf)
533
+
534
+ ### Fixed
535
+
536
+ - **Multi-Workspace Deletion Tracking** (708a81c, e5a6c05, 4718583): Proper deletion tracking across multiple workspaces
537
+ - Fixes issue where deletions in one workspace weren't propagated to others
538
+ - Added `DeleteIssue` to Storage interface for backend extensibility (e291ee0)
539
+ - **Import/Export Deadlock** (a0d24f3): Prevent import/export from hanging when daemon is running
540
+ - **Pre-Push Hook** (3ba245e): Fix pre-push hook blocking instead of exporting
541
+ - **Hash ID Recognition** (c924731, 055f1d9): Fix `isHashID` to recognize Base36 hash IDs and IDs without a-f letters
542
+ - **Git Merge Artifacts** (41b1a21): Ignore merge artifacts in `.beads/.gitignore`
543
+ - **bd status Command** (1edf3c6): Now uses git history for recent activity detection
544
+ - **Performance**: Add raw string equality short-circuit before jsonEquals (5c1f441)
545
+
546
+ ### Changed
547
+
548
+ - **Code Organization**:
549
+ - Extract SQLite migrations into separate files (b655b29)
550
+ - Centralize BD_DEBUG logging into `internal/debug` package (95cbcf4)
551
+ - Extract `normalizeLabels` to `internal/util/strings.go` (9520e7a)
552
+ - Reorganize project structure: move Go files to `internal/beads`, docs to `docs/` (584c266)
553
+ - Remove unused `internal/daemonrunner/` package (~1,500 LOC) (a7ec8a2)
554
+
555
+ - **Testing**:
556
+ - Optimize test suite with `testing.Short()` guards for faster local testing (11fa142, 0f4b03e)
557
+ - Add comprehensive tests for merge driver auto-config (6424ebd)
558
+ - Add comprehensive tests for 3-way merge functionality (14b2d34)
559
+ - Add edge case tests for `getMultiRepoJSONLPaths()` (78c9d74)
560
+
561
+ - **CI/CD**:
562
+ - Separate Homebrew update workflow with PAT support (739786e)
563
+ - Add manual trigger to Homebrew workflow for testing (563c12b)
564
+ - Fix Linux checksums extraction in Homebrew workflow (c47f40b)
565
+ - Add script to automate Nix vendorHash updates (#235)
566
+
567
+ ### Performance
568
+
569
+ - Cache `getMultiRepoJSONLPaths()` to avoid redundant calls (7afb143)
570
+
571
+ ## [0.22.0] - 2025-11-05
572
+
573
+ ### Added
574
+
575
+ - **Intelligent Merge Driver** (bd-omx1, 52c5059): Auto-configured git merge driver for JSONL conflict resolution
576
+ - Vendors beads-merge algorithm for field-level 3-way merging
577
+ - Automatically configured during `bd init` (both interactive and `--quiet` modes)
578
+ - Matches issues by identity (id + created_at + created_by)
579
+ - Smart field merging: timestamps→max, dependencies→union, status/priority→3-way
580
+ - Eliminates most git merge conflicts in `.beads/beads.jsonl`
581
+
582
+ - **Onboarding Wizards** (b230a22): New `bd init` workflows for different collaboration models
583
+ - `bd init --contributor`: OSS contributor wizard (separate planning repo)
584
+ - `bd init --team`: Team collaboration wizard (branch-based workflow)
585
+ - Interactive setup with fork detection and remote configuration
586
+ - Auto-configures sync settings for each workflow
587
+
588
+ - **Migration Tools** (349817a): New `bd migrate-issues` command for cross-repo issue migration
589
+ - Migrate issues between repositories while preserving dependencies
590
+ - Source filtering (by label, priority, status, type)
591
+ - Automatic remote repo detection and push
592
+ - Complete multi-repo workflow documentation
593
+
594
+ - **Multi-Phase Development Guide** (3ecc16e): Comprehensive workflow examples
595
+ - Multi-phase development (feature → integration → deployment)
596
+ - Multiple personas (designer, frontend dev, backend dev)
597
+ - Best practices for complex projects
598
+
599
+ - **Dependency Status** (3acaf1d): Show blocker status in `bd show` output
600
+ - Displays "Blocked by N open issues" when dependencies exist
601
+ - Shows "Ready to work (no blockers)" when unblocked
602
+
603
+ - **DevContainer Support** (247e659): Automatic bd setup in GitHub Codespaces
604
+ - Pre-configured Go environment with bd pre-installed
605
+ - Auto-detects existing `.beads/` and imports on startup
606
+
607
+ - **Landing the Plane Protocol** (095e40d): Session-ending checklist for AI agents
608
+ - Quality gates, sync procedures, git cleanup
609
+ - Ensures clean handoff between sessions
610
+
611
+ ### Fixed
612
+
613
+ - **SearchIssues N+1 Query** (bd-5ots, e90e485): Eliminated N+1 query bug in label loading
614
+ - Batch-loads labels for all issues in one query
615
+ - Significant performance improvement for `bd list` with many labeled issues
616
+
617
+ - **Sync Validation** (bd-9bsx, 5438485): Prevent infinite dirty loop in auto-sync
618
+ - Added export verification to detect write failures
619
+ - Ensures JSONL line count matches database after export
620
+
621
+ - **bd edit Direct Mode** (GH #227, d4c73c3): Force `bd edit` to always use direct mode
622
+ - Prevents daemon interference with interactive editor sessions
623
+ - Resolves hang issues when editing in terminals
624
+
625
+ - **SQLite Driver on arm64 macOS** (f9771cd): Fixed missing SQLite driver in arm64 builds
626
+ - Explicitly imports CGO-enabled sqlite driver
627
+ - Resolves "database driver not found" errors on Apple Silicon
628
+
629
+ - **external_ref Type Handling** (e1e58ef): Handle both string and *string in UpdateIssue RPC
630
+ - Fixes type mismatch errors in MCP server
631
+ - Ensures consistent API behavior
632
+
633
+ - **Windows Test Stability** (2ac28b0, 8c5e51e): Skip flaky concurrent tests on Windows
634
+ - Prevents false failures in CI/CD
635
+ - Improves overall test suite reliability
636
+
637
+ ### Changed
638
+
639
+ - **Test Suite Performance** (0fc4da7): Optimized test suite for 15-18x speedup
640
+ - Reduced redundant database operations
641
+ - Parallelized independent test cases
642
+ - Faster CI/CD builds
643
+
644
+ - **Priority Format** (b8785d3): Added support for P-prefix priority format (P0-P4)
645
+ - Accepts both `--priority 1` and `--priority P1`
646
+ - More intuitive for GitHub/Jira users
647
+
648
+ - **--label Alias** (85ca8c3): Added `--label` as alias for `--labels` in `bd create`
649
+ - Both singular and plural forms now work
650
+ - Improved CLI ergonomics
651
+
652
+ - **--parent Flag in Daemon Mode** (fc89f15): Added `--parent` support in daemon RPC
653
+ - MCP server can now set parent relationships
654
+ - Parity with CLI functionality
655
+
656
+ ### Documentation
657
+
658
+ - **Multi-Repo Migration Guide** (9e60ed1): Complete documentation for multi-repo workflows
659
+ - OSS contributors, teams, multi-phase development
660
+ - Addresses common questions about fork vs branch workflows
661
+
662
+ - **beads-merge Setup Instructions** (527e491): Enhanced merge driver documentation
663
+ - Installation guide for standalone binary
664
+ - Jujutsu configuration examples
665
+
666
+ ## [0.21.9] - 2025-11-05
667
+
668
+ ### Added
669
+
670
+ - **Epic/Child Filtering** (bd-zkl, fbe790a): New `bd list` filters for hierarchical issue queries
671
+ - `--ancestor <id>`: Filter by ancestor issue (shows all descendants)
672
+ - `--parent <id>`: Filter by direct parent issue
673
+ - `--epic <id>`: Alias for `--ancestor` (more intuitive for epic-based workflows)
674
+ - `ancestor_id` field added to issue type for efficient epic hierarchy queries
675
+
676
+ - **Advanced List Filters**: Pattern matching, date ranges, and empty checks
677
+ - **Pattern matching**: `--title-contains`, `--desc-contains`, `--notes-contains` (case-insensitive substring)
678
+ - **Date ranges**: `--created-after/before`, `--updated-after/before`, `--closed-after/before`
679
+ - **Empty checks**: `--empty-description`, `--no-assignee`, `--no-labels`
680
+ - **Priority ranges**: `--priority-min`, `--priority-max`
681
+
682
+ - **Database Migration** (bd-bb08, 3bde4b0): Added `ON DELETE CASCADE` to `child_counters` table
683
+ - Prevents orphaned child counter records when issues are deleted
684
+ - Comprehensive migration tests ensure data integrity
685
+
686
+ ### Fixed
687
+
688
+ - **Import Timestamp Preservation** (8b9a486): Fixed critical bug where `closed_at` timestamps were lost during sync
689
+ - Ensures closed issues retain their original completion timestamps
690
+ - Prevents issue resurrection timestamps from overwriting real closure times
691
+
692
+ - **Import Config Respect** (7292c85): Import now respects `import.missing_parents` config setting
693
+ - Previously ignored config for parent resurrection behavior
694
+ - Now correctly honors user's preference for handling missing parents
695
+
696
+ - **GoReleaser Homebrew Tap** (37ed10c): Fixed homebrew tap to point to `steveyegge/homebrew-beads`
697
+ - Automated homebrew formula updates now work correctly
698
+ - Resolves brew installation issues
699
+
700
+ - **npm Package Versioning** (626d51d): Added npm-package to version bump script
701
+ - Ensures `@beads/bd` npm package stays in sync with CLI releases
702
+ - Prevents version mismatches across distribution channels
703
+
704
+ - **Linting** (52cf2af): Fixed golangci-lint errors
705
+ - Added proper error handling
706
+ - Added gosec suppressions for known-safe operations
707
+
708
+ ### Changed
709
+
710
+ - **RPC Filter Parity** (510ca17): Comprehensive test coverage for CLI vs RPC filter behavior
711
+ - Ensures MCP server and CLI have identical filtering semantics
712
+ - Validates all new filters work correctly in both modes
713
+
714
+ ## [0.21.8] - 2025-11-05
715
+
10
716
  ### Added
11
717
 
12
718
  - **Parent Resurrection** (bd-58c0): Automatic resurrection of deleted parent issues from JSONL history
@@ -24,6 +730,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
24
730
  ### Fixed
25
731
 
26
732
  - **JSONL Resurrection Logic**: Fixed to use LAST occurrence instead of FIRST (append-only semantics)
733
+ - **Version Bump Script**: Added `--tag` and `--push` flags to automate release tagging
734
+ - Addresses confusion where version bump doesn't trigger GitHub release
735
+ - New usage: `./scripts/bump-version.sh X.Y.Z --commit --tag --push`
27
736
 
28
737
  ## [0.21.7] - 2025-11-04
29
738
 
@@ -531,9 +1240,9 @@ See README.md for hash ID format details and birthday paradox collision analysis
531
1240
  - Includes comprehensive test coverage
532
1241
  - **Log Rotation**: Automatic daemon log rotation with configurable limits (bd-154)
533
1242
  - Prevents unbounded log file growth for long-running daemons
534
- - Configurable via environment variables: `BEADS_DAEMON_LOG_MAX_SIZE`, `BEADS_DAEMON_LOG_MAX_BACKUPS`, `BEADS_DAEMON_LOG_MAX_AGE`
1243
+ - Configurable via environment variables: `BEADS_DAEMON_LOG_MAX_SIZE`, `BEADS_DAEMON_LOG_MAX_BACKUPS`, `BEADS_DAEMON_LOG_MAX_AGE`, `BEADS_DAEMON_LOG_COMPRESS`
535
1244
  - Optional compression of rotated logs
536
- - Defaults: 10MB max size, 3 backups, 7 day retention, compression enabled
1245
+ - Defaults: 50MB max size, 7 backups, 30 day retention, compression enabled
537
1246
  - **Batch Deletion**: Enhanced `bd delete` command with batch operations (bd-127)
538
1247
  - Delete multiple issues at once: `bd delete bd-1 bd-2 bd-3 --force`
539
1248
  - Read from file: `bd delete --from-file deletions.txt --force`
package/bin/README.md CHANGED
@@ -58,6 +58,7 @@ Agents report that they enjoy working with Beads, and they will use it spontaneo
58
58
  - 🤖 **Agent-friendly** - `--json` flags for programmatic integration
59
59
  - 📦 **Git-versioned** - JSONL records stored in git, synced across machines
60
60
  - 🌍 **Distributed by design** - Agents on multiple machines share one logical database via git
61
+ - 🚀 **Optional Agent Mail** - Real-time multi-agent coordination (<100ms vs 2-5s git sync, 98.5% reduction in git traffic)
61
62
  - 🔐 **Protected branch support** - Works with GitHub/GitLab protected branches via separate sync branch
62
63
  - 🏗️ **Extensible** - Add your own tables to the SQLite database
63
64
  - 🔍 **Multi-project isolation** - Each project gets its own database, auto-discovered by directory
@@ -67,6 +68,22 @@ Agents report that they enjoy working with Beads, and they will use it spontaneo
67
68
  - ⚡ **High performance** - Batch operations for bulk imports (1000 issues in ~950ms)
68
69
  - 🗜️ **Memory decay** - Semantic compaction gracefully reduces old closed issues
69
70
 
71
+ ## Requirements
72
+
73
+ **Linux users:** Beads requires **glibc 2.32+** (Ubuntu 22.04+, Debian 11+, RHEL 9+, or equivalent).
74
+
75
+ - ✅ **Supported:** Ubuntu 22.04+ (Jammy), Debian 11+ (Bullseye), Fedora 34+, RHEL 9+
76
+ - ❌ **Not supported:** Ubuntu 20.04 (glibc 2.31), Debian 10 (glibc 2.28), CentOS 7, RHEL 8
77
+
78
+ **Ubuntu 20.04 users:** Standard support ended April 2025. Please upgrade to Ubuntu 22.04+ or build from source:
79
+ ```bash
80
+ git clone https://github.com/steveyegge/beads.git
81
+ cd beads
82
+ go build -o bd ./cmd/bd
83
+ ```
84
+
85
+ **macOS/Windows:** No special requirements.
86
+
70
87
  ## Installation
71
88
 
72
89
  **npm (Node.js environments, Claude Code for Web):**
@@ -74,20 +91,23 @@ Agents report that they enjoy working with Beads, and they will use it spontaneo
74
91
  npm install -g @beads/bd
75
92
  ```
76
93
 
77
- **Quick install (all platforms):**
94
+ **Quick install (macOS / Linux):**
78
95
  ```bash
79
96
  curl -fsSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash
80
97
  ```
81
98
 
99
+ **Quick install (Windows - PowerShell):**
100
+ ```powershell
101
+ irm https://raw.githubusercontent.com/steveyegge/beads/main/install.ps1 | iex
102
+ ```
103
+
82
104
  **Homebrew (macOS/Linux):**
83
105
  ```bash
84
106
  brew tap steveyegge/beads
85
107
  brew install bd
86
108
  ```
87
109
 
88
- **Other platforms and methods:** See [INSTALLING.md](INSTALLING.md) for Windows, Arch Linux, and manual installation.
89
-
90
- **IDE Integration:** See [INSTALLING.md](INSTALLING.md) for Claude Code plugin and MCP server setup.
110
+ For full, platform-specific instructions (Windows, Arch Linux, manual builds, IDE integrations, etc.) see the canonical guide in [docs/INSTALLING.md](docs/INSTALLING.md).
91
111
 
92
112
  **Claude Code for Web:** See [npm-package/CLAUDE_CODE_WEB.md](npm-package/CLAUDE_CODE_WEB.md) for SessionStart hook setup.
93
113
 
@@ -102,6 +122,12 @@ Beads is designed for **AI coding agents** to use on your behalf. Setup takes 30
102
122
  # In your project root:
103
123
  bd init
104
124
 
125
+ # For OSS contributors (fork workflow):
126
+ bd init --contributor
127
+
128
+ # For team members (branch workflow):
129
+ bd init --team
130
+
105
131
  # For protected branches (GitHub/GitLab):
106
132
  bd init --branch beads-metadata
107
133
 
@@ -109,6 +135,7 @@ bd init --branch beads-metadata
109
135
  # - Create .beads/ directory with database
110
136
  # - Import existing issues from git (if any)
111
137
  # - Prompt to install git hooks (recommended: say yes)
138
+ # - Prompt to configure git merge driver (recommended: say yes)
112
139
  # - Auto-start daemon for sync
113
140
 
114
141
  # Then tell your agent about bd:
@@ -123,10 +150,39 @@ echo "BEFORE ANYTHING ELSE: run 'bd onboard' and follow the instructions" >> AGE
123
150
  3. Update CLAUDE.md with a note (if present)
124
151
  4. Remove the bootstrap instruction
125
152
 
126
- **For agents setting up repos:** Use `bd init --quiet` for non-interactive setup (auto-installs git hooks, no prompts).
153
+ **For agents setting up repos:** Use `bd init --quiet` for non-interactive setup (auto-installs git hooks and merge driver, no prompts).
127
154
 
128
155
  **For new repo clones:** Run `bd init` (or `bd init --quiet` for agents) to import existing issues from `.beads/issues.jsonl` automatically.
129
156
 
157
+ **Git merge driver:** During `bd init`, beads configures git to use `bd merge` for intelligent JSONL merging. This prevents conflicts when multiple branches modify issues. Skip with `--skip-merge-driver` if needed. To configure manually later:
158
+ ```bash
159
+ git config merge.beads.driver "bd merge %A %O %A %B"
160
+ git config merge.beads.name "bd JSONL merge driver"
161
+ echo ".beads/beads.jsonl merge=beads" >> .gitattributes
162
+ ```
163
+
164
+ ### Files Created by `bd init`
165
+
166
+ **`bd init` creates these files in your repository:**
167
+
168
+ **Should be committed to git:**
169
+ - `.gitattributes` - Configures git merge driver for intelligent JSONL merging (critical for team collaboration)
170
+ - `.beads/beads.jsonl` - Issue data in JSONL format (source of truth, synced via git)
171
+ - `.beads/config.yaml` - Repository configuration template
172
+ - `.beads/README.md` - Documentation about beads for repository visitors
173
+ - `.beads/metadata.json` - Database metadata
174
+
175
+ **Should be in `.gitignore` (local-only):**
176
+ - `.beads/beads.db` - SQLite cache (auto-synced with JSONL)
177
+ - `.beads/beads.db-*` - SQLite journal files
178
+ - `.beads/bd.sock` / `.beads/bd.pipe` - Daemon communication socket
179
+ - `.beads/.exclusive-lock` - Daemon lock file
180
+ - `.git/beads-worktrees/` - Git worktrees (only created when using protected branch workflows)
181
+
182
+ The `.gitignore` entries are automatically created inside `.beads/.gitignore` by `bd init`, but your project's root `.gitignore` should also exclude the database and daemon files if you want to keep your git status clean.
183
+
184
+ **Using devcontainers?** Open the repository in a devcontainer (GitHub Codespaces or VS Code Remote Containers) and bd will be automatically installed with git hooks configured. See [.devcontainer/README.md](.devcontainer/README.md) for details.
185
+
130
186
  Most tasks will be created and managed by agents during conversations. You can check on things with:
131
187
 
132
188
  ```bash
@@ -163,6 +219,34 @@ bd update <issue-id> --status in_progress --json
163
219
  bd close <issue-id> --reason "Implemented" --json
164
220
  ```
165
221
 
222
+ ## Configuring Your Own AGENTS.md
223
+
224
+ **Recommendation for project maintainers:** Add a session-ending protocol to your project's `AGENTS.md` file to ensure agents properly manage issue tracking and sync the database before finishing work.
225
+
226
+ This pattern has proven invaluable for maintaining database hygiene and preventing lost work. Here's what to include (adapt for your workflow):
227
+
228
+ **1. File/update issues for remaining work**
229
+ - Agents should proactively create issues for discovered bugs, TODOs, and follow-up tasks
230
+ - Close completed issues and update status for in-progress work
231
+
232
+ **2. Run quality gates (if applicable)**
233
+ - Tests, linters, builds - only if code changes were made
234
+ - File P0 issues if builds are broken
235
+
236
+ **3. Sync the issue tracker carefully**
237
+ - Work methodically to ensure local and remote issues merge safely
238
+ - Handle git conflicts thoughtfully (sometimes accepting remote and re-importing)
239
+ - Goal: clean reconciliation where no issues are lost
240
+
241
+ **4. Verify clean state**
242
+ - All changes committed and pushed
243
+ - No untracked files remain
244
+
245
+ **5. Choose next work**
246
+ - Provide a formatted prompt for the next session with context
247
+
248
+ See the ["Landing the Plane"](AGENT_INSTRUCTIONS.md#landing-the-plane) section in this project's documentation for a complete example you can adapt. The key insight: explicitly reminding agents to maintain issue tracker hygiene prevents the common problem of agents creating issues during work but forgetting to sync them at session end.
249
+
166
250
  ## The Magic: Distributed Database via Git
167
251
 
168
252
  Here's the crazy part: **bd acts like a centralized database, but it's actually distributed via git.**
@@ -387,6 +471,32 @@ bd list --assignee alice # Filter by assignee
387
471
  bd list --label=backend,urgent # Filter by labels (AND)
388
472
  bd list --label-any=frontend,backend # Filter by labels (OR)
389
473
 
474
+ # Advanced filters
475
+ bd list --title-contains "auth" # Search title
476
+ bd list --desc-contains "implement" # Search description
477
+ bd list --notes-contains "TODO" # Search notes
478
+ bd list --id bd-123,bd-456 # Specific IDs (comma-separated)
479
+
480
+ # Date range filters (YYYY-MM-DD or RFC3339)
481
+ bd list --created-after 2024-01-01 # Created after date
482
+ bd list --created-before 2024-12-31 # Created before date
483
+ bd list --updated-after 2024-06-01 # Updated after date
484
+ bd list --updated-before 2024-12-31 # Updated before date
485
+ bd list --closed-after 2024-01-01 # Closed after date
486
+ bd list --closed-before 2024-12-31 # Closed before date
487
+
488
+ # Empty/null checks
489
+ bd list --empty-description # Issues with no description
490
+ bd list --no-assignee # Unassigned issues
491
+ bd list --no-labels # Issues with no labels
492
+
493
+ # Priority ranges
494
+ bd list --priority-min 0 --priority-max 1 # P0 and P1 only
495
+ bd list --priority-min 2 # P2 and below
496
+
497
+ # Combine multiple filters
498
+ bd list --status open --priority 1 --label-any urgent,critical --no-assignee
499
+
390
500
  # JSON output for agents
391
501
  bd info --json
392
502
  bd list --json
@@ -479,7 +589,7 @@ bd list --label backend,auth # AND: must have ALL labels
479
589
  bd list --label-any frontend,ui # OR: must have AT LEAST ONE
480
590
  ```
481
591
 
482
- **See [LABELS.md](LABELS.md) for complete label documentation and best practices.**
592
+ **See [docs/LABELS.md](docs/LABELS.md) for complete label documentation and best practices.**
483
593
 
484
594
  ### Deleting Issues
485
595
 
@@ -521,18 +631,28 @@ bd config list --json
521
631
  bd config unset jira.url
522
632
  ```
523
633
 
524
- **See [CONFIG.md](CONFIG.md) for complete configuration documentation.**
634
+ **See [docs/CONFIG.md](docs/CONFIG.md) for complete configuration documentation.**
525
635
 
526
636
  ### Compaction (Memory Decay)
527
637
 
528
- Beads uses AI to compress old closed issues, keeping databases lightweight as they age:
638
+ Beads provides **agent-driven compaction** - your AI agent decides what to compress, no API keys required:
529
639
 
530
640
  ```bash
531
- bd compact --dry-run --all # Preview candidates
532
- bd compact --days 90 # Compact closed issues older than 90 days
641
+ # Agent-driven workflow (recommended)
642
+ bd compact --analyze --json # Get candidates with full content
643
+ bd compact --apply --id bd-42 --summary summary.txt
644
+
645
+ # Legacy AI-powered workflow (requires ANTHROPIC_API_KEY)
646
+ bd compact --auto --dry-run --all # Preview candidates
647
+ bd compact --auto --all # Auto-compact all eligible issues
533
648
  ```
534
649
 
535
- This is agentic memory decay - your database naturally forgets fine-grained details while preserving essential context.
650
+ **How it works:**
651
+ 1. Use `--analyze` to export candidates (closed 30+ days) with full content
652
+ 2. Summarize the content using any LLM (Claude, GPT, local model, etc.)
653
+ 3. Use `--apply` to persist the summary and mark as compacted
654
+
655
+ This is agentic memory decay - your database naturally forgets fine-grained details while preserving essential context. The agent has full control over compression quality.
536
656
 
537
657
  ### Export/Import
538
658
 
@@ -564,6 +684,10 @@ bd daemons health
564
684
  bd daemons stop /path/to/workspace
565
685
  bd daemons stop 12345 # By PID
566
686
 
687
+ # Restart a specific daemon
688
+ bd daemons restart /path/to/workspace
689
+ bd daemons restart 12345 # By PID
690
+
567
691
  # View daemon logs
568
692
  bd daemons logs /path/to/workspace -n 100
569
693
  bd daemons logs 12345 -f # Follow mode
@@ -580,6 +704,39 @@ bd daemons killall --force # Force kill if graceful fails
580
704
 
581
705
  See [commands/daemons.md](commands/daemons.md) for complete documentation.
582
706
 
707
+ ### Web Interface
708
+
709
+ A standalone web interface for real-time issue monitoring is available as an example:
710
+
711
+ ```bash
712
+ # Build the monitor-webui
713
+ cd examples/monitor-webui
714
+ go build
715
+
716
+ # Start web UI on localhost:8080
717
+ ./monitor-webui
718
+
719
+ # Custom port and host
720
+ ./monitor-webui -port 3000
721
+ ./monitor-webui -host 0.0.0.0 -port 8080 # Listen on all interfaces
722
+ ```
723
+
724
+ The monitor provides:
725
+ - **Real-time table view** of all issues with filtering by status and priority
726
+ - **Click-through details** - Click any issue to view full details in a modal
727
+ - **Live updates** - WebSocket connection for real-time changes via daemon RPC
728
+ - **Responsive design** - Mobile-friendly card view on small screens
729
+ - **Statistics dashboard** - Quick overview of issue counts and ready work
730
+ - **Clean UI** - Simple, fast interface styled with milligram.css
731
+
732
+ The monitor is particularly useful for:
733
+ - **Team visibility** - Share a dashboard view of project status
734
+ - **AI agent supervision** - Watch your coding agent create and update issues in real-time
735
+ - **Quick browsing** - Faster than CLI for exploring issue details
736
+ - **Mobile access** - Check project status from your phone
737
+
738
+ See [examples/monitor-webui/](examples/monitor-webui/) for complete documentation.
739
+
583
740
  ## Examples
584
741
 
585
742
  Check out the **[examples/](examples/)** directory for:
@@ -594,24 +751,28 @@ Check out the **[examples/](examples/)** directory for:
594
751
 
595
752
  For advanced usage, see:
596
753
 
597
- - **[ADVANCED.md](ADVANCED.md)** - Prefix renaming, merging duplicates, daemon configuration
598
- - **[CONFIG.md](CONFIG.md)** - Configuration system for integrations
599
- - **[EXTENDING.md](EXTENDING.md)** - Database extension patterns
600
- - **[ADVANCED.md](ADVANCED.md)** - JSONL format and merge strategies
754
+ - **[docs/ADVANCED.md](docs/ADVANCED.md)** - Prefix renaming, merging duplicates, daemon configuration
755
+ - **[docs/CONFIG.md](docs/CONFIG.md)** - Configuration system for integrations
756
+ - **[docs/EXTENDING.md](docs/EXTENDING.md)** - Database extension patterns
757
+ - **[docs/ADVANCED.md](docs/ADVANCED.md)** - JSONL format and merge strategies
601
758
 
602
759
  ## Documentation
603
760
 
604
761
  - **[README.md](README.md)** - You are here! Core features and quick start
605
- - **[INSTALLING.md](INSTALLING.md)** - Complete installation guide for all platforms
606
- - **[QUICKSTART.md](QUICKSTART.md)** - Interactive tutorial (`bd quickstart`)
607
- - **[FAQ.md](FAQ.md)** - Frequently asked questions
608
- - **[TROUBLESHOOTING.md](TROUBLESHOOTING.md)** - Common issues and solutions
609
- - **[ADVANCED.md](ADVANCED.md)** - Advanced features and use cases
610
- - **[LABELS.md](LABELS.md)** - Complete label system guide
611
- - **[CONFIG.md](CONFIG.md)** - Configuration system
612
- - **[EXTENDING.md](EXTENDING.md)** - Database extension patterns
613
- - **[ADVANCED.md](ADVANCED.md)** - JSONL format analysis
614
- - **[PLUGIN.md](PLUGIN.md)** - Claude Code plugin documentation
762
+ - **[docs/INSTALLING.md](docs/INSTALLING.md)** - Complete installation guide for all platforms
763
+ - **[docs/QUICKSTART.md](docs/QUICKSTART.md)** - Interactive tutorial (`bd quickstart`)
764
+ - **[docs/AGENT_MAIL_QUICKSTART.md](docs/AGENT_MAIL_QUICKSTART.md)** - 5-minute Agent Mail setup guide
765
+ - **[docs/AGENT_MAIL.md](docs/AGENT_MAIL.md)** - Complete Agent Mail integration guide
766
+ - **[docs/MULTI_REPO_MIGRATION.md](docs/MULTI_REPO_MIGRATION.md)** - Multi-repo workflow guide (OSS, teams, multi-phase)
767
+ - **[docs/MULTI_REPO_AGENTS.md](docs/MULTI_REPO_AGENTS.md)** - Multi-repo patterns for AI agents
768
+ - **[docs/FAQ.md](docs/FAQ.md)** - Frequently asked questions
769
+ - **[docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md)** - Common issues and solutions
770
+ - **[docs/ADVANCED.md](docs/ADVANCED.md)** - Advanced features and use cases
771
+ - **[docs/LABELS.md](docs/LABELS.md)** - Complete label system guide
772
+ - **[docs/CONFIG.md](docs/CONFIG.md)** - Configuration system
773
+ - **[docs/EXTENDING.md](docs/EXTENDING.md)** - Database extension patterns
774
+ - **[docs/ADVANCED.md](docs/ADVANCED.md)** - JSONL format analysis
775
+ - **[docs/PLUGIN.md](docs/PLUGIN.md)** - Claude Code plugin documentation
615
776
  - **[CONTRIBUTING.md](CONTRIBUTING.md)** - Contribution guidelines
616
777
  - **[SECURITY.md](SECURITY.md)** - Security policy
617
778
 
@@ -619,7 +780,7 @@ For advanced usage, see:
619
780
 
620
781
  ### Third-Party Tools
621
782
 
622
- - **[Beadster](https://apps.apple.com/us/app/beadster-issue-tracking/id6754286462)** - Native macOS app for viewing and managing bd issues across multiple projects. Features a compact, always-on-top window for quick reference during development. Built by [@podviaznikov](https://github.com/podviaznikov).
783
+ - **[beads-ui](https://github.com/mantoni/beads-ui)** - Local web interface with live updates, kanban board, and keyboard navigation. Zero-setup launch with `npx beads-ui start`. Built by [@mantoni](https://github.com/mantoni).
623
784
 
624
785
  Have you built something cool with bd? [Open an issue](https://github.com/steveyegge/beads/issues) to get it featured here!
625
786
 
package/bin/bd CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beads/bd",
3
- "version": "0.22.1",
3
+ "version": "0.24.3",
4
4
  "description": "Beads issue tracker - lightweight memory system for coding agents with native binary support",
5
5
  "main": "bin/bd.js",
6
6
  "bin": {