feat(memory,conversation): 记忆富化/证据包、时间线幂等字段与对话分段全链路

数据库
- 新增迁移 0003:timeline_events.memory_source_id 外键 → memory_sources,便于按 ingest 源做时间线幂等

后端 - 记忆
- 新增 ingest 后 LLM 富化(摘要/事实/时间线),可配置开关与最大字符数
- 新增证据包组装:合并 chunk、摘要、事实、时间线、故事等检索结果;支持空 query 时是否仍带 rolling 等开关
- repo/retriever/service/router/schemas/summarizer/timeline/extractor 等扩展;文档 memory-retrieval.md 更新

后端 - 对话 WS
- 增加 PING/PONG;分段 ASR 日志与空音频处理;转写失败与「无助手回复」错误提示更明确
- 助手多段回复持久化使用统一分隔符,与分段逻辑一致

后端 - Agent
- reply_limits:按 [SPLIT] 与段落拆段,并保证非空 fallback,供 WS 与 TTS 多段下发

后端 - 回忆录任务
- transcript ingest 记录 source_id;任务成功结?
This commit is contained in:
Kevin
2026-03-27 16:01:28 +08:00
parent 1374f6e8f5
commit e4bf0710c7
70 changed files with 3404 additions and 557 deletions

View File

@@ -89,6 +89,7 @@ interface Resources {
readingAloud: 'Reading aloud…';
recentChats: 'Recent Chats';
recordingPermissionDenied: 'Microphone permission is required to record';
recordingStartFailed: 'Unable to start recording. Please try again.';
resumeChatSubtitle: 'Open your latest conversation to keep talking.';
resumeChatTitle: 'Continue chatting';
send: 'Send';
@@ -190,7 +191,7 @@ interface Resources {
purgeOpenConfirm: 'I understand, continue';
purgePhraseHint: 'Type the following Chinese sentence exactly (every character and punctuation). The server only accepts this exact phrase:';
purgeSubmitting: 'Deleting…';
purgeWarningBody: 'This permanently deletes your conversations, memory, stories, chapters, orders, and related files in cloud storage. All devices will be signed out.\nYou can still log in with the same phone number, but your previous content cannot be restored.';
purgeWarningBody: 'This permanently deletes your conversations, memory, stories, chapters, orders, and related files in cloud storage. Profile fields such as birth year, birthplace, where you grew up, and occupation will also be cleared. All devices will be signed out.\nYou can still log in with the same phone number, but your previous content cannot be restored.';
purgeWarningTitle: 'Before you continue';
title: 'Data & Privacy';
};

View File

@@ -30,6 +30,7 @@
"cannotReadAloud": "Read unavailable",
"readingAloud": "Reading aloud…",
"recordingPermissionDenied": "Microphone permission is required to record",
"recordingStartFailed": "Unable to start recording. Please try again.",
"send": "Send",
"startNewSubtitle": "Capture a new memory or share your thoughts with your companion.",
"switchToText": "Switch to text input",

View File

@@ -28,7 +28,7 @@
"purgeOpenConfirm": "I understand, continue",
"purgePhraseHint": "Type the following Chinese sentence exactly (every character and punctuation). The server only accepts this exact phrase:",
"purgeSubmitting": "Deleting…",
"purgeWarningBody": "This permanently deletes your conversations, memory, stories, chapters, orders, and related files in cloud storage. All devices will be signed out.\nYou can still log in with the same phone number, but your previous content cannot be restored.",
"purgeWarningBody": "This permanently deletes your conversations, memory, stories, chapters, orders, and related files in cloud storage. Profile fields such as birth year, birthplace, where you grew up, and occupation will also be cleared. All devices will be signed out.\nYou can still log in with the same phone number, but your previous content cannot be restored.",
"purgeWarningTitle": "Before you continue",
"title": "Data & Privacy"
},

View File

@@ -30,6 +30,7 @@
"cannotReadAloud": "暂无法朗读",
"readingAloud": "朗读中…",
"recordingPermissionDenied": "需要麦克风权限才能录音",
"recordingStartFailed": "录音初始化失败,请重试",
"send": "发送",
"startNewSubtitle": "记录新回忆,或与岁月知己分享你的想法。",
"switchToText": "切换到文字输入",

View File

@@ -28,7 +28,7 @@
"purgeOpenConfirm": "我了解后果,继续删除",
"purgePhraseHint": "请在下方输入框中完整输入以下句子(须一字不差,含标点):",
"purgeSubmitting": "正在删除…",
"purgeWarningBody": "将永久删除账号下的对话、记忆、故事、章节、订单等业务数据,并删除云端已关联的图片等文件。所有设备将立即退出登录。\n您的手机号与账号仍可登录但此前内容无法恢复。",
"purgeWarningBody": "将永久删除账号下的对话、记忆、故事、章节、订单等业务数据,并删除云端已关联的图片等文件;个人档案中的出生年份、出生地、成长地、职业等也会被清空。所有设备将立即退出登录。\n您的手机号与账号仍可登录但此前内容无法恢复。",
"purgeWarningTitle": "清空数据前请知悉",
"title": "数据与隐私"
},