37 lines
2.3 KiB
Markdown
37 lines
2.3 KiB
Markdown
# 知识库摘要缓存专项回归
|
|
|
|
日期:2026-09-16。
|
|
|
|
## 结论
|
|
|
|
两目录都存在同一个已复现缺陷:`_apply_config_response` 将服务端 `knowledge` 放入 `knowledge_summary`,但 `default_settings` 缺少此字段。`save_settings` 和 `load_settings` 都按默认字段过滤,因此摘要在保存时就被丢掉,桌面 UI 持续显示数量 0、未启用。
|
|
|
|
最小实测使用临时配置文件,模拟同步 `{published:1234, enabled:true}`,经过真实保存、重读和 `_console_ai_state`,修复前显示 `0`,修复后显示 `1,234` 且知识连接状态为启用;没有 mock 设置读取函数来绕过落盘路径。
|
|
|
|
## 修改
|
|
|
|
- 两目录 `backend_client.py` 在默认配置中加入 `knowledge_summary`。
|
|
- 同步、保存和读取都规范化摘要:`published` 为非负整数,坏值归零;`enabled` 仅明确布尔 `true` 视为启用;`updated_at` 必须为字符串。空或非对象摘要恢复为空对象。
|
|
- 保留旧后端未下发 `knowledge` 时的已有缓存;退出账号继续清空缓存,避免显示上一账号的数量。
|
|
- 两目录新增 `test_knowledge_cache_audit.py`,含 8 项缓存、旧配置兼容、坏类型、登出清理及真实 UI 状态回归。
|
|
|
|
备份分别为:
|
|
|
|
- `C:/wechat_rpa/backups/recognition-audit-20260916/backend_client.py`
|
|
- `C:/kefu/wechat_rpa/backups/recognition-audit-20260916/backend_client.py`
|
|
|
|
文件哈希见 `knowledge-cache-changes.json`。
|
|
|
|
## 验证
|
|
|
|
| 目录 | 执行模块 | 结果 |
|
|
|---|---|---|
|
|
| C:/wechat_rpa | test_backend、test_knowledge_cache_audit | 80/80 通过 |
|
|
| C:/kefu/wechat_rpa | test_backend、test_knowledge_cache_audit | 80/80 通过 |
|
|
|
|
共 160 次测试执行,0 失败、0 错误、0 跳过。隔离器记录的实际外部操作尝试为 0。配置、AI 设置和数据库均写入临时目录,没有改真实账号配置或发送消息。
|
|
|
|
证据文件:`knowledge-cache-target-before.json/.log`、`knowledge-cache-source-before.json/.log`、`knowledge-cache-target-after.json/.log`、`knowledge-cache-source-after.json/.log`。
|
|
|
|
这项修复恢复的是桌面端缓存和显示,下次成功同步才会读到服务器当前摘要;没有启用知识库、发布知识或修改服务端业务设置,也不能将修复后的显示逻辑当作实际知识命中的证明。
|