Files

28 lines
3.5 KiB
Markdown
Raw Permalink Normal View History

# 网页聊天记录、音量状态与日常/故事分类修复
2026-09-26 发布 Web `0.99.12-rc.portal-records1`,基于线上 `0.99.11-rc.spoken-volume1` 源码,仅覆盖七个前端源文件。API、callbacks、worker、gateway、数据库、Redis、MinIO 容器未变;无需固件更新或数据库迁移。
## 原因与处理
- 网页只查询旧版 `conversation`,当前设备聊天在 `call_session` / `call_utterance`。接入已有鉴权接口 `POST /api/v1/memories/calls/query` 与 `calls/turns`,支持列表和文字独立分页、权限错误、请求取消和切换长者隔离。原记录仍可从“查看早期聊天记录”进入,原录音和故事操作保持可访问。
- 音量保存后使用固定成功提示,设备回报不会更新文案。改为设备页面每五秒读取实际配置与在线状态,依据实际音量和配置版本同时匹配显示“已生效”。离线、等待确认、已确认分别展示。提交期间中止轮询,防止旧响应覆盖提交结果。
- 线上只读核对:期望/实际上报音量均为 56,期望/上报版本均为 19;发布后仍持续上报。没有为测试改动真实设备音量。
- 在线连接对号改为绿色,离线保留原状态。
- 用户最终确认页签名称为“日常”和“故事”。EVENT、OPEN_ITEM、INTERACTION 显示在日常;PROFILE、RELATIONSHIP、PREFERENCE、STORY 显示在故事。既有故事保留入口。分类依据现有记录类型,不改写事实内容;家人可编辑类型。
## 当前总结来源
设备直连聊天文字由火山回调保存,结束后后台上传到火山记忆库 `memory`,异步提取 `event_v1`,读取结果中的 `summary` 后保存为可管理记忆。当前自动导入记录统一标记 EVENT,因此显示在日常;这次未追加语义分类模型,也未将旧事实自动重写为人生故事。
只读检查时平台有 15 条 EVENT 记录,9 项记忆同步任务为 SYNCED。旧版 `conversation_summary` 的 150 条记录均标记 `local-deterministic-extractor`;worker 的 `CONTENT_GENERATOR=local`、`ARK_CONTENT_MODEL` 为空。火山托管记忆提取未在平台暴露具体底层模型型号,不能把它断言为某个豆包版本。
## 验证
- 线上基线候选 TypeScript 与 Vite 生产构建通过;已有大包体积警告仍存在。
- `node --test web/test/portal-records.test.mjs`:两项通过,覆盖实际音量/版本不匹配、离线和零音量,以及七种记录类型归类。
- `test/e2e/portal-records-fix.mjs`:七组浏览器检查通过。覆盖当前通话列表/详情分页、手机布局、迟到响应不串长者、权限错误、分类、真实组件中的模拟设备回报与绿色对号、完整家属端聊天和页签。使用合成接口数据,未写入真实家庭。
- 老的 `memory-workspace.mjs` 仍期待已被既有改版移除的“修正”按钮,未通过;未以其代替本轮专项验收。
- 发布检查比对线上 HTML/JS/CSS 哈希、运行配置、未改动服务容器 ID,以及聊天接口匿名请求拒绝。首次探测漏 Origin,第二次环境变量列表顺序比较过严,均自动回退;修正验证脚本后发布成功。
- 发布记录:服务器新 release 的 `portal-records-release.json`。专项截图与检查结果位于 `.tmp-portal-records-fix/evidence/`。
- 未在真实家属登录会话中再次操作音量或逐条浏览私密聊天;线上数据核对为只读查询,交互验证使用真实组件与合成数据。