From c191d8833c44ec228b12abdd3625ba107a3e1f62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerg=C5=91=20Magyar?= Date: Sun, 4 Oct 2026 07:37:34 +0000 Subject: [PATCH] fix(recovery): retain interrupted checkpoint sidecars (#3463) Retain and validate both checkpoint lock sidecars so cleanup and native replay use the same complete recovery family. --- gitnexus/src/storage/embedding-recovery.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gitnexus/src/storage/embedding-recovery.ts b/gitnexus/src/storage/embedding-recovery.ts index e09876a1c..54821bcc7 100644 --- a/gitnexus/src/storage/embedding-recovery.ts +++ b/gitnexus/src/storage/embedding-recovery.ts @@ -17,7 +17,15 @@ import { INDEX_METADATA_FILE, LEGACY_METADATA_FILE } from './storage-constants.j const STAGING_FILENAME = /^lbug\.staging\.[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/; -const FAMILY_SUFFIXES = ['', '.wal', '.shadow', '.wal.checkpoint', '.lock'] as const; +export const FAMILY_SUFFIXES = [ + '', + '.wal', + '.shadow', + '.wal.checkpoint', + '.lock', + '.checkpoint.intent.lock', + '.checkpoint.apply.lock', +] as const; export interface ResolvedEmbeddingRecovery extends EmbeddingRecoveryReference { dbPath: string;