Commit Graph

2285 Commits

Author SHA1 Message Date
Steve Yegge
2637a7bde0 bd sync: apply DB changes after import 2025-11-23 21:12:08 -08:00
Steve Yegge
b9531d4cf3 Merge branch 'main' of https://github.com/steveyegge/beads 2025-11-23 21:12:08 -08:00
Steve Yegge
0e0dc3a753 bd sync: 2025-11-23 21:12:07 2025-11-23 21:12:07 -08:00
Steve Yegge
0ded604d5b Merge remote changes 2025-11-23 21:10:21 -08:00
Steve Yegge
a1a2082fff bd sync: 2025-11-23 21:10:06 2025-11-23 21:10:06 -08:00
Steve Yegge
83609d5098 Add bd doctor check and fix for missing sync.branch config (bd-rsua)
Problem: Existing beads repositories initialized before commit a4c38d5 don't have sync.branch configured. This causes 'bd sync --status' to fail with a confusing error.

Solution: Added new check in 'bd doctor' that detects when sync.branch is not configured and provides automatic fix via 'bd doctor --fix'. The fix automatically sets sync.branch to the current branch using 'git symbolic-ref --short HEAD'.

Changes:
- Added checkSyncBranchConfig() function in doctor.go
- Created fix/sync_branch.go with SyncBranchConfig() fix handler
- Added comprehensive test coverage in doctor_test.go
- Integrated check into applyFixes() switch statement

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 21:09:55 -08:00
Steve Yegge
bc551e1ac1 bd sync: apply DB changes after import 2025-11-23 21:09:00 -08:00
Steve Yegge
0bc5caee45 Merge branch 'main' of https://github.com/steveyegge/beads 2025-11-23 21:08:59 -08:00
Steve Yegge
4d1f4d6649 bd sync: 2025-11-23 21:08:58 2025-11-23 21:08:58 -08:00
Steve Yegge
a2769dd093 bd sync: 2025-11-23 21:07:30 2025-11-23 21:07:57 -08:00
Steve Yegge
71502b1b93 bd sync: 2025-11-23 21:06:28 2025-11-23 21:06:28 -08:00
Steve Yegge
c58740dda8 bd sync: apply DB changes after import 2025-11-23 21:03:41 -08:00
Steve Yegge
6079e3c04e Merge branch 'main' of https://github.com/steveyegge/beads 2025-11-23 21:03:40 -08:00
Steve Yegge
a2c5a4d0f7 bd sync: 2025-11-23 21:03:40 2025-11-23 21:03:40 -08:00
Steve Yegge
18f81051f3 Fix race condition in client socket cleanup (bd-4owj)
- Re-check socket existence after lock check to avoid stale socket state
- If socket is initially missing but daemon lock is held, re-check socket to handle daemon startup race
- Add test TestTryConnectWithTimeout_SocketExistenceRecheck to verify fix

Fixes bd-4owj
2025-11-23 20:58:11 -08:00
Steve Yegge
e45ea617b7 Merge branch 'main' of https://github.com/steveyegge/beads 2025-11-23 20:57:56 -08:00
Steve Yegge
5ff65cae45 bd daemon export: 2025-11-23 20:57:39 2025-11-23 20:57:39 -08:00
Steve Yegge
0fa99ebc20 bd sync: apply DB changes after import 2025-11-23 20:55:27 -08:00
Steve Yegge
b4acc2b3b2 bd sync: 2025-11-23 20:55:16 2025-11-23 20:55:16 -08:00
Steve Yegge
7150d02502 bd daemon export: 2025-11-23 20:54:53 2025-11-23 20:54:53 -08:00
Steve Yegge
0073234d84 bd sync: apply DB changes after import 2025-11-23 20:54:24 -08:00
Steve Yegge
cae955fb9d Merge branch 'main' of https://github.com/steveyegge/beads 2025-11-23 20:54:24 -08:00
Steve Yegge
b75914b8ca Fix: Improve staleness check error handling (bd-2q6d, bd-o4qy, bd-n4td)
Changes:
- CheckStaleness now returns errors for corrupted last_import_time metadata
  instead of silently returning false (bd-o4qy)
- Added handling for empty string metadata (memory store behavior)
- Enhanced warning messages when staleness check fails to be more explicit
  that operation continues with potentially stale data (bd-n4td)
- Added test coverage for corrupted metadata scenario

Closes bd-2q6d, bd-o4qy, bd-n4td

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 20:54:18 -08:00
Steve Yegge
9ba039ce45 bd daemon export: 2025-11-23 20:51:15 2025-11-23 20:51:15 -08:00
Steve Yegge
d91560e260 Merge branch 'main' of https://github.com/steveyegge/beads 2025-11-23 20:51:11 -08:00
Steve Yegge
e8a752e707 Fix unvalidated dependency parsing in create.go
Validate dependsOnID is non-empty before setting discoveredFromParentID
to prevent attempting to fetch an issue with empty ID.

Also added validation to ensure parent issue exists before generating
child IDs in direct mode.

Fixes: bd-ia8r
2025-11-23 20:51:09 -08:00
Steve Yegge
3cf5e26d1e Implement auto-resolution of JSONL merge conflicts during bd sync
- Add isInRebase() to detect rebase state
- Add hasJSONLConflict() to check for JSONL-only conflicts
- Add runGitRebaseContinue() to continue rebase after resolution
- Auto-export from DB and resolve conflict when detected
- Add comprehensive tests for auto-resolution logic

Implements bd-cwmt
2025-11-23 20:41:35 -08:00
Steve Yegge
3ca11dc440 bd sync: 2025-11-23 20:41:25 2025-11-23 20:41:25 -08:00
Steve Yegge
144f4dea32 Merge branch 'main' of https://github.com/steveyegge/beads 2025-11-23 20:39:55 -08:00
Steve Yegge
c39243710c bd sync: apply DB changes after import 2025-11-23 20:38:42 -08:00
Steve Yegge
157d87ac8b Merge branch 'main' of https://github.com/steveyegge/beads 2025-11-23 20:38:42 -08:00
Steve Yegge
8a2f910475 bd sync: 2025-11-23 20:38:41 2025-11-23 20:38:41 -08:00
Steve Yegge
4fd7933c10 bd sync: 2025-11-23 20:31:00
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 20:34:51 -08:00
Steve Yegge
d26f71bd31 bd daemon export: 2025-11-23 20:34:27 2025-11-23 20:34:27 -08:00
Steve Yegge
273a4d1cfc feat: Complete command set standardization (bd-au0)
Epic bd-au0: Command Set Standardization & Flag Consistency

Completed all 10 child issues:

P0 tasks:
- Standardize --dry-run flag across all commands (bd-au0.1)
- Add label operations to bd update (bd-au0.2)
- Fix --title vs --title-contains redundancy (bd-au0.3)
- Standardize priority flag parsing (bd-au0.4)

P1 tasks:
- Add date/priority filters to bd search (bd-au0.5)
- Add comprehensive filters to bd export (bd-au0.6)
- Audit and standardize JSON output (bd-au0.7)

P2 tasks:
- Improve clean vs cleanup documentation (bd-au0.8)
- Document rarely-used commands (bd-au0.9)

P3 tasks:
- Add global verbosity flags --verbose/-v and --quiet/-q (bd-au0.10)

Key changes:
- export.go: Added filters (assignee, type, labels, priority, dates)
- main.go: Added --verbose/-v and --quiet/-q global flags
- debug.go: Added SetVerbose/SetQuiet and PrintNormal helpers
- clean.go/cleanup.go: Improved documentation with cross-references
- detect_pollution.go: Added use cases and warnings
- migrate_hash_ids.go: Marked as legacy command
- rename_prefix.go: Added use cases documentation

All success criteria met: flags standardized, feature parity achieved,
naming clarified, JSON output consistent.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 20:33:31 -08:00
Steve Yegge
b5fb06c17d bd sync: apply DB changes after import 2025-11-23 20:32:54 -08:00
Steve Yegge
ea0900229b Merge branch 'main' of https://github.com/steveyegge/beads 2025-11-23 20:32:54 -08:00
Steve Yegge
19098b92ee Fix unused variable in init.go
Remove unused yellow color variable that was causing build warning.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 20:32:49 -08:00
Steve Yegge
c765e6562d bd sync: 2025-11-23 20:24:44 2025-11-23 20:24:44 -08:00
Steve Yegge
58a71021ae bd sync: 2025-11-23 20:20:07 2025-11-23 20:24:40 -08:00
Steve Yegge
e07f1d43f7 bd sync: 2025-11-23 20:22:09 2025-11-23 20:22:09 -08:00
Steve Yegge
83246c8a2c Merge branch 'main' of https://github.com/steveyegge/beads 2025-11-23 20:22:03 -08:00
Steve Yegge
e3e0a04496 Add configurable export error handling policies (bd-exug)
Implements flexible error handling for export operations with four policies:
- strict: Fail-fast on any error (default for user exports)
- best-effort: Skip errors with warnings (default for auto-exports)
- partial: Retry then skip with manifest tracking
- required-core: Fail on core data, skip enrichments

Key features:
- Per-project configuration via `bd config set export.error_policy`
- Separate policy for auto-exports: `auto_export.error_policy`
- Retry with exponential backoff (configurable attempts/delay)
- Optional export manifests documenting completeness
- Per-issue encoding error handling

This allows users to choose the right trade-off between data integrity
and system availability for their specific project needs.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 20:21:51 -08:00
Steve Yegge
83b8e38331 bd sync: 2025-11-23 20:21:05 2025-11-23 20:21:05 -08:00
Steve Yegge
44bf71d47e Merge branch 'main' of https://github.com/steveyegge/beads 2025-11-23 20:16:18 -08:00
Steve Yegge
12187fcea3 bd sync: 2025-11-23 20:16:17 2025-11-23 20:16:17 -08:00
Steve Yegge
b6870de7f8 Fix: Change file permissions from 0644 to 0600 for security
The gosec linter (G302) requires file permissions to be 0600 or less
for security. Updated atomicWriteFile to use 0600 (owner read/write only)
instead of 0644 (world readable).

This affects config files written by bd setup commands (cursor, aider,
claude), making them only accessible by the owner.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 20:11:52 -08:00
Steve Yegge
c5210ff2a9 Merge branch 'main' of https://github.com/steveyegge/beads 2025-11-23 20:07:46 -08:00
Steve Yegge
afb6c7c8d8 bd sync: 2025-11-23 20:07:46 2025-11-23 20:07:46 -08:00
Steve Yegge
035b006e25 fix: Support both canonical and legacy JSONL filenames in merge driver check
The mergeDriverInstalled() function was only checking for the legacy
"beads.jsonl" filename, but installMergeDriver() writes the canonical
"issues.jsonl" filename. This caused false negatives where users with
the correct canonical configuration would be incorrectly flagged as
"not installed", potentially triggering unnecessary reinstalls.

Changes:
- Update mergeDriverInstalled() to check for both filenames
- Add test for canonical issues.jsonl filename detection
- Ensure existing correct configs are not unnecessarily overwritten

This fixes the inconsistency found during code review of bd-3sz0.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 20:07:26 -08:00