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
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:
@@ -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 实际界面操作验证。
|
||||
|
||||
13
wiki/log.md
13
wiki/log.md
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: 变更日志
|
||||
updated: 2026-04-15
|
||||
updated: 2026-04-16
|
||||
status: active
|
||||
tags: [log, history]
|
||||
---
|
||||
@@ -9,6 +9,17 @@ tags: [log, history]
|
||||
|
||||
> Append-only 操作记录。格式: `## [日期] 类型 | 描述`
|
||||
|
||||
## 2026-04-16 fix | Heartbeat 参数名 + Relay 解密自愈 + 设置清理
|
||||
|
||||
- **fix(heartbeat)**: Tauri invoke 参数名修正 snake_case → camelCase (`f6c5dd2`)
|
||||
- intelligence-client.ts 3 处 invoke 调用: agentId/taskCount/totalEntries 等
|
||||
- 教训: Tauri 2.x 默认 rename_all=camelCase
|
||||
- **fix(relay)**: API Key 解密失败自愈 — 启动迁移 + 容错跳过 (`b69dc61`)
|
||||
- key_pool: 解密失败 skip 到下一个 key (不再 500)
|
||||
- key_pool: heal_provider_keys() 启动自愈迁移
|
||||
- **chore(settings)**: 删除用量统计和积分详情页面 (`7dea456`)
|
||||
- 与"订阅与计费"功能重复,-240 行
|
||||
|
||||
## 2026-04-15 feat | Heartbeat 统一健康系统
|
||||
|
||||
- **feat(runtime)**: health_snapshot.rs — 统一健康快照收集器 (LLM连接/记忆/会话/系统资源)
|
||||
|
||||
Reference in New Issue
Block a user