Files
zclaw_openfang/wiki/known-issues.md
iven 93df380ca8
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
docs(wiki): BUG-M4/L1 已修复 + wiki 数字更新
- BUG-M4 标记为已修复 (admin_guard_middleware)
- BUG-L1 标记为已验证修复 (代码已统一为 pain_seed_categories)
- E2E 04-17 MEDIUM/LOW 全部关闭
- butler.md/log.md: pain_seeds → pain_seed_categories
2026-04-17 11:46:04 +08:00

11 KiB
Raw Blame History

title, updated, status, tags
title updated status tags
已知问题 2026-04-17 active
issues
bugs

已知问题

index 导航。完整清单见 docs/TRUTH.md §3

当前状态

级别 数量 状态
P0 (崩溃) 2 全部已修复
P1 (功能失效) 9 全部已修复
P1.5 (代码质量) 7 全部已修复
P2 (代码质量) 10 待处理
V13 P1 (断链) 3 全部已修复
V13 P2 (差距) 3 全部已修复
E2E 04-17 HIGH 2 全部已修复 (commit a504a40)
E2E 04-17 MEDIUM 5 全部已修复 (M4 admin_guard_middleware 已添加)
E2E 04-17 LOW 2 全部已验证修复 (L1 代码已统一 + L2 反序列化已修复)

E2E 全系统功能测试 04-17 (129 链路)

AI Agent 自动执行 (Tauri MCP + Chrome DevTools MCP + HTTP API) 完整报告: docs/test-evidence/2026-04-17/E2E_TEST_REPORT_2026_04_17.md

通过率概要

指标
总链路 129
PASS 82 (63.6%)
PARTIAL 20 (15.5%)
FAIL 1 (0.8%)
SKIP 26 (20.2%)
有效通过率 102/129 = 79.1%
CRITICAL 失败 0
SaaS API 覆盖率 ~78% (50/64 端点)

HIGH (2) — 已修复

ID 模块 描述 状态
BUG-H1 V7 Admin Dashboard 端点 404: /api/v1/admin/dashboard 未注册路由 已修复 (a504a40)
BUG-H2 V4 Memory 记忆不去重: viking_add 相同 URI+content 添加两次均返回 "added" 已修复 (a504a40)

MEDIUM (5)

ID 模块 描述 状态
BUG-M1 V8 Billing invoice_id 未暴露给用户端 已修复 (a504a40)
BUG-M2 V7 Prompt 版本号不自增: PUT 更新后 current_version 保持 1 已修复 (a504a40)
BUG-M3 V4 Memory viking_find 不按 agent 隔离: 查询返回所有 agent 记忆 已修复 (a504a40)
BUG-M4 V3 Auth Admin 端点对非 admin 用户返回 404 非 403 已修复 (admin_guard_middleware)
BUG-M5 V4 Memory 跨会话记忆注入未工作: 新会话助手表示"没有找到对话历史" 已修复 (a504a40)

LOW (2)

ID 模块 描述 状态
BUG-L1 V3 Industry API 字段名不一致 (pain_seeds vs pain_seed_categories) 已验证修复 (代码已统一为 pain_seed_categories)
BUG-L2 V9 Pipeline pipeline_create Tauri 命令参数反序列化失败 已验证修复 (04-17 回归)

04-17 回归验证 (13/13 PASS)

Tauri MCP + HTTP API 全量回归,验证 commit a504a40 修复有效性 + 子系统链路

Phase 1 — Bug 修复回归 (6/6 PASS)

ID 验证方法 结果
H1 Dashboard HTTP GET /admin/dashboard → 200 PASS
H2 Memory 去重 viking_add × 2 → 第二次 "deduped" PASS
M1 Invoice ID POST /billing/payments → 含 invoice_id PASS
M2 Prompt 版本 PUT → current_version 1→2 PASS
M3 Agent 隔离 viking_find scope → 各返回 1 条无泄漏 PASS
M5 跨会话注入 memory_build_context → 检索到旧记忆 PASS

Phase 2 — 子系统链路 (4/4 PASS)

测试项 结果
Pipeline list → 17 模板 PASS
Pipeline create → camelCase 反序列化 PASS
Pipeline run → DAG 构建+执行(未配LLM) PASS (链路通)
Skill 75 + route_intent 匹配 PASS

Phase 3 — Butler + 记忆 (3/3 PASS)

测试项 结果
Kernel init → 4 agents PASS
agent_chat_stream → 事件分发 PASS
health_snapshot + memory_stats → 381 记忆 PASS

子系统健康度

子系统 PASS率 评分 说明
核心聊天链路 91.7% 95/100 注册→登录→JWT→聊天→流式→持久化全闭环
SaaS 后端 90/100 137 端点78% 已测试
Admin 后台 66.7% 88/100 全页面 CRUDDashboard 404 已修复
Hands 自主能力 70.0% 85/100 10 Hand 全部 enabled审批机制正确
计费系统 70.0% 85/100 套餐/配额/支付全闭环
管家模式 60.0% 80/100 路由+追问+tool_call 正常
记忆管道 62.5% 70/100 存储+检索正常,去重/注入已修复
Pipeline+Skill 37.5% 65/100 Tauri IPC 可用但参数格式问题多

V13 审计修复 (2026-04-13 全部完成)

P1 — 功能断链 全部已修复

ID 问题 修复
V13-GAP-01 TrajectoryRecorderMiddleware 未注册到中间件链 已注册 @650Hermes 轨迹数据开始流入
V13-GAP-02 industryStore 存在但无组件导入 已接入 ButlerPanel桌面端展示行业专长卡片
V13-GAP-03 桌面端未接入 Knowledge Search API saas-knowledge mixin + VikingPanel SaaS KB 搜索 UI

P2 — 代码清洁度 全部已修复

ID 问题 修复
V13-GAP-04 Webhook 孤儿表 deprecated 标注 + down migration 注释
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 必须用 camelCaseagentId 不是 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.rsselect_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 实际界面操作验证。

已修复

问题 级别 修复
SSE 中转任务 Token (入/出) 全部为 0 P2 SseUsageCapture 增加 stream_done 标志 + 前缀兼容

已验证通过

功能 状态 验证方式
桌面端登录 (SaaS 模式) Tauri MCP 实际登录
聊天流 (kimi-for-coding) 发送消息并收到流式回复
模型切换 切换 deepseek → kimi
智能体面板 显示"默认助手"
设置 20 个选项卡 逐页检查:用量统计/模型/记忆/SaaS平台
语义记忆搜索 100 条记忆FTS5 + TF-IDF
Admin V2 仪表盘 Chrome DevTools: 30 账号/3 服务商/17 请求
Admin V2 账号管理 30 用户正常展示
Admin V2 模型服务 DeepSeek/Kimi/zhipu 3 个 Provider
Admin V2 API 密钥 不再崩溃(上次修复验证)
Admin V2 知识库 6 条目 + 5 个 Tab
Admin V2 行业配置 4 个内置行业
Admin V2 计费管理 团队版 570/20000 中转请求
Admin V2 角色权限 3 角色(超管/管理/用户)
Admin V2 操作日志 2088 条记录
Admin V2 Agent 模板 10 模板3 内置 + 7 自定义)

待处理 / 观察项

问题 级别 说明
Admin 用量统计 0/0 P2 用量统计页显示请求=0/Token=0但仪表盘显示 17 请求/6304 Token。数据来源不同
Deepseek 中转任务卡 processing P3 Provider Key 禁用后已有任务不会自动清理,需手动处理
桌面端 Token 统计为 0 P2 用量统计页 Token 输入/输出=0但图表显示 ~3.6M,数据不一致

三端联调测试 (2026-04-14)

30+ API / 16 Admin / 8 Tauri 全量测试结果:

问题 级别 状态
API 密钥页崩溃 (undefined .map) P1 已修复
桌面端 401 后不自动恢复 P1 已修复
用量统计全零 (telemetry SQL timestamptz) P1 已修复
行业选择 500 (industry 类型匹配) P1 已修复
管理员切换订阅计划 500 P1 已修复
SaaS 启动崩溃 (config_items 约束) P1 已修复
SaaS 模型选择残留模型 ID P0 已修复

代码健康度指标2026-04-17

指标 变化 说明
TODO/FIXME 前端 1 不变 memory-extractor.ts
TODO/FIXME Rust 3 不变 html_export/nl_schedule/knowledge
@reserved 标注 89 22→89 04-15 全量标注
dead_code 标记 16 76→16 大幅减少
前端孤立 invoke 0 不变 已清理
Cargo Warnings 0 不变 非 SaaS仅 sqlx 外部
前端测试通过 344+1 skipped 不变 pnpm vitest run

长期观察项

问题 说明 位置
Tauri 命令孤儿 注册 190 命令,前端调用 104 处,@reserved 89 个,剩余 ~0 个 (差异来自内部命令调用) desktop/src-tauri/src/lib.rs
Embedding 未激活 NoOpEmbeddingClient 为默认值,用户配置后替换为真实 provider zclaw-growth/src/retrieval/semantic.rs
SaaS embedding deferred pgvector 索引就绪,生成未实现 zclaw-saas/src/workers/generate_embedding.rs
SkillIndex 条件注册 无技能时 skill_index 中间件不注册 kernel/mod.rs:309

已修复的关键问题(历史记录)

ID 问题 修复日期
SEC2-P0-01 skill_execute 反序列化崩溃 04-02
SEC2-P0-02 TaskTool::default() panic 04-02
SEC2-P1-01~09 9 项功能失效 (FactStore/路径/监听/...) 04-02
SEC2-P1.5-01~07 7 项代码质量修复 04-02
P0-2/P0-3 usage 端点 + refresh token 类型 04-10
P1-02 浏览器聊天 SaaS fixture 04-10
P1-04 AuthGuard 竞态条件 04-10
BREAKS 全部 全部 P0/P1/P2 已修复 04-10
V13-GAP-01~06 6 项断链/差距全部修复 04-13
三端联调 P0/P1 7 项全部修复 04-14

→ 模块详情见各模块页面: routing chat saas memory middleware