fix: harden daemon and large-index recovery paths (#1562)

* fix: harden indexing recovery and daemon liveness

* test: cover daemon and recovery review gaps

* test: pin that a failure marker never blocks a later successful parse (#1557 retry-discard guard)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: danusha2345 <ewidusoc498@gmail.com>
Co-authored-by: Colby McHenry <me@colbymchenry.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Daniil
2026-08-20 12:53:49 -05:00
committed by GitHub
co-authored by Claude Fable 5 danusha2345 Colby McHenry
parent d8f2eeaddf
commit 81e1f4a92f
20 changed files with 680 additions and 83 deletions
+22
View File
@@ -149,6 +149,28 @@ describe('Sync Module', () => {
expect(result.filesRemoved).toBe(0);
expect(result.filesChecked).toBeGreaterThan(0);
});
it('persists an oversized skipped file so later syncs do not retry it (#1557)', async () => {
const filePath = path.join(testDir, 'src', 'oversized.ts');
fs.writeFileSync(filePath, 'const value = 1;\n'.repeat(70_000));
const first = await cg.sync();
expect(first.filesAdded).toBe(1);
expect(cg.getFiles().find((f) => f.path === 'src/oversized.ts')?.errors?.[0]?.code).toBe('size_exceeded');
const second = await cg.sync();
expect(second.filesAdded).toBe(0);
expect(second.filesModified).toBe(0);
});
it('marks a successfully recovered indexing state complete (#1556)', async () => {
(cg as any).queries.setMetadata('index_state', 'indexing');
await cg.sync({ paths: ['src/index.ts'] });
expect(cg.getIndexState()).toBe('indexing');
await cg.sync();
expect(cg.getIndexState()).toBe('complete');
});
});
});