refactor: remove all deletions.jsonl code (bd-fom)

Complete removal of the legacy deletions.jsonl manifest system.
Tombstones are now the sole deletion mechanism.

Removed:
- internal/deletions/ - entire package
- cmd/bd/deleted.go - deleted command
- cmd/bd/doctor/fix/deletions.go - HydrateDeletionsManifest
- Tests for all removed functionality

Cleaned:
- cmd/bd/sync.go - removed sanitize, auto-compact
- cmd/bd/delete.go - removed dual-writes
- cmd/bd/doctor.go - removed checkDeletionsManifest
- internal/importer/importer.go - removed deletions checks
- internal/syncbranch/worktree.go - removed deletions merge
- cmd/bd/integrity.go - updated validation (warn-only on decrease)

Files removed: 12
Lines removed: ~7500

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Steve Yegge
2025-12-16 14:20:32 -08:00
parent e0528de590
commit 9f76cfda01
32 changed files with 298 additions and 7534 deletions

View File

@@ -96,8 +96,6 @@ NOTE: Import requires direct database access and does not work with daemon mode.
clearDuplicateExternalRefs, _ := cmd.Flags().GetBool("clear-duplicate-external-refs")
orphanHandling, _ := cmd.Flags().GetString("orphan-handling")
force, _ := cmd.Flags().GetBool("force")
noGitHistory, _ := cmd.Flags().GetBool("no-git-history")
ignoreDeletions, _ := cmd.Flags().GetBool("ignore-deletions")
protectLeftSnapshot, _ := cmd.Flags().GetBool("protect-left-snapshot")
// Check if stdin is being used interactively (not piped)
@@ -257,8 +255,6 @@ NOTE: Import requires direct database access and does not work with daemon mode.
RenameOnImport: renameOnImport,
ClearDuplicateExternalRefs: clearDuplicateExternalRefs,
OrphanHandling: orphanHandling,
NoGitHistory: noGitHistory,
IgnoreDeletions: ignoreDeletions,
}
// If --protect-left-snapshot is set, read the left snapshot and build ID set
@@ -423,18 +419,8 @@ NOTE: Import requires direct database access and does not work with daemon mode.
if len(result.IDMapping) > 0 {
fmt.Fprintf(os.Stderr, ", %d issues remapped", len(result.IDMapping))
}
if result.SkippedDeleted > 0 {
fmt.Fprintf(os.Stderr, ", %d skipped (deleted)", result.SkippedDeleted)
}
fmt.Fprintf(os.Stderr, "\n")
// Print skipped deleted issues summary if any (bd-4zy)
if result.SkippedDeleted > 0 {
fmt.Fprintf(os.Stderr, "\n⚠ Skipped %d issue(s) found in deletions manifest\n", result.SkippedDeleted)
fmt.Fprintf(os.Stderr, " These issues were previously deleted and will not be resurrected.\n")
fmt.Fprintf(os.Stderr, " Use --ignore-deletions to force import anyway.\n")
}
// Print skipped dependencies summary if any
if len(result.SkippedDependencies) > 0 {
fmt.Fprintf(os.Stderr, "\n⚠ Warning: Skipped %d dependencies due to missing references:\n", len(result.SkippedDependencies))
@@ -790,8 +776,6 @@ func init() {
importCmd.Flags().Bool("clear-duplicate-external-refs", false, "Clear duplicate external_ref values (keeps first occurrence)")
importCmd.Flags().String("orphan-handling", "", "How to handle missing parent issues: strict/resurrect/skip/allow (default: use config or 'allow')")
importCmd.Flags().Bool("force", false, "Force metadata update even when database is already in sync with JSONL")
importCmd.Flags().Bool("no-git-history", false, "Skip git history backfill for deletions (use during JSONL filename migrations)")
importCmd.Flags().Bool("ignore-deletions", false, "Import issues even if they're in the deletions manifest")
importCmd.Flags().Bool("protect-left-snapshot", false, "Protect issues in left snapshot from git-history-backfill (bd-sync-deletion fix)")
importCmd.Flags().BoolVar(&jsonOutput, "json", false, "Output import statistics in JSON format")
rootCmd.AddCommand(importCmd)