feat(api+app): 对话阶段化、回忆录流水线与客户端会话体验

- DB: segments 用户输入文本(Alembic 0002)
- Chat: 阶段检测/阶段提示/回复限制,编排与访谈/画像 prompts 调整
- Memoir: 忠实度检查 agent,叙事与分类等链路更新
- Core: agent 日志、Alembic 启动、LangChain/日志/配置等
- Story: time_hints;Memory 检索与相关测试
- Expo: 助手头像、会话页与消息拆分、实时会话与文案/i18n
- Docs/scripts/tests: 迁移脚本、LLM JSON/记忆检索文档、新增单测
This commit is contained in:
Kevin
2026-03-26 12:13:36 +08:00
parent 49b089354c
commit a3f61fcc0f
94 changed files with 3332 additions and 672 deletions

View File

@@ -65,6 +65,7 @@ interface Resources {
agentName: 'Life Echo';
cancel: 'Cancel';
cancelRecording: 'Cancel recording';
chatQueueSendTimeout: 'Connection timed out. Check your network and try again.';
chatTitle: 'Conversation';
chatUnavailableConnecting: 'Reconnecting now. You can keep typing and send once the connection is back.';
chatUnavailableDisconnected: 'Connection lost. You can keep typing and send after reconnecting.';
@@ -77,7 +78,7 @@ interface Resources {
createError: 'Unable to create conversation. Please check your network and try again.';
delete: 'Delete';
deleteConversation: 'Delete Conversation';
emptyGreetingSubtitle: 'Chat with Echo and record your stories.';
emptyGreetingSubtitle: 'Chat with your companion and record your stories.';
greetingTitle: 'Say Hello';
inputPlaceholder: 'Type a message...';
inputPlaceholderVoice: 'Type here or hold the mic to speak...';
@@ -85,7 +86,7 @@ interface Resources {
recentChats: 'Recent Chats';
recordingPermissionDenied: 'Microphone permission is required to record';
send: 'Send';
startNewSubtitle: 'Capture a new memory or share your thoughts with Echo.';
startNewSubtitle: 'Capture a new memory or share your thoughts with your companion.';
switchToText: 'Switch to text input';
switchToVoice: 'Switch to voice input';
tapToEndRecording: 'Tap to end';
@@ -130,7 +131,7 @@ interface Resources {
typography: 'Typography';
};
continueWriting: 'Continue Writing';
emptySubtitle: 'Chat with Echo to record your stories';
emptySubtitle: 'Chat with your companion to record your stories';
emptyTitle: 'No memoir yet';
frameworkChapters: {
chapter1: 'Childhood and upbringing';

View File

@@ -4,6 +4,7 @@
"chatUnavailableTitle": "Chat unavailable",
"chatUnavailableConnecting": "Reconnecting now. You can keep typing and send once the connection is back.",
"chatUnavailableDisconnected": "Connection lost. You can keep typing and send after reconnecting.",
"chatQueueSendTimeout": "Connection timed out. Check your network and try again.",
"confirm": "OK",
"cancel": "Cancel",
"delete": "Delete",
@@ -15,7 +16,7 @@
"connectionConnected": "Connected",
"connectionConnecting": "Connecting...",
"connectionDisconnected": "Disconnected",
"emptyGreetingSubtitle": "Chat with Echo and record your stories.",
"emptyGreetingSubtitle": "Chat with your companion and record your stories.",
"greetingTitle": "Say Hello",
"inputPlaceholder": "Type a message...",
"inputPlaceholderVoice": "Type here or hold the mic to speak...",
@@ -23,7 +24,7 @@
"recentChats": "Recent Chats",
"recordingPermissionDenied": "Microphone permission is required to record",
"send": "Send",
"startNewSubtitle": "Capture a new memory or share your thoughts with Echo.",
"startNewSubtitle": "Capture a new memory or share your thoughts with your companion.",
"switchToText": "Switch to text input",
"switchToVoice": "Switch to voice input",
"tapToEndRecording": "Tap to end",

View File

@@ -34,7 +34,7 @@
"typography": "Typography"
},
"continueWriting": "Continue Writing",
"emptySubtitle": "Chat with Echo to record your stories",
"emptySubtitle": "Chat with your companion to record your stories",
"emptyTitle": "No memoir yet",
"pageTitle": "Memoir",
"readMemory": "Read Memory",

View File

@@ -4,6 +4,7 @@
"chatUnavailableTitle": "聊天暂不可用",
"chatUnavailableConnecting": "正在重新连接。你仍可继续输入,恢复后再发送。",
"chatUnavailableDisconnected": "当前连接已断开。你仍可先输入,连接恢复后再发送。",
"chatQueueSendTimeout": "连接等待超时,请检查网络后重试。",
"confirm": "知道了",
"cancel": "取消",
"delete": "删除",
@@ -15,7 +16,7 @@
"connectionConnected": "已连接",
"connectionConnecting": "连接中...",
"connectionDisconnected": "未连接",
"emptyGreetingSubtitle": "和 Echo 聊聊,记录你的故事。",
"emptyGreetingSubtitle": "和岁月知己聊聊,记录你的故事。",
"greetingTitle": "打个招呼",
"inputPlaceholder": "输入消息...",
"inputPlaceholderVoice": "点击这里输入,或者按住左边说话...",
@@ -23,7 +24,7 @@
"recentChats": "最近对话",
"recordingPermissionDenied": "需要麦克风权限才能录音",
"send": "发送",
"startNewSubtitle": "记录新回忆,或与 Echo 分享你的想法。",
"startNewSubtitle": "记录新回忆,或与岁月知己分享你的想法。",
"switchToText": "切换到文字输入",
"switchToVoice": "切换到语音输入",
"tapToEndRecording": "点击结束",

View File

@@ -34,7 +34,7 @@
"typography": "字体"
},
"continueWriting": "继续写作",
"emptySubtitle": "与 Echo 聊天,记录你的故事",
"emptySubtitle": "与岁月知己聊天,记录你的故事",
"emptyTitle": "还没有回忆录",
"pageTitle": "回忆录",
"readMemory": "阅读回忆",