Commit Graph

2481 Commits

Author SHA1 Message Date
Steve Yegge
eb8b7f13f9 bd sync: 2025-11-25 12:55:13 2025-11-25 12:55:13 -08:00
Steve Yegge
907759ce3f bd sync: apply DB changes after import 2025-11-25 12:41:36 -08:00
Steve Yegge
a79f48d980 bd sync: 2025-11-25 12:41:35 2025-11-25 12:41:36 -08:00
Steve Yegge
3f84ec3774 feat(deletions): add pruning and git history fallback
Implements two P1 tasks for the deletions manifest epic:

bd-v2x: Add deletions pruning to bd compact
- PruneDeletions function removes records older than retention period
- Default retention: 7 days (configurable via metadata.json)
- CLI --retention flag for override
- Atomic file rewrite prevents corruption
- Called automatically during all compact operations

bd-pnm: Add git history fallback for pruned deletions
- Catches deletions where manifest entry was pruned
- Uses git log -S to search for ID in JSONL history
- Batches multiple IDs for efficiency (git -G regex)
- Self-healing: backfills manifest on hit
- Conservative: keeps issue if git check fails (shallow clone)

Tests added for both features with edge cases covered.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 12:41:36 -08:00
Steve Yegge
1804a91787 bd sync: apply DB changes after import 2025-11-25 12:33:39 -08:00
Steve Yegge
f7adb935df bd sync: 2025-11-25 12:03:21 2025-11-25 12:03:21 -08:00
Steve Yegge
be784a0b4b bd sync: 2025-11-25 11:46:06 2025-11-25 11:46:06 -08:00
Steve Yegge
c3e4172be7 bd sync: 2025-11-25 11:35:26 2025-11-25 11:35:26 -08:00
Steve Yegge
d1d7b0e34a refactor(deletions): improve API based on code review
- Return LoadResult struct instead of multiple values, with Warnings slice
  for testability (no more hardcoded stderr output)
- Add ID validation in AppendDeletion to prevent invalid records
- Add Sync() call in AppendDeletion for durability
- Document that timestamps may lose sub-second precision
- Document that empty slice in WriteDeletions clears all deletions
- Add test for empty ID validation

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 11:30:41 -08:00
Steve Yegge
a7f63c6925 bd sync: 2025-11-25 10:59:11 2025-11-25 10:59:11 -08:00
Steve Yegge
368e5b9955 bd sync: 2025-11-25 10:52:39 2025-11-25 10:52:39 -08:00
Steve Yegge
a3103d3e59 fix: update last_import_time when hash matches but mtime is newer
When JSONL mtime changes without content change (e.g., git pull, touch),
the staleness check would repeatedly trigger but auto-import would skip
due to hash match, creating an infinite loop of "Database out of sync"
errors.

Now we update last_import_time even when skipping import due to hash
match, breaking the staleness loop.

Fixes #378

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 10:47:24 -08:00
Steve Yegge
11378c72c6 bd sync: apply DB changes after import 2025-11-25 09:58:11 -08:00
Steve Yegge
25359f4606 bd sync: apply DB changes after import 2025-11-25 09:58:03 -08:00
Steve Yegge
72ddacbcb7 bd sync: 2025-11-25 09:58:02 2025-11-25 09:58:03 -08:00
Steve Yegge
a8008f5a0b bd sync: 2025-11-25 09:26:29 2025-11-25 09:26:29 -08:00
Steve Yegge
bf0a196aed bd sync: 2025-11-25 09:22:26 2025-11-25 09:22:26 -08:00
Steve Yegge
9c68d59550 bd sync: apply DB changes after import 2025-11-25 09:10:06 -08:00
Steve Yegge
c808ff2cf8 bd sync: 2025-11-25 09:09:05 2025-11-25 09:09:05 -08:00
Steve Yegge
b6a1b98ff3 fix: repair corrupted beads JSONL
- Fixed nested [deleted:[deleted:...]] patterns in bd-1rh, bd-1w6i, bd-c362
- Fixed bd-13gm which had shell command injection as description

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 01:10:40 -08:00
Steve Yegge
5134096189 bd sync: 2025-11-25 00:45:08 2025-11-25 00:45:08 -08:00
Steve Yegge
d854eccc3f chore: remove ZFC bug investigation doc (bug fixed) 2025-11-25 00:42:31 -08:00
Steve Yegge
8755c05508 fix: cleanup orphan issue and nested deleted references
- Deleted orphan issue bd-98c4e1fa.1 (parent was deleted)
- Fixed nested [deleted:[deleted:...]] patterns in 4 issues
- Removed DEBUG statement from sync.go

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 00:35:04 -08:00
Steve Yegge
11fe204221 bd sync: 2025-11-25 00:25:13 2025-11-25 00:25:13 -08:00
Steve Yegge
4f4b59aba5 fix: prevent internal fields from being exported to JSONL
ContentHash and SourceRepo were being exported to beads.jsonl even though
they are internal database fields. This caused JSONL pollution where every
issue got these extra fields, and re-exports would produce different output
than the original clean JSONL.

Changed JSON tags from `json:"...,omitempty"` to `json:"-"` for:
- ContentHash: Internal optimization field for content-based diffing
- SourceRepo: Internal metadata for multi-repo support

This fixes the ZFC resurrection bug where re-exports after import would
pollute the JSONL with internal fields.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 00:21:28 -08:00
Steve Yegge
3d6dd278bf docs: add ZFC resurrection bug investigation notes
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 00:04:58 -08:00
Steve Yegge
8370a43a59 bd sync: apply DB changes after import 2025-11-24 23:57:50 -08:00
Steve Yegge
c6f9f7ee05 fix: prevent ZFC resurrection by propagating skipExport flag (with debug)
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 23:57:42 -08:00
Steve Yegge
fd4af85981 fix: restore beads.jsonl to clean state (74 lines from dcd7877)
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 23:43:37 -08:00
Steve Yegge
d0229a9078 bd sync: 2025-11-24 23:41:10 2025-11-24 23:41:10 -08:00
Steve Yegge
901cff1361 bd sync: 2025-11-24 23:39:43 2025-11-24 23:39:54 -08:00
Steve Yegge
f3e1268b33 refactor: remove deprecated global daemon support
Global daemon support has been deprecated for most of the project's
lifetime. This change removes the dead code entirely:

- Remove --global and --migrate-to-global daemon flags
- Remove runGlobalDaemon() and migrateToGlobalDaemon() functions
- Remove shouldUseGlobalDaemon() and getGlobalBeadsDir() functions
- Simplify functions that had global bool parameters
- Remove warning about old global socket in getSocketPath()

This reduces code complexity and removes 238 net lines of unused code.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 23:39:54 -08:00
Steve Yegge
58f767121d bd sync: 2025-11-24 23:27:31 2025-11-24 23:27:31 -08:00
Steve Yegge
0a77619c5e bd sync: 2025-11-24 22:56:05 2025-11-24 22:56:05 -08:00
Steve Yegge
ef93b31a74 Export Transaction type for atomic multi-operation support
Add Transaction type alias to both internal/beads and public beads packages.
This allows extensions like VC to use RunInTransaction() with the proper
Transaction interface type for atomic issue creation.

bd-m73k

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 22:55:55 -08:00
Steve Yegge
13b827d983 bd sync: 2025-11-24 22:34:32 2025-11-24 22:34:32 -08:00
Steve Yegge
10ec9fbd97 fix: update Nix flake version and vendorHash
- Update version from 0.9.9 to 0.24.4 (current release)
- Regenerate vendorHash after dependency updates

Fixes bd-870

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 22:34:22 -08:00
Steve Yegge
6023989578 chore: bump version to 0.24.4
Updated all component versions:
- bd CLI: 0.24.3 → 0.24.4
- Plugin: 0.24.3 → 0.24.4
- MCP server: 0.24.3 → 0.24.4
- npm package: 0.24.3 → 0.24.4
- Git hooks: 0.24.3 → 0.24.4

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 22:28:57 -08:00
Steve Yegge
9b13c422ca docs: add v0.24.4 changelog entry
Comprehensive changelog documenting all changes since v0.24.3:
- Transaction API for atomic multi-operation workflows
- Tip system infrastructure for smart user hints
- Sorting flags for bd list and bd search
- Claude integration verification in bd doctor
- ARM Linux support (PR #371)
- Multiple bug fixes and improvements

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 22:28:04 -08:00
Steve Yegge
45464ca3f9 fix: skip file permission tests on Windows
Windows doesn't support Unix-style file permissions, so these tests
will always fail. Skip the permission verification on Windows while
still testing the core functionality (file creation, content).

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 22:23:45 -08:00
Steve Yegge
071fc96206 fix: resolve golangci-lint errors
- Add error check for fmt.Fprintf in tips.go (errcheck)
- Add nolint for safe SQL formatting in transaction.go (gosec G201)
- Fix 'cancelled' -> 'canceled' spelling (misspell)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 22:21:55 -08:00
Steve Yegge
9767e57024 bd doctor: add Claude integration verification checks
Add two new checks to verify Claude Code integration:
- CheckBdInPath: verifies 'bd' is in PATH (needed for hooks)
- CheckDocumentationBdPrimeReference: checks if docs reference 'bd prime'
  and verifies the command exists (detects version mismatches)

Closes bd-o78

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 22:10:58 -08:00
Steve Yegge
4215f5d8a9 bd sync: 2025-11-24 21:16:44 2025-11-24 21:16:44 -08:00
Steve Yegge
46d65c9778 bd sync: apply DB changes after import 2025-11-24 21:00:16 -08:00
Steve Yegge
bdeb0ee99d Merge branch 'main' of https://github.com/steveyegge/beads 2025-11-24 21:00:16 -08:00
Steve Yegge
7ff493015f bd sync: 2025-11-24 21:00:15 2025-11-24 21:00:15 -08:00
Steve Yegge
c90276c0f4 bd sync: apply DB changes after import 2025-11-24 20:49:24 -08:00
Steve Yegge
f08ed9e665 bd sync: 2025-11-24 20:45:08 2025-11-24 20:45:08 -08:00
Steve Yegge
a6990a85ba fix: code review fixes for Transaction API and Search (epic bd-8bq)
- Add safe type assertions in applyUpdatesToIssue (bd-4gs)
- Add --sort and --reverse flags to bd search (bd-4f6)
- Add test cases for SearchIssues priority range, date range, IDs (bd-ew5)
- Handle errors from GetLabelsForIssues in search.go (bd-lce)
- Standardize error wrapping to fmt.Errorf pattern (bd-7kl)
- Extract shared scanIssueRow helper function (bd-ajf)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 20:45:04 -08:00
Steve Yegge
82d7302dae bd sync: 2025-11-24 20:44:40 2025-11-24 20:45:04 -08:00