feat(sync): 将桌面人设绑定到 Vault 记录
This commit is contained in:
@@ -681,3 +681,13 @@ Core 的独立数据目录目前不等于已授权 Vault。Python 旧笔记写
|
||||
- 定向前端 4 项通过,包括远端布局不回流、本地布局写入、两个侧栏宽度分离、窄窗口限制不污染偏好。新增 Rust 测试覆盖布局记录完整信封/允许路径、非法宽度和设备字段拒绝。完整前端 101 文件、526 项通过,日志 .build/layout-sync-frontend.log。
|
||||
- 本轮覆盖现有侧栏布局,不代表全部逻辑数据已经完成:Skills、对话、Agent/人设、Provider 非秘密参数和安装清单仍需各自适配;真实双设备 UI 与旧版本新增记录兼容验收尚未完成。
|
||||
- 最终 desktop Rust 全目标 137 通过、12 ignored(库 122、Host 8、其余集成 7),日志 .build/layout-sync-rust.log;全目标 Clippy -D warnings 与前端 type-check 均通过,日志 .build/layout-sync-clippy.log、.build/layout-sync-types.log。没有改动用户 Vault 内容,完整生产化验收仍未完成。
|
||||
|
||||
|
||||
## 增量:桌面人设读取当前 Vault 记录
|
||||
|
||||
- 增加 persona/default 严格逻辑记录与 workspace.persona.get/write 专用 Core RPC。保留 Task RPC 范围,新增入口仍核验 Vault 和记录 kind/id。记录回执增加原始已提交 bytes 的 hash,以便响应丢失重放时返回正确摘要。
|
||||
- 桌面 persona_settings 经 Host 读取/保存,并以 revision 摘要作为 expected;数据 version 仅作为显示版本递增,不替代内容 CAS。调用方 operation_id 原样传递给 Host,未知提交结果不自动换 ID 重试。API 读写 handler 改为同步函数,由 FastAPI 工作线程执行阻塞 Host RPC。
|
||||
- 原来全局 SQLite 人设不猜测所属 Vault:桌面空库返回空人设,Web 仍使用全局存储且旧数据保留。聊天/Agent 的 apply_global_persona 沿既有调用链获取此作用域的数据。UI 显示工作区人设说明,并保留 revision;Vault 切换或迟到的旧 Vault 加载响应不能让旧表单保存到新 Vault。
|
||||
- Python 定向 5 项通过,覆盖全局原有行为、桌面摘要保存、过期摘要映射、Host operation_id、旧全局保留/不自动导入。Host 新测试覆盖真实 Workspace 重开、操作重放、CAS、未知字段和跨 Vault 拒绝。前端新增表单摘要往返与切 Vault 拒绝测试,定向 4 项通过;完整前端此前 526 项通过,类型检查通过,新加测试单独运行通过。
|
||||
- 该能力仍需真实双设备人设同步/冲突与明确归属旧数据导入验收,不能据此声明全部逻辑数据同步或生产化完成。
|
||||
- 最终 Python 全套 902 通过、1 项依赖弃用警告,105.26 秒;desktop Rust 全目标 138 通过、12 ignored(库 123、Host 8、其余集成 7),Clippy -D warnings 通过。日志 .build/persona-sync-python.log、.build/persona-sync-rust.log、.build/persona-sync-clippy.log;前端日志 .build/persona-sync-frontend.log 和 .build/persona-sync-types.log。完整目标继续保持未完成。
|
||||
|
||||
Reference in New Issue
Block a user