Files
zclaw_openfang/wiki/log.md
iven aa84172ca4
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
refactor(panel): 移除 Agent tab — 跨会话身份由 soul.md 接管
Agent tab 展示的信息对用户无实际作用,身份记忆已通过
soul.md → pre_conversation_hook 实现跨会话。移除 Agent tab
(简洁+专业模式),清理 ~280 行 dead code。
2026-04-23 14:51:47 +08:00

22 KiB
Raw Blame History

title, updated, status, tags
title updated status tags
变更日志 2026-04-22 active
log
history

变更日志

Append-only 操作记录。格式: ## [日期] 类型 | 描述

[2026-04-23] fix | Agent 命名检测重构+跨会话记忆修复+Agent tab 移除

  • fix(desktop): detectAgentNameSuggestion 从 6 个固定正则改为 trigger+extract 两步法 (10 个 trigger)
  • fix(desktop): 名字检测从 memory extraction 解耦 — 502 不再阻断面板刷新
  • fix(src-tauri): agent_update 同步写入 soul.md — config.name → system prompt 断链修复
  • refactor(desktop): 移除 Agent tab (简洁模式/专业模式),清理 dead code (~280 行)
  • 验证: cargo check 0 error, tsc --noEmit 0 error

[2026-04-23] fix | 身份信号提取与持久化 — 对话中起名跨会话记忆+面板刷新

  • fix(zclaw-growth): ProfileSignals 增加 agent_name/user_name 字段 + 提取提示词扩展 + 解析器+回退逻辑
  • fix(zclaw-runtime): 身份信号存入 VikingStorage (importance=8)
  • fix(src-tauri): post_conversation_hook 身份写回 soul.md + emit zclaw:agent-identity-updated Tauri 事件
  • fix(desktop): 双通道更新 — 前端规则检测 detectAgentNameSuggestion 即时改名 + Rust 事件驱动 RightPanel 刷新
  • 验证: cargo check 0 error/0 warning, tsc --noEmit 0 error

[2026-04-22] fix | agentStore stale client — getClient() 直接读 connectionStore

  • fix(desktop): agentStore _client 模块缓存导致 Tauri 模式下持有旧 GatewayClient 引用
  • 根因: initializeStores()_storesInitialized 守卫阻止二次注入KernelClient 替换后 agentStore 仍用旧引用
  • 修复: getClient() 改为直接读 connectionStore.getState().client,去掉本地缓存

[2026-04-22] fix | Agent tab 数据不同步 — role映射+userProfile双通道+称呼方式

  • fix(desktop): updateClone role→description 字段映射修复 (kernel-agent.ts:176)
  • fix(desktop): listClones 新增 agent_get + identity_get_file 双通道获取 userName/userRole
  • fix(desktop): userAddressing 错误使用 agent nickname 作为用户称呼方式 → 改用 userName

[2026-04-22] docs | Wiki 重构 — 5节模板+集成契约+症状导航+归档压缩

  • Phase A: log.md 归档(548→335行, 38条活跃) + hermes-analysis 归档 + known-issues 转索引(277→38行)
  • Phase B: middleware.md 重构(157→136行) — 集成契约+3不变量+单真相源
  • Phase C: saas.md(231→173, 移除安全重复) + security.md(158→199, 吸收安全内容) + memory.md(363→147, 最大压缩59%)
  • Phase D: routing(330→131) + chat(180→134) + butler(215→150) + hands-skills(281→170) + pipeline(157→154) + data-model(181→153)
  • Phase E: index.md 新增症状导航表(144→101行, ≤120预算) + 移除架构Q&A(移入各模块)
  • Phase F: feature-map.md 33链路详细描述→紧凑索引(424→60行)
  • CLAUDE.md: §3.3 阶段1 更新(症状导航+5节说明) + §8.3 wiki维护规则更新(新模板触发规则)
  • 净减 ~1,200 行消除所有跨3+页重复10/10 模块页新增集成契约

[2026-04-22] docs | Wiki 一致性修复 — 数字/格式/重复内容清理

  • index.md: 数据流图中间件 15→14 层
  • chat.md: 中间件层引用 15→14 层
  • development.md: 稳定化约束中间件 15→14 层
  • memory.md: 删除"前端 Tauri 命令"与"API 接口"重复的 VikingStorage/Intelligence 表(保留 API 接口章节)
  • log.md: 统一所有标题格式为 ## [YYYY-MM-DD] 类型 |27行删除重复的 # 变更日志 标题;修正历史条目中"中间件 15层"→"14层"DataMasking 条目补充 Evolution@78

[2026-04-22] fix | 跨会话记忆断裂修复 (commit adf0251)

  • 根因: 3个断裂点
    1. profile_store未连接 — create_middleware_chain()中GrowthIntegration未设置UserProfileStore, extract_combined()的profile_signals被静默丢弃
    2. 双数据库不一致 — UserProfileStore写入data.db, agent_get读取memories.db, 两库隔离导致UserProfile永远读不到
    3. 缺少关键日志 — 提取/存储/检索链路无info级别日志
  • 修复: with_profile_store(memory.pool()) + agent_get改用kernel.memory() + Kernel暴露memory()方法 + growth.rs增强日志
  • 验证: Tauri端E2E — 会话A提取6记忆+4 profile signals → 新会话B成功注入记忆 → 管家Tab显示用户画像+近期话题+53条记忆

[2026-04-22] feat | 管家Tab记忆展示增强

  • 变更: MemorySection.tsx 重写 — L1摘要并行加载 + 按类型分组(偏好/知识/经验/会话) + 用户画像卡片(行业/角色/沟通风格/近期话题)
  • 数据源: viking_ls+viking_read(L1) + agent_get(userProfile)

[2026-04-22] refactor | DataMasking 完全移除

  • 变更: 删除 data_masking.rs (367行) + loop_runner unmask 逻辑 + saas-relay-client.ts 前端 mask/unmask
  • 原因: 正则过度匹配中文文本(commit 73d50fd 已禁用)NLP方案未排期彻底移除减少维护负担
  • 影响: 中间件链 15→14 层loop_runner 简化SaaS relay 路径不再做前端脱敏
  • 中间件链: Evolution@78, ButlerRouter@80, Compaction@100, Memory@150, Title@180, SkillIndex@200, DanglingTool@300, ToolError@350, ToolOutputGuard@360, Guardrail@400, LoopGuard@500, SubagentLimit@550, TrajectoryRecorder@650, TokenCalibration@700

[2026-04-22] fix | Agent 搜索功能修复 — glm 空参数 + schema 简化 + 排版修复 (commit 5816f56 + 81005c3)

根因: glm-5.1 不理解 oneOf+const 复杂 JSON Schematool_calls arguments 始终为空 {}。 加上 DuckDuckGo 被墙导致搜索引擎选择不正确,以及 stripToolNarration 破坏了 markdown 排版。

修复 3 项:

  1. researcher.rs input_schema 扁平化 + _fallback_query 回退 (5816f56)
  2. loop_runner.rs 空参数检测 → 注入用户消息作为查询 (5816f56)
  3. ChatArea.tsx stripToolNarration 改为行级过滤,保留 markdown 结构 (81005c3)

影响文件: crates/zclaw-hands/src/hands/researcher.rs, crates/zclaw-runtime/src/loop_runner.rs, desktop/src/components/ChatArea.tsx

验证: E2E 搜索 "今日科技新闻" — Baidu + Bing CN 并行返回 10 条结果LLM 生成排版正确的回复

[2026-04-21] fix | Phase 0+1 突破之路 — 8 项基础链路修复 (commit c1dea6e + 9a2611d)

Phase 0 地基修复 (2 项):

  • 经验积累覆盖 bug: store_experience() URI 确定性覆盖 → 合并+累积 reuse_count (experience_store.rs)
  • Skill 工具调用断裂: PromptOnlySkill 纯文本 → complete_with_tools() 桥接 (skill.rs + runner.rs + adapters.rs)

Phase 1 用户可感知修复 (6 项):

  • Hand 执行前端字段映射: instance_id → runId (kernel-hands.ts + gateway-api.ts)
  • Heartbeat 痛点感知: PAIN_POINTS_CACHE + VikingStorage 持久化 + 未解决痛点检查 (heartbeat.rs)
  • Browser Hand 委托消息: pending_execution → delegated_to_frontend + 中文摘要 (browser.rs)
  • 跨会话记忆检索增强: IdentityRecall 模式 26→54 + 弱身份信号(9个) + 低结果 fallback (query.rs + retriever.rs)
  • Twitter Hand 凭据持久化: SetCredentials action + 文件持久化 + 启动恢复 (twitter.rs)
  • Browser 测试适配: 新响应格式断言修复

验证: cargo check 0 error | cargo test 912 PASS | tsc --noEmit 0 error

[2026-04-21] test | Phase 2 自学习闭环验证 — 进化引擎全链路确认 (commit d95fda3)

审计发现: 进化引擎管道已完整连接Phase 0 的 reuse_count 修复是唯一缺失拼图。

  • 经验累积 → PatternAggregator(>=3) → EvolutionEngine → EvolutionMiddleware(@78) → 注入
  • L2 SkillGenerator + QualityGate 代码完整,标记 @reserved 用于全自动化(后续)
  • 当前"人在环"模式:检测到可进化模式 → 提示用户确认 → 不自动生成

6 个集成测试: 经验累积触发/阈值过滤/多模式独立/SkillGenerator prompt/QualityGate验证/FeedbackCollector计分。全量 918 PASS。

[2026-04-21] fix | 穷尽审计后 3 项修复 (browser doc / experience_store warn / identity pattern count)

  • browser.rs: 过时文档注释 pending_executiondelegated_to_frontend
  • experience_store.rs: merge 反序列化失败时添加 warn!() 日志 + fallback 覆写
  • wiki/log.md: identity_patterns 数量更正 43→54

验证: cargo check 0 error | cargo test 112 PASS (growth+hands)

[2026-04-20] fix | 50 轮功能链路审计 7 项断链修复 (commit f291736)

审计报告: docs/test-evidence/FUNCTIONAL_CHAIN_AUDIT_2026_04_20.md 通过率 42/50 (84%),发现 2 P0 + 3 P1 + 2 P2 断链。

P0 修复:

  • B-MEM-2 跨会话记忆丢失: IdentityRecall 查询意图 + scope-only 检索 + GrowthIntegration 缓存
  • B-HAND-1 Hands 未触发: HandTool wrapper + tool registry 注册 7 个 Hands

P1 修复:

  • B-SCHED-4 一次性定时: RE_ONE_SHOT_TODAY 同日触发模式
  • B-CHAT-2 工具循环: 连续失败计数器 (3次上限)
  • B-CHAT-5 Stream 竞态: cancelCooldown 500ms

[2026-04-19] docs | Wiki 全量深度梳理 — 11 页同步至代码实际状态

  • index.md: 全面更新关键数字 — Rust 102K行/357文件/987测试、Store 25、组件 102、lib 75、@reserved 97、中间件 14层、SQL 38文件/42表、dead_code 0新增进化引擎架构说明修正 Hands 7注册(非9)Pipeline 18模板
  • routing.md: Store 列表删除 workflowBuilderStore(已不存在)、新增 saas/ 子模块(5文件)拆分路由决策从4分支修正为5分支+降级lib/ 计数 76→75
  • hands-skills.md: Hands 从"9启用"修正为"7注册"(6 TOML + _reminder);新增"已删除 Hands"节(Whiteboard/Slideshow/Speech 空壳清理)HAND.toml 9→6
  • saas.md: SaaS 模块从"16+distill"修正为精确16目录SQL迁移从"20文件"修正为"38文件(21up+17down)"CREATE TABLE 从104修正为42
  • known-issues.md: 代码健康度指标全面更新 — @reserved 89→97、dead_code 16→0、TODO Rust 3→1、Rust测试 684→797
  • memory.md: 新增进化引擎(EvolutionEngine)完整模块结构(19文件);新增 FeedbackCollector/PatternAggregator/QualityGate/SkillGenerator/WorkflowComposer 描述
  • butler.md: Intelligence 层从5文件扩展到16文件完整清单新增 experience/health_snapshot/personality_detector 等
  • pipeline.md: 模板数从17修正为18修正模板分布总计公式
  • chat.md: 中间件层引用 14层(含Evolution@78)
  • development.md: 稳定化约束数字全面更新(Store 25、中间件 14、组件 102);分层职责同步
  • 验证方式: 3路并行代码分析(Rust crates/前端/TRUTH交叉) + 20+ grep/find 命令实际验证

[2026-04-19] fix | 穷尽审计修复 — CRITICAL×1 + HIGH×6 + MEDIUM×4

  • C1: mark_key_429 设 is_active=FALSE自动恢复路径可达化
  • H1+H2: 重试查询补全日志 + fallthrough 错误信息修正 (RateLimited)
  • H3+H4+M3+M4+M5: agentStore 提取 classifyAgentError() 类型化错误 + 全 CRUD 统一
  • H5+H6: auth.ts 提取 triggerReconnect()login/TOTP/restore 三路径统一
  • M1: toggle_key_active(true) 清除 cooldown_until

[2026-04-19] fix | 发布前审计 5 项修复

  • P0-1: key_pool.rs Provider Key cooldown 过期自动恢复is_active=false → true
  • P0-2: agentStore.ts createClone/createFromTemplate 友好错误信息502/503/401 分类)
  • P1-2: auth.ts login 成功后触发 connectionStore.connect() 重新配置 kernel token
  • P1-3: health_snapshot heartbeat engine 未初始化时返回 pending 快照(不再报错)
  • P1-1: configStore.ts loadSkillsCatalog 增加延迟重试最多2次1.5s/3s 间隔)

[2026-04-19] chore | sqlx 0.7→0.8 统一 + 测试覆盖补充

  • sqlx workspace 0.7→0.8.6 + libsqlite3-sys 0.27→0.30,消除 pgvector 引入的双版本
  • 零源码修改719→797 测试全通过
  • zclaw-protocols +43 测试: MCP types serde / transport config / domain roundtrips
  • zclaw-skills +47 测试: SKILL.md/TOML parsing / auto-classify / PromptOnlySkill / types roundtrips

[2026-04-18] fix | 审计后续 3 项修复

  • Shell Hands 残留清理 3 处 (message.rs 注释/profiler 偏好/handStore mock)
  • FTS5 CJK 查询修复: sanitize_fts_query 从精确短语改为 token OR 组合
  • WASM HTTP 响应大小限制: Content-Length 预检 + 1MB 上限
  • zclaw-growth 集成测试 2/2 修复, 全量 651 测试 0 失败

[2026-04-18] fix | 深度审计修复 — WASM 安全 + 编译路径

  • CRITICAL: zclaw_file_read 路径遍历修复 (组件级过滤)
  • CRITICAL: zclaw_http_fetch SSRF 防护 (scheme 白名单 + 私有 IP 阻止)
  • CRITICAL: A2A 始终编译 (移除 zclaw-protocols a2a feature gate)
  • MEDIUM: FactCategory cfg(test) 导入修复
  • 移除 kernel/desktop multi-agent feature (不再控制任何代码)
  • 563 测试全通过

[2026-04-17] refactor | Phase 4A multi-agent feature gate 移除

  • 8 个文件移除 33 处 #[cfg(feature = "multi-agent")]
  • zclaw-kernel default features 新增 multi-agent始终编译
  • A2A router、agents、adapters 代码不再条件编译

[2026-04-17] feat | Phase 4B WASM host 函数真实实现

  • zclaw_log: 读取 guest 内存字符串 + debug! 日志
  • zclaw_http_fetch: ureq v3 同步 GET (10s timeout, network_allowed 守卫)
  • zclaw_file_read: 沙箱 /workspace 读取 + 路径校验防逃逸
  • 新增 ureq v3 workspace 依赖 (wasm feature gated)
  • 25 测试全通过workspace check 零错误

[2026-04-17] refactor | Phase 3A loop_runner 双路径合并

  • middleware_chain 从 Option 改为 MiddlewareChain (Default = 空链)
  • 移除 6 处 use_middleware 分支 + 2 处 legacy loop_guard inline path
  • 移除 loop_guard field + Mutex import + circuit_breaker_triggered 变量
  • Kernel create_middleware_chain() 返回非 Optionmessaging.rs 调用简化
  • 1154→1023 行,净减 131 行;cargo check --workspace ✓ | cargo test

[2026-04-17] refactor | Phase 2A Pipeline→Kernel 解耦

  • Pipeline 代码中无任何 zclaw_kernel 引用,Cargo.toml 中的依赖是空壳
  • 移除后 cargo check --workspace --exclude zclaw-saas
  • 依赖图简化: Pipeline 不再拉入 Kernel 及其传递依赖

[2026-04-17] refactor | Phase 2B saasStore 拆分为子模块

  • 1025行单文件 → 5个子模块 + barrel re-export
  • saas/types.ts(103行) + shared.ts(93行) + auth.ts(362行) + billing.ts(84行) + index.ts(309行)
  • saasStore.ts 缩减为 15行 re-export barrel25+ 消费者零改动
  • tsc --noEmit

[2026-04-17] refactor | Phase 5 移除空壳 Hand — Whiteboard/Slideshow/Speech

  • Rust: 删除 whiteboard.rs(422行) + slideshow.rs(797行) + speech.rs(442行)
  • 前端: 删除 WhiteboardCanvas + SlideshowRenderer + speech-synth + 类型/常量
  • 配置: 删除 3 个 HAND.toml
  • Hands 9→6 启用 (Browser/Collector/Researcher/Clip/Twitter/Quiz + Reminder系统内部)
  • 净减 ~5400 行,cargo check ✓ | tsc --noEmit

[2026-04-17] feat | Phase 1 错误体系重构 — ErrorKind + code + Serialize

  • Rust: zclaw-types/error.rs 新增 ErrorKind (17种) + error_codes (E4040-E5110)
  • ZclawError 新增 kind() / code() 方法 + Serialize impl (零破坏性)
  • 12 个新测试: kind 映射 + code 稳定性 + JSON 序列化
  • 前端: error-types.ts 新增 RustErrorKind / RustErrorDetail / tryParseRustError()
  • classifyError() 优先解析结构化错误 → 17 种中文标题映射

[2026-04-17] fix | Phase 0 阻碍项修复 — 流式事件/CI/中文化

  • BLK-2: loop_runner.rs 22 处 let _ = tx.send() 替换为 if let Err(e) { tracing::warn!(...) },修复流式事件静默丢失
  • BLK-5: 50+ 英文字符串翻译为中文 (HandApprovalModal/ChatArea/AuditLogsPanel 等 7 组件)
  • BLK-6: CI/Release workflow 添加 --exclude zclaw-saas,无 DB 时 CI 绿灯
  • 验证: cargo check --workspace --exclude zclaw-saas ✓ | tsc --noEmit

[2026-04-17] fix | M4 Admin 权限守卫 + L1 文档同步

  • BUG-M4: 新增 admin_guard_middleware (auth/mod.rs),在中间件层拦截非 admin 请求
    • billing::admin_routes()account::admin_routes() 挂载时加 guard layer
    • 非_admin 用户访问 admin 端点统一返回 403 (无论 body 是否合法)
    • account/mod.rs 拆分 admin_routes() (dashboard 端点独立)
  • BUG-L1: 字段名已在代码中统一为 pain_seed_categories,同步 wiki/butler.md/log.md 文档

[2026-04-17] test | 回归验证 — 13/13 PASS全部 04-17 bug 修复确认

  • Phase 1: 6 项 bug 修复回归 (H1/H2/M1/M2/M3/M5) 全部 PASS
  • Phase 2: Pipeline (list/create/run) + Skill (75 + route_intent) 全部 PASS
  • Phase 3: Kernel init + chat_stream + health_snapshot 全部 PASS
  • BUG-L2 Pipeline 反序列化已验证修复
  • 记忆系统健康: 381 条记忆, 12 agent, FTS5+TF-IDF 工作正常
  • 详见 known-issues#04-17 回归验证

[2026-04-17] test | 全系统功能 E2E 测试 — 129 链路覆盖

  • 129 条链路全量测试 (Tauri MCP + Chrome DevTools MCP + HTTP API)
  • 82 PASS / 20 PARTIAL / 1 FAIL / 26 SKIP有效通过率 79.1%
  • 0 CRITICAL 失败,核心聊天链路完整闭环
  • 新发现 2 HIGH + 5 MEDIUM + 2 LOW bug
  • SaaS API 覆盖率 ~78% (50/64 端点已测试)
  • 完整报告: docs/test-evidence/2026-04-17/E2E_TEST_REPORT_2026_04_17.md
  • 详见 known-issues

[2026-04-17] fix | 7 项 E2E Bug 修复 — Dashboard 404 / 记忆去重 / 记忆注入 / invoice_id / Prompt 版本

  • fix(admin): Dashboard 404 — 路由注册修复
  • fix(memory): viking_add 记忆去重 — URI+content 双重校验
  • fix(memory): 跨会话记忆注入修复 — FTS5→注入环节断裂修复
  • fix(billing): invoice_id 暴露给用户端
  • fix(prompt): 版本号自增修复
  • fix(memory): viking_find agent 隔离
  • fix(industry): API 字段名统一 (pain_seeds → pain_seed_categories)
  • commit: a504a40

[2026-04-16] fix | Agent 面板信息不随对话更新 — 事件时序 + clones 刷新

  • fix(desktop): Agent 面板信息不随对话更新 — 事件时序 + clones 刷新
  • commit: 1309101

[2026-04-16] fix | 3 项 P0 安全/功能修复 + TRUTH.md 数字校准

[2026-04-16] fix | 5 项 E2E 测试 Bug 修复

  • Agent 502 / 错误持久化 / 模型标记 / 侧面板 / 记忆页
  • commit: a0d1392

[2026-04-16] fix | useButlerInsights 使用 resolvedAgentId 查询痛点/方案

[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连接/记忆/会话/系统资源)
  • feat(runtime): heartbeat.rs 重构 — HeartbeatManager + HealthSnapshot 集成
  • feat(desktop): HealthPanel.tsx — 桌面端健康状态面板组件
  • chore(desktop): 删除 intelligence-client/ 目录 9 个废弃文件
  • docs: TRUTH.md + wiki 数字同步 (Tauri 183命令, React 105组件, lib 76文件, intelligence 16文件)
  • 验证: cargo check 0 error, tsc 0 error

[2026-04-15] fix | 聊天定时功能断链接通 — NlScheduleParser + _reminder Hand

  • fix(runtime): NlScheduleParser 接入 chat.rs — has_schedule_intent() 意图检测 + parse_nl_schedule() cron 解析
  • fix(hands): 新增 _reminder 系统内部 Hand — 定时触发器桥接
  • fix(kernel): TriggerManager hand_id 验证放宽 — _ 前缀系统 Hand 免验证
  • fix(desktop): agent_chat_stream 定时拦截 — 确认消息通过 LoopEvent::Delta 流式返回
  • docs(wiki): hands-skills.md 新增定时提醒链路说明
  • 验证: cargo check 0 error, 49 tests passed, Tauri MCP 实操验证 "每天早上9点提醒我查房" → cron 0 9 * * * 确认消息正确显示

[2026-04-15] fix | 发布前冲刺 Day1 — 5项修复 + 2项标注 + 文档同步

  • fix(saas): SSE 用量统计一致性 — 回写 usage_records 真实 token + 消除 relay_requests 双重计数
  • fix(saas): relay_tasks 超时自动清理 — 每5分钟扫描 processing>10min 标记 failed
  • fix(desktop): 模型自动路由 — 首次登录自动选择第一个可用模型 (saasStore + connectionStore)
  • chore: Cargo warnings 清零 — 39→0 (仅剩 sqlx-postgres 外部依赖)
  • chore: Tauri 命令 @reserved 全量标注 — 89个 (孤儿命令 0)
  • docs: TRUTH.md 数字更新 (Tauri 182命令、95 invoke、89 @reserved、0 孤儿)
  • 验证: tsc 0错误、vitest 344通过、cargo check 0 warning、pnpm build 成功

[2026-04-15] fix | 三端联调 V2 — SSE Token 捕获修复 + 调试环境文档

  • fix(saas): SseUsageCapture 增加 stream_done 标志,修复 SSE 路径 Token 始终为 0 的根因
  • fix(saas): parse_sse_line 兼容 data:data: 两种前缀 + total_tokens 兜底
  • docs(wiki): development.md 新增完整调试环境信息Windows 环境要求/数据库/端口/账号/启动顺序)
  • docs(wiki): known-issues.md 新增 V2 联调测试结果17 项通过 + 3 项待处理)
  • 验证方式: Chrome DevTools MCP + Tauri MCP 实际界面操作

[2026-04-14] docs | Wiki 全量更新 — 2026-04-14 代码验证驱动

  • 全部 12 个 wiki 页面基于最新代码扫描验证更新
  • 关键数字修正: Rust 77K行(274 .rs)、Tauri 189命令、SaaS 137 routes、Admin 17页、SaaS 16模块
  • known-issues: V13-GAP 全部标记已修复 + 三端联调测试结果
  • middleware: 14层 runtime + 10层 SaaS HTTP 完整清单
  • saas: 16模块(含industry)、20迁移/42表、137 routes
  • routing: SaaS降级流程、Store含industryStore、lib/85文件
  • chat: 14层中间件经过
  • butler: 行业配置接入ButlerPanel
  • development: Admin 17页、SaaS 137 routes
  • log: 链接三端联调测试报告

[2026-04-14] fix | 三端联调测试 2 P0 + 6 P1 修复

  • P0: SaaS 模型选择残留模型 ID → 模型可用性前置校验
  • P1: API 密钥页崩溃 / 桌面端 401 恢复 / 用量统计全零 / 行业选择 500 / 管理员订阅 500 / SaaS 启动崩溃
  • 完整报告: docs/INTEGRATION_TEST_REPORT_20260414_V2.md

更新规则: 每次重大变更后追加一条,最新在最上面