docs: 2026-04-16 变更记录 — 参数名修复 + 解密自愈 + 设置清理
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled

- known-issues.md: 新增 3 条修复记录 (Heartbeat参数/Relay解密/设置清理)
- log.md: 追加 2026-04-16 变更日志
This commit is contained in:
iven
2026-04-16 08:06:02 +08:00
parent b69dc6115d
commit 08af78aa83
2 changed files with 48 additions and 2 deletions

View File

@@ -1,6 +1,6 @@
---
title: 已知问题
updated: 2026-04-15
updated: 2026-04-16
status: active
tags: [issues, bugs]
---
@@ -38,6 +38,41 @@ tags: [issues, bugs]
| V13-GAP-05 | Structured Data Source 无 Admin UI | ✅ Admin Knowledge 新增"结构化数据"Tab |
| V13-GAP-06 | PersistentMemoryStore 遗留模块 | ✅ 全量移除 — persistent.rs 611→57 行 |
## Heartbeat 参数名修复 (2026-04-16)
| 问题 | 级别 | 状态 |
|------|------|------|
| Tauri invoke 参数名 snake_case 错误 | P1 | ✅ 已修复 |
**根因**: Tauri 2.x `#[tauri::command]` 默认 `rename_all = "camelCase"`,前端 invoke 必须用 camelCase`agentId` 不是 `agent_id`)。`intelligence-client.ts` 中 3 处 invoke 调用使用了错误的 snake_case。
**修复**: commit `f6c5dd2` — 3 处参数名修正 + HealthPanel.tsx 恢复正确命名。
**教训**: 所有 Tauri invoke 调用的参数名必须用 camelCase与 Rust 端 snake_case 参数名对应。参见 `browser-client.ts` 中已有的正确示例。
## Relay API Key 解密自愈 (2026-04-16)
| 问题 | 级别 | 状态 |
|------|------|------|
| Provider Key 解密失败导致整个 relay 500 | P1 | ✅ 已修复 |
**根因**: `key_pool.rs``select_best_key` 遍历 key 时,第一个解密失败的 key 就通过 `?` 直接返回 500不会尝试下一个。如果 DB 中有旧的加密 key密钥已变更整个 relay 请求被阻断。重新保存只能临时解决,旧 key 仍在 DB 中。
**修复**: commit `b69dc61`:
- 解密失败时 `warn + continue` 跳到下一个 key
- 启动自愈 `heal_provider_keys()`: 逐个解密并重新加密,无法解密的标记 inactive
**教训**: 密钥池选择应容错skip bad keys而不是 fail-fast。加密数据迁移应自动化。
## 设置页面清理 (2026-04-16)
| 变更 | 说明 |
|------|------|
| 删除"用量统计"页面 | 与"订阅与计费"功能重复 |
| 删除"积分详情"页面 | 与"订阅与计费"功能重复 |
commit `7dea456` — 移除 UsageStats + Credits 组件及菜单项。
## 三端联调测试 V2 (2026-04-15)
通过 Chrome DevTools MCP + Tauri MCP 实际界面操作验证。