Sync L0 cleanup on delete and swipe

This commit is contained in:
2026-02-10 13:00:02 +08:00
parent 1fe0647462
commit c2c9807ee9
2 changed files with 38 additions and 1 deletions

View File

@@ -20,6 +20,11 @@ import { embed, getEngineFingerprint } from '../utils/embedder.js';
import { xbLog } from '../../../../core/debug-core.js';
import { filterText } from '../utils/text-filter.js';
import { extractAndStoreAtomsForRound } from './state-integration.js';
import {
deleteStateAtomsFromFloor,
deleteStateVectorsFromFloor,
deleteL0IndexFromFloor,
} from '../storage/state-store.js';
const MODULE_ID = 'chunk-builder';
@@ -367,6 +372,12 @@ export async function syncOnMessageReceived(chatId, lastFloor, message, vectorCo
const userFloor = lastFloor - 1;
const userMessage = (userFloor >= 0 && chat[userFloor]?.is_user) ? chat[userFloor] : null;
// L0 先删后建(与 L1 deleteChunksAtFloor 对称)
// regenerate / swipe 后新消息覆盖旧楼时,清理旧 atoms
deleteStateAtomsFromFloor(lastFloor);
deleteL0IndexFromFloor(lastFloor);
await deleteStateVectorsFromFloor(chatId, lastFloor);
try {
await extractAndStoreAtomsForRound(lastFloor, message, userMessage, onL0Complete);
} catch (e) {
@@ -374,4 +385,3 @@ export async function syncOnMessageReceived(chatId, lastFloor, message, vectorCo
}
}
}