feat: expand companion platform, device controls, and memoir workflows
ci / verify (push) Canceled after 0s

Add customer and operator login, BLE provisioning, device fleet controls, call memory, memoir generation, and refreshed family and maintenance portals. Include API contracts, migrations, firmware sources, tests, assets, and deployment documentation.
This commit is contained in:
Codex Local
2026-10-08 10:06:44 +08:00
parent 98fb2965d0
commit bf1233d5df
861 changed files with 94614 additions and 3209 deletions
+13
View File
@@ -6,6 +6,19 @@
当前抽取器支持两类可切换适配器:默认的`local-deterministic-extractor`用于本地业务验证,`ark:<model-id>`通过火山方舟OpenAI兼容Chat Completions接口生成结构化候选。向量生成与查询同样支持`local-deterministic-hash-v1`和`ark:<embedding-model-id>`两类适配器,并强制使用数据库既定的1536维。生产配置门禁禁止内容生成、索引或查询继续使用本地适配器;真实方舟账号效果仍需外部验收。
### 新硬件 DIRECT-CHAT-1 接入(2026-10-05)
迁移 `000075_direct_call_stories` 为故事增加原生 `call_session` / `call_utterance` 来源,不复制或伪造旧 `conversation`。API、worker 和 Web 需随迁移一起发布;固件接口不变。
- 开聊时冻结 `story_extraction_allowed`,要求当时存在转写保存和故事提取授权。只处理升级后带此快照的新通话,不批量回填旧通话。
- 结束并完成字幕排空后,worker 按通话、转写版本、隐私版本投递 `call.story_extraction_requested`。Viking 记忆摘要同步保持独立;关闭个性化记忆不会替代故事提取授权。
- 共用现有内容模型和输入/输出安全筛选,只把未删除、未屏蔽的长者最终原话作为材料。有故事价值时写入待审核草稿、原话来源和事实候选;寒暄或无故事价值内容不建草稿。
- 重放不重复生成;迟到字幕仅替换尚未人工处理的候选。人工修订、确认、拒绝或事实审核后,后台不覆盖其结果。
- 在故事页“查看已整理的故事”中审核,可从故事打开对应设备通话。确认保存仍要求当前个性化记忆授权,并保存原始通话、话轮及修订引用。
- 生成提交、读取及人工审核均检查当前授权、隐私版本和来源有效性。撤回授权、删除/屏蔽原话或来源修订失效后,不接受旧异步结果继续落库。
本地验证包括数据库提取→修订→确认保存、重复事件、迟到字幕、授权/来源失效、跨家庭权限、分享,以及 `test/e2e/direct-story-history.mjs` 的原始通话定位、翻页、刷新和权限拒绝。
## 2. 功能设计
| 功能 | 输入 | 处理规则 | 输出 |