feat(tombstone): implement delete-to-tombstone and TTL expiration (bd-3b4, bd-olt)
Phase 1 of tombstone migration: bd delete now creates tombstones instead of hard-deleting issues. Key changes: - Add CreateTombstone() method to SQLiteStorage for soft-delete - Modify executeDelete() to create tombstones instead of removing rows - Add IsExpired() method with 30-day default TTL and clock skew grace - Fix deleted_at schema from TEXT to DATETIME for proper time scanning - Update delete.go to call CreateTombstone (single issue path) - Still writes to deletions.jsonl for backward compatibility (dual-write) - Dependencies are removed when creating tombstones - Tombstones are excluded from normal searches (bd-1bu) TTL constants: - DefaultTombstoneTTL: 30 days - MinTombstoneTTL: 7 days (safety floor) - ClockSkewGrace: 1 hour 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -16,7 +16,7 @@ func MigrateTombstoneColumns(db *sql.DB) error {
|
||||
name string
|
||||
definition string
|
||||
}{
|
||||
{"deleted_at", "TEXT"},
|
||||
{"deleted_at", "DATETIME"},
|
||||
{"deleted_by", "TEXT DEFAULT ''"},
|
||||
{"delete_reason", "TEXT DEFAULT ''"},
|
||||
{"original_type", "TEXT DEFAULT ''"},
|
||||
|
||||
Reference in New Issue
Block a user