feat(sync): use incremental session index after pull sync

After pull-sync imports new messages, generate session index incrementally
instead of full regeneration. This preserves existing sessions and their
summaries, only processing newly imported (unindexed) messages.

Adds generateIncremental method across the full stack:
- core: already had generateIncrementalSessionIndex
- node-runtime: expose generateIncrementalIndex
- CLI: add POST /_web/sessions/:id/generate-incremental-index route
- Electron: add session:generateIncremental IPC handler
- Frontend: add generateIncremental to SessionIndexAdapter interface
This commit is contained in:
digua authored and digua committed 2026-05-23 16:28:50 +08:00
1 parent fcfa5d0167
commit a5bbff34e4
10 files changed
+59 -6

No files matched your search

@@ -11,6 +11,15 @@ export function registerSessionIndexRoutes(server: FastifyInstance, adapter: Ses
return { sessionCount }
})
server.post<{
Params: { id: string }
Body: { gapThreshold?: number }
}>('/_web/sessions/:id/generate-incremental-index', async (request) => {
const gapThreshold = (request.body as any)?.gapThreshold ?? 1800
const sessionCount = sessionIndexService.generateIncrementalIndex(adapter, request.params.id, gapThreshold)
return { sessionCount }
})
server.post<{ Params: { id: string } }>('/_web/sessions/:id/clear-index', async (request) => {
sessionIndexService.clearIndex(adapter, request.params.id)
return { success: true }