Add page data delivery and publication guards
This commit is contained in:
@@ -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';
|
||||
|
||||
Reference in New Issue
Block a user