Add page data delivery and publication guards

This commit is contained in:
john
2026-07-08 21:10:47 +08:00
parent 8d629e7a4e
commit eea14c1855
66 changed files with 3035 additions and 413 deletions
+26
View File
@@ -152,6 +152,32 @@ test('saveAndAnalyze stores messages and fallback memories', async () => {
else process.env.USER_CONVERSATION_MEMORY_LLM_ENABLED = previous;
});
test('saveAndAnalyze re-analyzes saved session messages even when already marked analyzed', async () => {
const previous = process.env.USER_CONVERSATION_MEMORY_LLM_ENABLED;
process.env.USER_CONVERSATION_MEMORY_LLM_ENABLED = '0';
const pool = createPool();
const service = createConversationMemoryService(pool, { now: () => 1500 });
const messages = [{
id: 'm-remember',
role: 'user',
content: [{ type: 'text', text: '请记住:我的测试别名是蓝鲸42。只回复已记住。' }],
metadata: { userVisible: true },
}];
const first = await service.saveAndAnalyze('session-remember', 'user-remember', messages);
assert.equal(first.analyzed, 1);
assert.equal(first.memories, 1);
assert.match(pool.state.memories.at(-1).memory_text, /蓝鲸42/);
pool.state.messages[0].analyzed_at = 1500;
const second = await service.saveAndAnalyze('session-remember', 'user-remember', messages);
assert.equal(second.analyzed, 1);
assert.equal(second.memories, 1);
if (previous == null) delete process.env.USER_CONVERSATION_MEMORY_LLM_ENABLED;
else process.env.USER_CONVERSATION_MEMORY_LLM_ENABLED = previous;
});
test('saveAndAnalyze marks messages analyzed when llm extraction fails and no memory is stored', async () => {
const previous = process.env.USER_CONVERSATION_MEMORY_LLM_ENABLED;
process.env.USER_CONVERSATION_MEMORY_LLM_ENABLED = '1';