Files
zclaw_openfang/wiki/log.md
iven 0903a0d652
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
fix(v13): FIX-06 PersistentMemoryStore 全量移除 — 665行死代码清理
- persistent.rs 611→57行: 移除 PersistentMemoryStore struct + 全部方法 + 死 embedding global
- memory_commands.rs: MemoryStoreState→Arc<Mutex<()>>, memory_init→no-op, 移除 2 @reserved 命令
- viking_commands.rs: 移除冗余 PersistentMemoryStore embedding 配置段
- lib.rs: Tauri 命令 191→189 (移除 memory_configure_embedding + memory_is_embedding_configured)
- TRUTH.md + wiki/log.md 数字同步

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 20:58:54 +08:00

208 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 变更日志
updated: 2026-04-13
status: active
tags: [log, history]
---
# 变更日志
> Append-only 操作记录。格式: `## [日期] 类型 | 描述`
## [2026-04-12] audit | V13 系统性功能审计 — 6 项新发现
- 全系统功能一致性审计完成, 总体健康度 82/100 (V12: 76)
- P1 新发现 3 项: TrajectoryRecorder 未注册中间件链, industryStore 无组件导入, 桌面端无 Knowledge Search
- P2 新发现 3 项: Webhook 孤儿表, Structured Data Source 无 Admin UI, PersistentMemoryStore 遗留
- 修正 V12 错误认知 5 项: Butler/MCP/Gateway/Presentation 已接通, Reflection driver 已修复
- TRUTH.md 数字校准: Tauri 184→191, SaaS 122→136, @reserved 33→24, dead_code 76→43
- 完整报告: `docs/features/audit-v13/V13-FULL-REPORT.md`
## [2026-04-12] fix | 三轮审计修复 — 3 HIGH + 4 MEDIUM 清零
- H1: status disabled→inactive 统一 + source 补 admin 映射
- H2: experience.rs format_for_injection XML 转义
- H3: TriggerContext industry_keywords 全局缓存接通
- M2: ID 自动生成移除中文 + 无 ASCII 手动提示
- M3: TS CreateIndustryRequest 补 id 字段
- M4: ListIndustriesQuery deny_unknown_fields
## [2026-04-12] feat | 知识库 Phase D — 统一搜索 + 种子知识冷启动
- search/recommend API 返回 UnifiedSearchResult (文档+结构化双通道合并)
- POST /api/v1/knowledge/seed 种子知识冷启动接口 (幂等, admin权限)
- seed_knowledge: 按标题+行业查重, source='distillation', tags标记行业
- SearchRequest 扩展: search_structured/search_documents/industry_id 字段
- 167 行新增, 4 文件变更
## [2026-04-12] fix | 二次审计修复 — 2 CRITICAL + 4 HIGH + 2 MEDIUM
- C-1: Industries.tsx 创建弹窗缺少 id → 添加 id 输入 + name 自动生成
- C-2: Accounts.tsx handleSave 部分 save → try/catch + handleClose 统一
- V1: viking_commands Mutex 跨 await → Arc clone 后释放 Mutex
- I1+I2: 误导性"相关度"分数移除 + pain point XML 转义
- S1+S2: industry status 枚举白名单 + id 格式正则验证
- H-3+H-4: 编辑模态数据竞争守卫 + useEffect editingId 守卫
## [2026-04-12] feat | 知识库 Phase B+C — 文档提取器 + multipart 文件上传
- extractors.rs: PDF(pdf-extract) + DOCX(zip+quick-xml) + Excel(calamine) 三格式提取
- 格式路由 detect_format() → RAG 通道或结构化通道
- POST /api/v1/knowledge/upload multipart 文件上传
- PDF/DOCX/Markdown → RAG 管线Excel → structured_rows JSONB 存储
- 结构化数据源 API: GET/DELETE /api/v1/structured/sources + /rows + /query
- 修复 industry/service.rs SaasError::Database 类型不匹配
- 累计新增 849 行7 文件变更
## [2026-04-12] fix | 审计修复 — 4 CRITICAL + 5 HIGH 全部解决
- C1: SQL 注入风险 → industry/service.rs 参数化查询 ($N 绑定)
- C2: INDUSTRY_CONFIGS 死链 → Kernel 共享 Arc + ButlerRouter 共享实例
- C3: IndustryListItem 缺字段 → keywords_count + 时间戳补全
- C4: 非事务性行业绑定 → batch ANY($1) 验证 + 事务 DELETE+INSERT
- H8: Accounts.tsx 竞态 → mutate→mutateAsync + confirmLoading 双检测
- H9: XML 注入未转义 → xml_escape() 辅助函数
- H10: update 覆盖 source → 保留原始值
- H11: 面包屑 /industries 映射缺失
## [2026-04-12] feat | 行业配置 + 管家主动性 全栈 5 Phase 实施
Phase 1 — 行业配置基础 (13 files, 886 insertions):
- SaaS industries + account_industries 表 (migration v15)
- 4 内置行业: 医疗/教育/制衣/电商 (keywords/prompt/pain_seeds)
- ButlerRouter 动态行业关键词注入 (Arc<RwLock<Vec<IndustryKeywordConfig>>>)
- 8 SaaS API handlers (list/create/update/fullConfig/accountIndustries)
Phase 2 — 学习循环基础 (5 files, 271 insertions):
- 5 触发信号: PainConfirmed/PositiveFeedback/ComplexToolChain/UserCorrection/IndustryPattern
- Experience 增加 industry_context + source_trigger 维度
- experience_store keywords 含行业标签
Phase 3 — Tauri 行业配置加载 (6 files, 310 insertions):
- desktop saas-industry.ts mixin (4 API methods)
- industryStore.ts (Zustand + persist, 离线缓存)
- viking_load_industry_keywords Tauri 命令 (JSON String → Rust struct)
Phase 4 — Admin 行业管理 (6 files, 564 insertions):
- Industries.tsx: 行业列表 + 编辑弹窗(关键词/prompt/痛点种子) + 新建弹窗
- Accounts.tsx 增强: 行业授权多选 + 主行业标记
- /industries 路由 + ShopOutlined 侧边栏导航
Phase 5 — 主动行为激活 (3 files, 152 insertions):
- 注入格式升级: [路由上下文] → <butler-context> XML fencing (Hermes 策略)
- 跨会话连续性: pre_hook 注入活跃痛点 + 相关经验
- 触发信号持久化: store_trigger_experience() 模板提取零 LLM 成本
## [2026-04-11] chore | 发布前准备 — 版本号统一 + 数字校准 + 安全加固
1. Cargo.toml 版本 0.1.0 → 0.9.0-beta.1 (workspace 统一)
2. TRUTH.md 数字全面校准 — Rust 代码 66K→74.6K、Tauri 命令 182→184、SaaS .route() 140→122 等 10 项
3. CSP 加固 — 添加 `object-src 'none'`
4. .env.example 补充 SaaS 关键环境变量 (JWT_SECRET/TOTP_KEY/Admin 凭据)
5. 安全检查通过 — 无硬编码密钥、SQL 全参数化、Cookie 三件套完整
## [2026-04-11] fix | 模型路由链路修复 — 消除硬编码不匹配模型
1. summarizer_adapter.rs — "glm-4-flash" 硬编码 fallback → 未配置时明确报错 (fail fast)
2. saas-relay-client.ts — 'glm-4-flash-250414' 硬编码 fallback → 未获取模型时报错
3. Wiki routing.md — 新增完整模型路由文档 (Tauri SaaS Relay 主路径 + 辅助 LLM + Browser 模式)
## [2026-04-11] fix | Skill/MCP 调用链路修复 3 个断点
1. Anthropic Driver ToolResult 格式 — ContentBlock 添加 ToolResult 变体, tool_call_id 不再丢弃
2. 前端 callMcpTool 参数名 — serviceName/toolName/args → service_name/tool_name/arguments
3. MCP 工具桥接 ToolRegistry — McpToolWrapper + Kernel mcp_adapters 共享状态 + 启停同步
4. Wiki 更新 — hands-skills.md 添加 Skill 调用链路 + MCP 架构文档
## [2026-04-11] fix | 发布内测前修复 6 批次
- Batch 1: 新用户 llm_routing 默认改为 relay (SQL + migration)
- Batch 2: SaaS URL 集中配置化 (VITE_SAAS_URL, 5处硬编码消除)
- Batch 3: Gateway URL 配置化 + Rust panic hook 崩溃报告
- Batch 4: UX 文案修复 — 新/老用户区分 + 去政务化 + 忘记密码
- Batch 5: 移除空壳"行业资讯" Tab + Provider URL 去重统一到 api-urls.ts
- Batch 6: 版本号 0.1.0 → 0.9.0-beta.1 + updater 插件预留
## [2026-04-11] docs | Wiki 全面更新 — 代码验证驱动
- 全部 10 个 wiki 页面基于代码扫描验证更新(非文档推测)
- 关键数字修正: Rust 95K行(335 .rs文件, 原文档66K)、Tauri命令 190/183、SaaS路由 121、前端组件 104、lib/ 85 文件
- 测试函数修正: ~1,055 (872内联+183集成原文档仅计#[test])
- 新增中间件完整注册清单14层runtime + 6层SaaS HTTP
- 新增 Store 完整目录结构17 文件 + chat/4 子store
- 新增 Pipeline 模板完整目录树17 YAML, 8 行业目录)
- 新增 Hands 测试数分布
- 新增 memory Tauri 命令完整列表16 个)
- 新增代码健康度指标TODO/FIXME 仅 8 个)
- 修正管家模式描述: 关键词路由 → 语义路由(TF-IDF)
- 新增 artifactStore 到 chat Store 拆分列表
## [2026-04-11] init | 创建 wiki 知识库
- 从 TRUTH.md / ARCHITECTURE_BRIEF.md / CLAUDE.md 编译 8 个 wiki 页面
- 创建 index.md 入口 + 7 个主题页
- CLAUDE.md 添加 @wiki/index.md 引用
## [2026-04-10] fix | 发布前修复批次
- ButlerRouter 语义路由 — SemanticSkillRouter TF-IDF 替代关键词
- P1-04 AuthGuard 竞态 — 三态守卫 + cookie 先验证
- P2-03 限流 — Cross 测试共享 token
- P1-02 浏览器聊天 — Playwright SaaS fixture
- BREAKS.md 全部 P0/P1/P2 已修复
## [2026-04-09] feat | Hermes Intelligence Pipeline 4 Chunk
- Chunk1 ExperienceStore+Extractor (10 tests)
- Chunk2 UserProfileStore+Profiler (14 tests)
- Chunk3 NlScheduleParser (16 tests)
- Chunk4 TrajectoryRecorder+Compressor (18 tests)
- 中间件 13→14 层 (+TrajectoryRecorder@650)
- Schema v2→v4 (user_profiles + trajectory tables)
## [2026-04-09] feat | 管家模式发布前实施完成
- ButlerRouter + 冷启动 + 简洁UI
- 痛点持久化 SQLite
- 桥测试 43 通过
## [2026-04-07] feat | 管家能力激活
- Tauri 命令 183→189 (+6 butler)
- multi-agent feature 默认启用
- ButlerPanel UI 3 区
- DataMaskingMiddleware@90
## [2026-04-03] fix | 前端改进 + 数字校准
- Pipeline 8 invoke 接通前端
- Viking 5 孤立 invoke 清理
- SaaS API 93→131 (新增 knowledge/billing/role)
- scheduled_task Admin V2 完整接入
## [2026-04-02] fix | P0/P1 全部修复
- 2 P0 崩溃修复
- 9 P1 功能失效修复
- 7 P1.5 代码质量修复
- TRUTH.md 初始创建
---
> 更新规则: 每次重大变更后追加一条,最新在最上面
### [2026-04-13] V13 审计 6 项修复全部完成
- FIX-01 (P1): TrajectoryRecorderMiddleware 注册到 create_middleware_chain() @650Hermes 轨迹数据开始流入
- FIX-02 (P1): industryStore 接入 ButlerPanel桌面端展示行业专长卡片 + 自动拉取
- FIX-03 (P1): 桌面端知识库搜索 — saas-knowledge mixin + VikingPanel SaaS KB 搜索 UI
- FIX-04 (P2): Webhook 孤儿迁移标注 deprecated + down migration 注释
- FIX-05 (P2): Admin Knowledge 新增"结构化数据"Tab (CRUD + 行浏览)
- FIX-06 (P2): PersistentMemoryStore 全量移除 — persistent.rs 611→57行删除死 embedding global + 2 @reserved 命令 + viking_commands 冗余配置Tauri 命令 191→189
- 文件: 13 个 (Rust 5 + TS 7 + docs 1), 提交: c167ea4 + fd3e7fd + 本轮
- P0: memory_search 空查询 min_similarity 默认值; hand_trigger null→handAutoTrigger; 重启后 chat 路由竞态修复
- P1: AgentInfo 扩展 UserProfile 桥接; 反思阈值降低 5→3; 反思 state restore peek+pop 竞态修复
- P2: 演化历史可展开差异视图; 管家 Tab 条件 header + 空状态引导
- 文件: 14 个 (Rust 5 + TS 9), 10 次提交