Commit Graph

40 Commits

Author SHA1 Message Date
Steve Yegge
58a5b4a54f chore: sync beads state after preflight fix 2025-12-14 16:42:15 -08:00
Steve Yegge
8a7b9afea3 chore: sync beads changes 2025-12-14 15:23:35 -08:00
matt wilkie
a22d949cbd Fix bd-in7q: prevent migrate-tombstones from corrupting deletions manifest (#554)
Root cause: bd doctor hydrate was re-adding migrated tombstones to the
deletions manifest because getCurrentJSONLIDs() included all issues,
including tombstones. When compared against git history, tombstones
appeared as 'deleted' and were incorrectly added to the manifest as new
deletions, corrupting the database on next sync.

Fix: Skip tombstone-status issues in getCurrentJSONLIDs() so they don't
participate in deletion detection. Tombstones represent already-recorded
deletions/migrations and shouldn't be treated as active issues.

Changes:
- cmd/bd/doctor/fix/deletions.go: Skip tombstones in getCurrentJSONLIDs()
- cmd/bd/doctor/fix/deletions_test.go: New tests for tombstone skipping
- cmd/bd/migrate_tombstones_test.go: Test that tombstones are valid

This fixes the bug where 'bd migrate-tombstones' followed by 'bd sync'
would add thousands of deletion records with author 'bd-doctor-hydrate'
2025-12-14 14:11:27 -08:00
Steve Yegge
4c985d7d3b chore: remove 12 orphaned issues (bd-cb64c226.* and bd-cbed9619.*) 2025-12-13 22:55:47 -08:00
Steve Yegge
0456e784f4 fix(deps): improve parent-child dependency UX (GH #440)
- Fix DEPENDENCIES.md: correct parent-child syntax (child depends on parent)
- Update bd show: display Children instead of Blocks for parent-child deps
- Group dependents by type with distinct labels

Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 21:07:23 -08:00
Steve Yegge
f84684e314 refactor(daemon): consolidate local-only sync functions to reduce duplication (bd-73u)
Extract performExport() and performAutoImport() shared implementations:
- createExportFunc() and createLocalExportFunc() now use performExport()
  with skipGit parameter
- createAutoImportFunc() and createLocalAutoImportFunc() now use performAutoImport()
  with skipGit parameter
- createLocalSyncFunc() kept as-is (different flow from createSyncFunc)

Reduces daemon_sync.go by 89 lines (1003 -> 914) while maintaining
identical behavior and test coverage.

All existing tests pass. New shared functions use conditional logic
to skip git operations when skipGit=true, eliminating the need for
separate implementations.
2025-12-01 17:39:43 -08:00
Steve Yegge
8d19e75431 fix: add safety guard to prevent git-history-backfill mass deletion (bd-t5m)
When a clone gets reset (git reset --hard origin/main), the
git-history-backfill logic was incorrectly marking ALL issues as
deleted since they appeared in git history but not in the current
JSONL. This caused the entire database to be purged.

Fix:
- Add 50% threshold check: abort if git-history-backfill would delete
  more than 50% of issues (likely a reset scenario, not deletions)
- Add warning when >10 issues would be deleted via backfill
- Print helpful message about manual deletion if needed

Test:
- Added TestMassDeletionSafetyGuard that simulates JSONL reset and
  verifies the safety guard prevents mass deletion

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 21:26:16 -08:00
Steve Yegge
da38f8becf bd sync: close bd-4zy (import deletions warning) 2025-11-30 21:23:22 -08:00
Steve Yegge
3df138445a fix(init): allow fresh clones with JSONL to run bd init (bd-4h9)
Previously, bd init blocked when JSONL existed with issues but no database,
telling users to run 'bd doctor --fix'. But doctor --fix just ran bd migrate
which requires an existing database - creating a circular dependency.

Now:
- bd init allows fresh clones (JSONL exists, no database) to proceed
- bd init creates the database and imports from JSONL automatically
- bd doctor --fix runs bd init (not migrate) when there's no database

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 21:18:23 -08:00
Steve Yegge
d3dafcf76e bd sync: update beads files 2025-11-30 21:14:10 -08:00
Steve Yegge
77bb8e65a4 bd sync: update deletions manifest 2025-11-30 12:40:44 -08:00
Steve Yegge
47462bd4f3 bd sync: 2025-11-29 20:59:11 2025-11-29 20:59:11 -08:00
Steve Yegge
8c6e25e8dc fix: clear stale deletions manifest after corruption recovery
The deletions.jsonl contained records for 79 'deleted' issues that were
actually just missing due to database corruption, not legitimately deleted.
Clearing this allows the issues to be restored.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 17:02:50 -08:00
Steve Yegge
60034e3dfa fix: restore beads database after swarm corruption
A bd sync during the swarm incorrectly purged all 80 issues from
issues.jsonl at commit 93718056. This restores the database state
from bb39c8b6 (the last good state before corruption).

Corruption occurred at 2025-11-29 13:35:28 during parallel polecat
syncs. Root cause investigation needed.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 15:39:35 -08:00
Steve Yegge
10a7b44eaf bd sync: 2025-11-29 15:05:34 2025-11-29 15:05:34 -08:00
Steve Yegge
b2f6f53fa6 bd sync: 2025-11-29 13:34:57 2025-11-29 13:35:03 -08:00
Steve Yegge
76a2542122 bd sync: 2025-11-27 20:21:31 2025-11-27 20:21:31 -08:00
Steve Yegge
cb3dcae402 bd sync: 2025-11-27 18:49:27 2025-11-27 18:49:27 -08:00
Steve Yegge
83d1c01bf1 bd sync: 2025-11-27 18:22:06 2025-11-27 18:22:06 -08:00
Steve Yegge
e481938f29 bd sync: 2025-11-27 01:06:58 2025-11-27 01:07:05 -08:00
Steve Yegge
0bf9313971 bd sync: 2025-11-27 00:29:59 2025-11-27 00:35:31 -08:00
Steve Yegge
4e113fcde0 bd sync: 2025-11-27 00:27:39 2025-11-27 00:27:39 -08:00
Steve Yegge
ef571f6735 bd sync: 2025-11-27 00:25:09 2025-11-27 00:25:09 -08:00
Steve Yegge
a70456297f bd sync: 2025-11-27 00:25:01 2025-11-27 00:25:01 -08:00
Steve Yegge
1322e7e80a chore: remove corrupted deletions.jsonl (contained issue data instead of deletion records) 2025-11-26 23:14:10 -08:00
Steve Yegge
dfc68ed8f6 bd sync: 2025-11-26 22:46:36 2025-11-26 22:46:36 -08:00
Steve Yegge
503c9a966e chore: file bugs discovered during issues.jsonl migration 2025-11-26 22:29:15 -08:00
Steve Yegge
83672a792b chore: close resolved beads, update issues.jsonl 2025-11-26 22:26:22 -08:00
Steve Yegge
985bd9be20 fix: standardize on issues.jsonl, clear corrupted deletions manifest 2025-11-26 22:23:14 -08:00
Steve Yegge
016db76325 bd sync: 2025-11-26 22:17:11 2025-11-26 22:17:11 -08:00
Steve Yegge
3704ef4329 bd sync: 2025-11-26 22:11:38 2025-11-26 22:11:38 -08:00
Steve Yegge
9a8472f78b bd sync: 2025-11-26 22:09:13 2025-11-26 22:09:13 -08:00
Steve Yegge
ff3352ab23 bd-6xd: Standardize on issues.jsonl as canonical filename
- Change default JSONL filename from beads.jsonl to issues.jsonl
- Add bd doctor check and fix to auto-migrate legacy beads.jsonl configs
- Update FindJSONLPath to prefer issues.jsonl over beads.jsonl
- Add CheckLegacyJSONLConfig and CheckLegacyJSONLFilename checks
- Add LegacyJSONLConfig fix to rename files and update config
- Update .gitattributes to reference issues.jsonl
- Fix tests to expect new canonical filename
- Add bd-6xd to v0.25.1 release notes

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 22:02:59 -08:00
Matt Wilkie
8bde895fcc update bd JSONL 2025-11-26 22:02:48 -08:00
matt wilkie
827e67fe12 bd sync: 2025-11-26 06:33:11 2025-11-26 22:02:43 -08:00
Steve Yegge
5f5b559433 bd sync: 2025-11-26 20:17:16 2025-11-26 20:17:16 -08:00
Matt Wilkie
daa94e5b31 update bd JSONL 2025-11-26 17:52:36 -08:00
Matt Wilkie
e37caf94cf Remove large deletions.jsonl to fix CI timeout
The 410KB deletions.jsonl file with 3419 records was causing the CI test
suite to timeout after 10 minutes. This file is not needed for the PR and
is being added automatically by bd.

This should resolve the CI test failures that have been occurring.
2025-11-26 17:52:08 -08:00
matt wilkie
e64d773233 bd sync: 2025-11-26 06:33:11 2025-11-26 17:52:08 -08:00
Steve Yegge
ecc5830a31 fix(deletions): track deletions.jsonl in git for cross-clone propagation
Fixes bd-44e: Remove deletions.jsonl from .gitignore.

The deletions manifest MUST be tracked in git for cross-clone deletion
propagation to work (bd-imj). Previously it was incorrectly gitignored
with a "local-only" comment that contradicted the design.

Changes:
- Remove .beads/deletions.jsonl from .gitignore
- Add comment explaining why it is tracked
- Track existing deletions.jsonl file

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 14:57:55 -08:00