Commit Graph

2755 Commits

Author SHA1 Message Date
Steve Yegge
83ea1bf37f bd sync: 2025-11-29 13:31:10 2025-11-29 13:31:10 -08:00
Steve Yegge
d29ab0e548 bd sync: 2025-11-29 13:30:59 2025-11-29 13:31:10 -08:00
Steve Yegge
cf834d5dc3 bd sync: 2025-11-29 13:31:07 2025-11-29 13:31:07 -08:00
Steve Yegge
92c1a7e1f9 bd sync: 2025-11-29 13:30:51 2025-11-29 13:31:06 -08:00
Steve Yegge
622e16ce63 bd sync: apply DB changes after import 2025-11-29 13:31:01 -08:00
Steve Yegge
57bb3a7577 bd sync: 2025-11-29 13:30:51 2025-11-29 13:31:00 -08:00
Steve Yegge
33aa1eaef5 bd sync: 2025-11-29 13:30:57 2025-11-29 13:30:57 -08:00
Steve Yegge
d933caffd8 bd sync: 2025-11-29 13:30:51 2025-11-29 13:30:51 -08:00
Steve Yegge
10239812bc bd sync: 2025-11-29 13:28:39 2025-11-29 13:28:39 -08:00
Steve Yegge
595b794378 bd sync: 2025-11-29 13:20:30 2025-11-29 13:20:30 -08:00
Steve Yegge
69d6754e96 bd sync: 2025-11-29 13:20:14 2025-11-29 13:20:24 -08:00
Steve Yegge
559526a4f5 bd sync: 2025-11-29 10:07:08 2025-11-29 10:07:08 -08:00
Steve Yegge
078efdf07b bd sync: 2025-11-28 23:37:56 2025-11-28 23:37:56 -08:00
Steve Yegge
65baeecce1 bd sync: 2025-11-28 23:36:21 2025-11-28 23:36:21 -08:00
Steve Yegge
a4e0f9dbc8 fix(no-db): auto-detect JSONL-only mode when config has no-db:true (bd-5kj)
When .beads exists with issues.jsonl but no SQLite database, and config.yaml
has no-db: true, automatically enable JSONL-only mode instead of failing
with 'no beads database found'. Also improved error message to mention
--no-db option.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 23:36:11 -08:00
Steve Yegge
092863b4dd bd sync: 2025-11-28 23:34:12 2025-11-28 23:34:12 -08:00
Steve Yegge
cd114b7bd5 feat: extract error handling helpers FatalError/WarnError (bd-s0z)
Create reusable error handling helpers to reduce boilerplate and
enforce consistency across the codebase:

- FatalError(format, args...): writes "Error: ..." to stderr and exits
- FatalErrorWithHint(message, hint): includes actionable suggestion
- WarnError(format, args...): writes "Warning: ..." to stderr

Prototyped in create.go to validate the approach - converted 13 error
patterns and 5 warning patterns. This reduces code from:

    fmt.Fprintf(os.Stderr, "Error: %v\n", err)
    os.Exit(1)

To simply:

    FatalError("%v", err)

Also fixed countIssuesInJSONLFile reference after earlier refactoring.

See docs/ERROR_HANDLING.md for the three-pattern guideline.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 23:28:30 -08:00
Steve Yegge
0ab815dd5a bd sync: 2025-11-28 23:28:10 2025-11-28 23:28:17 -08:00
Steve Yegge
642f1c286b bd sync: 2025-11-28 23:27:36 2025-11-28 23:27:36 -08:00
Steve Yegge
50f64ecece docs: extend error handling audit with Phase 2 (bd-3gc)
Audited 10 additional cmd/bd files for error handling consistency:
- daemon_sync.go, list.go, show.go, dep.go, label.go
- comments.go, delete.go, compact.go, config.go, validate.go

Key findings:
- Pattern compliance is excellent (~97% for Pattern A, ~95% for Pattern B)
- Identified good patterns: batch operations continue, daemon fallback
- Updated compliance scorecard with new results

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 23:27:24 -08:00
Steve Yegge
d672eb0684 bd sync: 2025-11-28 23:27:08 2025-11-28 23:27:24 -08:00
Steve Yegge
975da2f6f9 bd sync: 2025-11-28 23:26:28 2025-11-28 23:26:28 -08:00
Steve Yegge
ad0babce96 bd sync: 2025-11-28 23:26:20 2025-11-28 23:26:28 -08:00
Steve Yegge
d6f19d71f7 bd sync: apply DB changes after import 2025-11-28 23:26:24 -08:00
Steve Yegge
0d6298f2d3 docs: add performance testing guide (bd-zj8e)
Created docs/PERFORMANCE_TESTING.md with comprehensive coverage of:
- Running benchmarks (make bench, make bench-quick)
- Running specific benchmarks
- Understanding benchmark output (ns/op, allocs/op)
- CPU profiling with pprof and flamegraphs
- Memory profiling
- User diagnostics (bd doctor --perf)
- Comparing performance with benchstat
- Optimization tips and common patterns

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 23:26:24 -08:00
Steve Yegge
24999931a5 bd sync: 2025-11-28 23:25:41 2025-11-28 23:25:41 -08:00
Steve Yegge
7a38cb2d6b bd sync: 2025-11-28 23:25:34 2025-11-28 23:25:41 -08:00
Steve Yegge
65e8fa14f8 bd sync: apply DB changes after import 2025-11-28 23:20:15 -08:00
Steve Yegge
9b86e8ba10 bd sync: apply DB changes after import 2025-11-28 23:20:10 -08:00
Steve Yegge
608eeb82ec bd sync: 2025-11-28 23:19:26 2025-11-28 23:19:26 -08:00
Steve Yegge
a5ec5c6977 feat(bd-1pj6): Add custom status states via config
Users can now define custom status states for multi-step pipelines using:
  bd config set status.custom "awaiting_review,awaiting_testing,awaiting_docs"

Changes:
- Add Status.IsValidWithCustom() method for custom status validation
- Add Issue.ValidateWithCustomStatuses() method
- Add GetCustomStatuses() method to storage interface
- Update CreateIssue/UpdateIssue to support custom statuses
- Add comprehensive tests for custom status functionality
- Update config command help text with custom status documentation

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 23:19:21 -08:00
Steve Yegge
26f84b6a47 bd sync: 2025-11-28 23:19:01 2025-11-28 23:19:21 -08:00
Steve Yegge
ce53a4373c bd sync: 2025-11-28 23:15:17 2025-11-28 23:15:17 -08:00
Steve Yegge
f269554b72 bd sync: apply DB changes after import 2025-11-28 23:14:45 -08:00
Steve Yegge
061d11d138 bd sync: apply DB changes after import 2025-11-28 23:14:12 -08:00
Steve Yegge
f59f8c20d0 refactor: rename last_import_hash to jsonl_content_hash (bd-39o)
The metadata key 'last_import_hash' was misleading because it's updated on
both import AND export. Renamed to 'jsonl_content_hash' which more accurately
describes its purpose - tracking the content hash of the JSONL file.

Added migration support: read operations try new key first, then fall back
to old key for backwards compatibility with existing databases.

Files modified:
- cmd/bd/integrity.go: Update key name with migration support
- cmd/bd/import.go: Update key name
- cmd/bd/sync.go: Update key name
- cmd/bd/autoflush.go: Update key name with migration support
- cmd/bd/daemon_sync.go: Update key name
- cmd/bd/daemon_event_loop.go: Update key name with migration support
- internal/autoimport/autoimport.go: Update key name with migration support
- Updated all related tests

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 23:14:12 -08:00
Steve Yegge
bca8022bee bd sync: 2025-11-28 23:13:57 2025-11-28 23:14:12 -08:00
Steve Yegge
7fb2122601 bd sync: apply DB changes after import 2025-11-28 23:12:58 -08:00
Steve Yegge
9abe99e05a docs(UX): improve daemon and merge documentation (bd-bt6y)
- Clarify bd merge help text: git merge driver, not for duplicate issues
- Add Do I Need the Daemon section to DAEMON.md
- Add daemon overview section to QUICKSTART.md

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 23:11:24 -08:00
Steve Yegge
51db4c8212 bd sync: 2025-11-28 23:10:52 2025-11-28 23:11:00 -08:00
Steve Yegge
39909c1f80 feat: implement health checks in daemon event loop (bd-gqo)
Add health checks to checkDaemonHealth() function:
- Database integrity check using PRAGMA quick_check(1)
- Disk space check with 100MB warning threshold (platform-specific)
- Memory usage check with 500MB heap warning threshold

Platform-specific disk space implementations:
- Unix: uses unix.Statfs
- Windows: uses windows.GetDiskFreeSpaceEx
- WASM: returns unsupported (false)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 23:10:44 -08:00
Steve Yegge
5882a2f105 bd sync: 2025-11-28 23:10:29 2025-11-28 23:10:35 -08:00
Steve Yegge
3ccfc8e6ad bd sync: 2025-11-28 23:09:20 2025-11-28 23:09:21 -08:00
Steve Yegge
9efd31de5f bd-o2e: Add --squash flag to bd sync for batching commits
For solo developers who don't need real-time multi-agent coordination,
--squash accumulates changes in JSONL without committing. Run 'bd sync'
later (without --squash) to commit all accumulated changes in one commit.

This reduces git history noise while preserving the default behavior
needed for multi-agent orchestration.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 23:09:20 -08:00
Steve Yegge
116acd4698 bd sync: 2025-11-28 23:09:11 2025-11-28 23:09:11 -08:00
Steve Yegge
70dc0704af bd sync: 2025-11-28 23:08:50 2025-11-28 23:09:05 -08:00
Steve Yegge
4c713e03ff bd sync: 2025-11-28 23:08:12 2025-11-28 23:08:12 -08:00
Steve Yegge
12b678058a bd sync: 2025-11-28 23:08:01 2025-11-28 23:08:08 -08:00
Steve Yegge
40b07045c7 refactor: deduplicate FindJSONLInDir function (bd-8a5)
Extract shared JSONL file discovery logic to internal/utils/path.go.
Both autoimport and beads packages now use this shared implementation.

Changes:
- Add utils.FindJSONLInDir with common logic
- Update autoimport.go to use utils.FindJSONLInDir
- Update beads.go to delegate to utils.FindJSONLInDir
- Update server_export_import_auto.go to use utils.FindJSONLInDir
- Move FindJSONLInDir test to utils/path_test.go
- Fix pre-existing duplicate countIssuesInJSONLFile in init.go

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 23:07:53 -08:00
Steve Yegge
52fe60859a bd sync: 2025-11-28 23:07:13 2025-11-28 23:07:30 -08:00