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
174 lines
7.8 KiB
Markdown
174 lines
7.8 KiB
Markdown
---
|
||
title: 变更日志
|
||
updated: 2026-04-11
|
||
status: active
|
||
tags: [log, history]
|
||
---
|
||
|
||
# 变更日志
|
||
|
||
> Append-only 操作记录。格式: `## [日期] 类型 | 描述`
|
||
|
||
## [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-11] 详情面板 7 问题修复
|
||
|
||
- 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 次提交
|