# Release Notes

## v1.11.10
发布日期：`2026-06-16`
> 对比 `v1.11.9` → `v1.11.10`，共 `56` 个提交

### ✨ 你会直接感受到的升级

- **PTY 终端更稳**：终端面板、标题栏和回放渲染的同步问题被修正，长时间使用和重连后的显示更可靠
- **定时消息更适合“先清空再发送”**：现在可以在发送前清理当前上下文，适合日报、提醒和巡检这类不依赖历史对话的任务
- **思考模式内容不再轻易丢失**：模型在压缩、重试和切换时更能保住需要回传的推理内容，减少上游报错
- **Session 标题和弹窗更顺手**：标题更新、快捷回复和终端确认弹窗的交互细节更一致，少打断操作

### 🐛 重要修复

- **空上游流不再误报为不可重试故障**：模型返回空流时会按可重试的流读取错误处理，恢复兜底更及时
- **IM 渠道错误提示更像人话**：发送失败时会显示更明确的重试提示，不再暴露内部错误口吻
- **会话切换和顶部提示更稳定**：修复切换 Session 时的闪烁和 tooltip 延迟问题，阅读和切换更平滑
- **长对话里的滚动和输入不再互相干扰**：虚拟列表、消息输入和状态更新的竞态收敛后，连续操作更可靠

### 📐 内部整理

- 主进程职责边界进一步收口，RPC 注册路径更集中
- 终端、会话标题、上下文压缩和调度执行的测试覆盖补齐
- 一些弹窗和设置面板抽象统一，后续维护成本更低

### 🧪 质量门禁

- TypeScript 类型检查、全量单元测试已通过

## v1.11.9
发布日期：`2026-06-15`
> 对比 `v1.11.8` → `v1.11.9`，共 `56` 个提交

### ✨ 你会直接感受到的升级

- **内置终端面板**：Agent 创建的终端会话现在直接嵌入聊天界面，无需切换窗口即可查看运行输出；终端列表移入上下文检查面板，支持历史回放和浮动窗口
- **消息文字可直接选择**：长按消息弹出菜单后选择"选择文字"进入原生选中模式，跨消息气泡也可选中并引用回复；移动端体验更接近原生
- **新增 glm-5.2 模型**：支持 100 万 token 上下文窗口，可处理超长对话和大型代码库
- **终端读取支持等待静默**：ptyRead 工具新增 idleTimeout 参数，在输出停止后再返回结果，避免频繁轮询获取不完整内容

### 🐛 重要修复

- **WebSocket 断线重连不再丢失消息**：断线期间的状态在重连后正确恢复，乐观消息不再因断线被错误标记为失败；连接状态监听修复后应用启动不再报错
- **切换会话不再闪烁**：虚拟列表 key 属性调整后切换会话时的 diff 闪烁问题消除，滚动位置更稳定
- **AI 推理块不再被意外丢弃**：匿名 block 和 ID 引用的推理块在新消息到达时正确收束，不再出现内容丢失或过早收束
- **高频流式事件不再卡顿**：事件缓冲区排序修复防止 seq 跳变导致事件被跳过，跨 block 合并的 seq 空洞不再造成死锁
- **拖拽监听不再泄漏**：拖拽事件监听器在组件卸载后正确移除，避免内存泄漏和潜在的异常行为
- **会话标题不再被 AI 回复误覆盖**：标题生成在 debounce 前锁定历史状态，AI 首条回复不再干扰已有标题
- **Session 标签统一显示序号**：所有 Session 标签现在都按渲染顺序显示 #1 #2 #3 序号，替代之前只有默认 Session 显示的 Hash 图标；切换顺序时序号自动跟随重排
- **模型输出长度回退到厂商上限**：当用户未设置 maxTokens 时会回退到模型厂商声明的上限，而不是省略参数；此前部分模型（如 MiniMax-M3）会因默认值超过自身限制而报 `does not support max tokens > 524288` 错误

### 📐 内部整理

- 消息输入框的斜杠命令逻辑（过滤、排序、前缀构建）提取为独立模块，减少主组件体积
- 内存增长设置面板从 1241 行单文件拆分为配置区/执行历史/文件浏览三区独立组件，降低维护成本
- 消息 store 中重复的嵌套 Map 不可变操作收敛为通用工具函数，消除 6 处重复代码
- 聊天组件选取器抽取为可复用的 selector 工厂 hook

### 🧪 质量门禁

- TypeScript 类型检查、全量单元测试（2794）和 Playwright E2E 已通过

## v1.11.8
发布日期：`2026-06-12`
> 对比 `v1.11.7` → `v1.11.8`，共 `11` 个提交

### ✨ 你会直接感受到的升级

- **广播回复可独立折叠展开**：广播中每个 Agent 的回复现在都有自己的折叠开关，方便并排对比多条回复，不再互相影响
- **会话标题在更多场景自动更新**：清除对话后或输入长文本（超过 30 字）时，标题会自动重新评估，历史会话列表更容易找到对应话题

### 🐛 重要修复

- **模型出错重试时不再清空已显示内容**：AI 回复在模型降级或重试时，已生成的部分不会被清空，不再出现已写内容突然消失变成加载动画的问题
- **IPC 高频事件不再导致渲染卡顿**：流式输出时大量 block 更新事件通过精确合并和错误防护，避免渲染进程因消息洪峰出现卡顿或崩溃

### 📐 内部整理

- 消息切片渲染器按职责拆分为独立模块（header / footer / 容器 / 内容），外部契约不变，维护边界更清晰
- IPC 事件反压机制从消息级精化为 block-id 级合并，流式更新的事件传输更高效、更精确
- 标题生成时禁用思考模式（thinking），节省 API token 消耗

### 🧪 质量门禁

- TypeScript 类型检查、全量单元测试和 Playwright E2E 已通过

## v1.11.7
发布日期：`2026-06-12`
> 对比 `v1.11.6` → `v1.11.7`，共 `88` 个提交

### ✨ 你会直接感受到的升级

- **应用数据目录可自由迁移**：设置中新增数据目录配置，可将聊天记录、Agent 数据等整体迁移到其他磁盘或目录，迁移过程有进度提示，完成后一键重启生效
- **收藏入口移至对话标题栏**：收藏消息的入口从消息操作区移到更醒目的标题栏位置，快速收藏和查看收藏更顺手
- **Agent 可自动为对话命名**：试验功能中新增自动更新 Session 标题开关，开启后 Agent 会在话题变化时自动调整对话标题，历史会话更容易辨识
- **广播回复查看更简洁**：广播回复改为手风琴折叠布局，单条摘要始终可见，展开查看详情时不同回复之间互不干扰
- **新增 qwen3.7-plus 模型**：支持通义千问 qwen3.7-plus 模型，支持图片理解能力

### 🐛 重要修复

- **数据库断连后自动恢复**：修复数据库连接意外丢失后发送消息持续报错的问题，现在会自动重建连接并重试，不再需要重启应用
- **虚拟列表消息操作回归修复**：长按、引用选中和用户换行显示在虚拟列表路径下恢复正常，不会再出现操作无响应或样式异常
- **流式输出不再闪烁**：正在生成的消息中已完成部分不再反复重渲染，阅读长回复时更稳定
- **加载历史消息不再闪白**：向上翻页加载更多历史时，当前阅读位置被钉住，不再出现短暂白屏或跳动
- **展开折叠不再导致视口跳动**：消息内容展开和收起时不会把阅读位置推走
- **手动压缩不再多余重放用户消息**：手动整理上下文时跳过已展示的用户消息重放，整理后对话更干净
- **Goal 任务耗尽后不再无限循环重入**：任务执行次数耗尽时正确标记为阻塞状态，避免反复触发空转
- **群聊 Session 标题工具正常工作**：群聊场景下 Agent 能正确使用自动标题更新能力
- **协作头部悬停不再位移**：群聊协作头部区域鼠标悬停时视觉稳定
- **设置中重复选择同一目录会提示**：数据目录迁移时如果选择了当前目录，会给出提示而不是静默忽略
- **长按菜单不再闪退**：消息长按打开操作菜单时不会再因为菜单定位异常导致界面崩溃

### 📐 内部整理

- 消息列表渲染路径统一为虚拟列表单一路径，移除旧的非虚拟化渲染分支和试验开关
- 滚动行为按事务化边界重构：Session 重置、本地发送、尾部校正和前置保位各自独立收口
- 上下文压缩策略重构：压缩尾部只保留助手和工具消息，人类消息按需重放；旧推理块在每次压缩时自动裁剪
- 工具路径参数描述精简，绝对路径下 workdir 不再强制要求
- 进度指标统一从运行态映射读取，移除旧的双写路径

### 🧪 质量门禁

- TypeScript 类型检查、全量单元测试和 Playwright E2E 已通过

## v1.11.6
发布日期：`2026-06-10`
> 对比 `v1.11.5` → `v1.11.6`，共 `44` 个提交

### ✨ 你会直接感受到的升级

- **长对话切换更稳**：正在输出时切换 Session，消息区不再反复闪白或淡入，阅读位置也更少被打断
- **常用表达更容易复用**：用户消息可以保存为快捷回复，适合沉淀常用提示、流程口径和团队协作模板
- **更多偏好可按需配置**：可以决定关闭窗口时退出还是留在后台，也可以为 MCP Streamable HTTP 服务配置自定义请求头
- **发现新版本后更好读**：检查到新版本时，更新信息会显示在身份卡下方，不再挤在右侧

### 🐛 重要修复

- **发送后不再轻易丢底部位置**：本地发送、流式输出和跨 Session 切换时，长消息列表会更可靠地保持在正确位置
- **长对话摘要后仍保留最近指令**：自动整理上下文后，保存的上下文不再只剩摘要，会保留最近一轮用户消息，避免续聊时丢掉刚刚的要求
- **广播回复查看更稳定**：广播回复的标签栏保持固定，切换查看不同回复时不容易迷失当前位置
- **引导和快捷回复状态更干净**：已消费的引导状态不再刷新后重新出现，排队中的快捷回复草稿也会及时清理
- **MCP Header 配置更安全**：移除容易误导的敏感 Header 选项，减少误填鉴权信息的风险

### 📐 内部整理

- 收口长消息列表的滚动语义、意图识别和历史加载锚定逻辑，降低后续滚动回归风险
- 补齐 Session 切换、轻微滚动后切换和消息搜索滚动的回归覆盖
- 更新仓库 Agent 工作准则，让协作和发版边界更清楚

### 🧪 质量门禁

- TypeScript 类型检查、全量单元测试和 Playwright E2E 已通过

## v1.11.5
发布日期：`2026-06-10`
> 对比 `v1.11.4` → `v1.11.5`，共 `34` 个提交

### ✨ 你会直接感受到的升级

- **长消息性能优化默认开启**：超长回复和大量工具输出默认使用更顺滑的渲染路径；如果遇到滚动、搜索或选区异常，仍可在实验功能里关闭回退
- **长对话终于更稳了**：在很长的对话、空 Session 和多个 Session 来回切换时，消息列表会更可靠地停在该停的位置，不再让你反复手动拉到底
- **重要消息可以收起来再找回**：新增收藏消息能力，并优化从收藏页回到原会话的跳转体验，临时记下的关键信息不必再靠复制粘贴保存
- **消息上的操作更顺手**：右键菜单补齐常用消息动作，并收紧触发范围，想操作消息时更直接，不想操作时少打扰
- **复杂任务的先后关系更清楚**：Goal 的待办可以显示依赖说明，哪些事要先做、哪些事要等结果，会更容易看懂

### 🐛 重要修复

- **长消息列表减少白屏和跳动**：修复巨型任务块、顶部跳转、加载历史以及切换会话后偶发的空白、回跳和不到底问题
- **异常模型响应不再轻易打断对话**：对无效响应的识别和恢复更准确，遇到上游返回异常时更少直接中断
- **Goal 进度不再因模型切换倒退**：切换模型后，任务进度消息更稳定地保持当前状态
- **每日更新提示不再反复冒出来**：自动更新提示按天出现，减少重复提醒
- **品牌标识显示更一致**：关于页、应用图标和托盘图标的品牌视觉更统一

### 📐 内部整理

- 收口消息列表的底部锚定和滚动恢复逻辑，并用更接近真实长会话的 E2E 覆盖回归
- 整理协作内容块间距和虚拟列表分割细节，让长对话阅读噪音更少
- 补齐运行进度快照契约，降低长任务状态展示回退风险

### 🧪 质量门禁

- TypeScript 类型检查、全量单元测试和 Playwright E2E 已通过

## v1.11.4
发布日期：`2026-06-08`
> 对比 `v1.11.3` → `v1.11.4`，共 `75` 个提交

### ✨ 你会直接感受到的升级

- **长对话滚动更稳**：切换 Session、加载历史和页签来回切换时，消息列表更少闪烁、跳动或短暂空白
- **协作内容更清爽**：任务、广播和生成内容的展开层级更克制，减少内部执行痕迹对阅读的打扰
- **移动端浮层更顺手**：系统返回键可以关闭当前浮层，移动端操作更符合直觉
- **设置调整更即时**：实验设置和群模型设置保存后会更快反映到界面状态，减少保存后还像没生效的错觉

### 🐛 重要修复

- **虚拟消息列表不再容易丢位置**：修复贴底判断、加载更多、会话切换和流式输出中的多处滚动锚定问题
- **移动端界面残影减少**：修复侧边栏关闭残影和触摸滚动时的流式闪烁，窄屏使用更稳定
- **单聊归档确认更可靠**：单聊 Session 归档时确认流程更准确，降低误操作风险
- **群聊交接显示更及时**：handoff 后当前发言人状态会实时更新，减少协作状态和实际执行不一致

### 📐 内部整理

- 运行诊断上下文继续收口，执行 trace 能更稳定关联到一次具体运行
- 消息列表虚拟渲染补充切换场景 E2E，降低长对话和页签切换回退风险
- 关于页和聊天头部视觉层级清理，界面信息密度更接近实际使用场景

### 🧪 质量门禁

- TypeScript 类型检查、全量单元测试和 Playwright E2E 已通过

## v1.11.3
发布日期：`2026-06-05`
> 对比 `v1.11.2` → `v1.11.3`，共 `7` 个提交

### ✨ 你会直接感受到的升级

- **群成员列表更直观**：群成员管理里直接显示头像，成员识别更快，界面也更干净
- **右侧运行面板更整齐**：面板标签栏的对齐细节修正，查看运行信息时视觉层级更稳

### 🐛 重要修复

- **群聊交接接棒更准确**：Agent 交接后能更可靠识别前一个发言人和目标接棒者，减少交接后答非所托或空转

### 📐 内部整理

- Agent workspace 注入结构按职责收口，长期上下文边界更清楚
- 文件 diff 完整展开语义命名更明确，降低后续预览逻辑回退风险

### 🧪 质量门禁

- TypeScript 类型检查、全量单元测试和 Playwright E2E 已通过

## v1.11.2
发布日期：`2026-06-05`
> 对比 `v1.11.1` → `v1.11.2`，共 `5` 个提交

### ✨ 你会直接感受到的升级

- **文件变更预览更完整**：查看文件 diff 时会展开未变更内容，前后文不用再靠折叠区猜
- **单聊上下文更轻**：Agent 单聊会按需读取长期记忆，减少无关内容占用上下文

### 🐛 重要修复

- **Prompt 缓存标识更稳定**：缓存 key 会转换为安全格式，减少上游接口因标识格式导致的请求失败

### 📐 内部整理

- 测试环境禁用遥测上报，避免测试过程产生无意义数据
- 补齐 Prompt 缓存和 diff 预览的回归测试，减少相邻能力回退

### 🧪 质量门禁

- TypeScript 类型检查、全量单元测试和 Playwright E2E 已通过

## v1.11.1
发布日期：`2026-06-05`
> 对比 `v1.11.0` → `v1.11.1`，共 `48` 个提交

### ✨ 你会直接感受到的升级

- **使用统计面板全新改版**：Token 用量按日历热力图展示，一年的使用趋势一眼可读；面板整体更紧凑清晰
- **运行过程可以直接预览文件变更**：侧边栏支持查看文件 diff，不用离开当前对话就能确认代码改动
- **长任务执行中可以补充要求**：任务跑到一半发现需要调整，直接输入补充说明，Agent 会结合新要求继续推进
- **文件预览默认使用代码高亮模式**：查看代码文件时直接看到语法高亮，不再默认以原始文本展示

### 🐛 重要修复

- **群聊交接不再出现空回复**：Agent 之间交接任务时，偶发的无内容回复已修复，对话流不再中断
- **触摸屏滚动不再被流式更新拉回底部**：平板或触屏设备上，向上滚动时不会被正在生成的消息强制拉回
- **长对话压缩不再丢失当前工作目录**：上下文压缩后，Agent 对当前工作路径的记忆不会丢失
- **底部新消息提示不再误触发**：没有新消息时不再显示"新消息"提示
- **Goal 命令补全不再重复**：输入 `/goal` 时 tab 补全结果更准确
- **群成员编辑入口位置修正**：侧边栏的群成员管理入口显示在正确位置
- **空推理输出自动重试**：模型返回空推理内容时不再静默失败，会自动重试一次

### 📐 内部整理

- Markdown 渲染组件配置静态化，减少重复创建开销
- 附件存储文件名结构重构，为后续功能扩展做准备
- 错误诊断上报流程增加脱敏和大小裁剪，遥测数据更安全
- Session 运行态判断统一收口，减少状态不一致

### 🧪 质量门禁

- TypeScript 类型检查、全量单元测试（226 个测试文件，2354 个用例）已通过

## v1.11.0
发布日期：`2026-06-04`

### ✨ 更清楚地看见一次运行

- **新增更完整的运行面板**：本次运行、生成内容、任务进展和管理入口集中到右侧展示，聊天流不再被状态和产物挤满
- **生成内容更容易找到**：文件、补丁和附件会按工作区结构展示，目录可直接打开，路径也更容易复制
- **长任务进展更透明**：运行中的任务进度可以按步骤查看，当前做到哪里、还有什么没完成，一眼能扫到

### 🤝 群聊协作更稳

- **群聊模型策略可以统一配置**：群可以设置主模型和备用模型，同时保留各 Agent 自身配置作为回退，协作时更稳定
- **交接动作更克制**：群聊中的任务分派、广播和交接边界更清楚，减少不必要的来回转交

### 🐛 修复与稳定性提升

- **运行中补充的用户引导不再丢失依据**：执行过程中的补充要求会被更可靠地记录和追踪
- **运行结束后不再闪回进度**：任务完成或停止后，进度刷新不会再污染最终状态
- **手动停止更符合预期**：用户主动停止后会按取消状态收口，不再误报“模型没有返回内容”
- **模型失败后的恢复更稳**：上游请求失败、并发限流等场景下，会更准确地进入重试或备用模型链路
- **长上下文模型识别更准确**：部分大上下文模型会使用更合理的窗口预算，长对话更少被过早压缩
- **文件与图片工具更安全**：图片分析增加大小边界，文件访问追踪在写入后再编辑的场景下更准确

### 🧪 质量门禁

- TypeScript 类型检查、全量单元测试和 Playwright E2E 已通过

## v1.10.14
发布日期：`2026-06-02`
> 对比 `v1.10.13` → `v1.10.14`，共 `15` 个非合并提交

### ✨ 你会直接感受到的升级

- **默认 Goal 设置跟随当前 Session**：每个 Session 可以保留自己的默认 Goal 开关，切换任务时不再互相干扰
- **Goal 模式可以默认开启**：需要持续目标检查的任务可以更自然地进入 Goal 流程，减少手动切换
- **斜杠命令补全更可靠**：命令过滤、排序和替换更贴近输入预期，补全后不再留下多余内容
- **文件图片预览更直观**：文件预览里的图片可以直接查看，围绕图片继续讨论更顺手
- **项目 Hook 能在发送前介入**：用户消息发送前可以接入项目规则，为后续更精确的运行前检查打基础

### 🐛 重要修复

- **手动压缩不再丢用户消息**：整理上下文后仍能保留关键用户输入，减少长对话继续执行时的信息断层
- **引导消息状态更准确**：待发送提示和空消息占位更稳定，界面不再显得突兀或误导
- **更新安装退出不再误报崩溃**：正常安装更新导致的退出会被过滤，减少无意义的崩溃噪音
- **Goal 提示更少误导**：移除不适用的文件工具不可用提示，规划失败后的重试提示也更清楚

### 📐 内部整理

- **Goal 与斜杠命令测试补齐**：默认 Goal、斜杠参数和规划重试路径增加覆盖，减少相邻能力回退
- **Hook 使用说明补齐**：项目 Hook 的接入方式和使用边界有了更明确的文档

### 🧪 质量门禁

- **发版门禁通过**：TypeScript 类型检查、单元测试和 Playwright E2E 均已通过

## v1.10.13
发布日期：`2026-06-01`
> 对比 `v1.10.12` → `v1.10.13`，共 `25` 个非合并提交

### ✨ 你会直接感受到的升级

- **私聊也能使用 Goal 模式**：单个 Agent 对话可以进入带目标检查的执行流程，复杂任务不用必须切到群聊
- **项目 Hook 能参与运行前检查**：项目级规则可以在关键动作前给出阻断或提示，让执行更贴近项目约束
- **底部新消息提示更安静**：已经在底部时不再额外弹出新消息提示，滚动到底部按钮也减少闪烁
- **文件图片可直接预览**：侧边文件预览抽屉打开图片时会直接显示图片，点击即可进入内置图片查看器

### 🐛 重要修复

- **任务引导位置回到真实时间线**：运行中追加的引导会出现在当前最后一个内容块之后，不再插到已有回答前面造成顺序错觉
- **已应用引导刷新后仍可追溯**：已经进入当前任务的引导块会保留在目标消息中，刷新后不再丢失关键线索
- **上下文预算估算更准确**：工具定义占用会计入上下文整理预算，减少长任务里压缩后仍超窗的情况
- **Skill 重复加载更少打扰**：同一轮中已加载的 Skill 不再反复注入，减少上下文噪音
- **附件标题不再撑破消息**：超长文件名会稳定省略，图片和普通附件在窄容器里更少溢出

### 📐 内部整理

- **任务引导链路继续收口**：引导块顺序、状态初始化、最后一轮继续执行和文档语义保持一致
- **运行前 Hook 边界成型**：Hook 的阻断、提示和运行时指导边界更清楚，后续项目规则接入更可控
- **Goal Review 私聊路径补齐**：私聊 Goal 的规划、检查和最终回复链路完成基础闭环

### 🧪 质量门禁

- **发版门禁通过**：TypeScript 类型检查、单元测试和 Playwright E2E 均已通过

## v1.10.12
发布日期：`2026-06-01`
> 对比 `v1.10.11` → `v1.10.12`，共 `58` 个非合并提交

### ✨ 你会直接感受到的升级

- **企业微信外部会话更像独立对话**：外部渠道可以按真实会话自动创建和路由对话，减少不同客户或群聊消息串线
- **定时任务可以回到绑定渠道**：定时任务执行后的回复能外发到绑定渠道，让自动任务不只停留在应用内
- **消息搜索更可用**：搜索范围收口到当前对话，跳转后会定位并高亮目标位置，查历史对话更少迷路
- **模型重试状态更透明**：模型重试和备用模型接管会在消息中体现，用户能看见系统正在自救，而不是误以为卡住
- **选中文本引用更自然**：引用按钮只在合适时机出现，避免选择文字时被无关入口打扰

### 🐛 重要修复

- **企业微信长回复更完整**：修复长回复、超时提示和流式状态边界，减少外部渠道回复截断或提示时机不对
- **任务引导不再重复打扰**：运行中引导会按正确位置插入，完成后隐藏，刷新后也不再冒出已经处理过的提示
- **流读取异常会正确重试**：上游流读取错误会按连接失败处理并进入重试链路，减少一次网络波动直接终止回复
- **未知斜杠输入不再误触发 Skill**：普通 `/xxx` 输入不会被错误当作 Skill 命令，手动加载 Skill 的连续性也更可靠
- **广播停止态更准确**：停止广播后 Agent 会及时显示取消状态，避免界面还像任务仍在运行
- **上下文整理与消息更新更稳**：上下文整理、消息确认后的滚动位置和运行中状态更新边界更可靠

### 📐 内部整理

- **对话主概念继续收口**：事件、快照、上下文整理、前端视图和群协作任务进一步统一到同一套对话语义
- **渠道自动分流模型收紧**：企业微信自动路由、渠道目标归一化和对话映射存储边界更清楚
- **运行时临时状态边界收口**：临时输入、重试延迟和广播工作调用标识的职责更清楚
- **夜间记忆整理存储更可靠**：群记忆摘要、每日提取和 consolidation 存储链路补齐测试和故障边界
- **界面细节清理**：MCP 服务卡片、广播卡片、readFile 展开高度和焦点态样式更克制

### 🧪 质量门禁

- **发版门禁通过**：TypeScript 类型检查、全量单元测试和 Playwright E2E 均已通过

## v1.10.11
发布日期：`2026-05-28`
> 对比 `v1.10.10` → `v1.10.11`，共 `35` 个非合并提交

### ✨ 你会直接感受到的升级

- **上下文过长时恢复更稳**：模型窗口溢出后会按目标收缩上下文，并限制摘要回退长度，长对话更少因为上下文过大中断
- **检查更新下载更可靠**：下载前会重新检查最新版本，避免拿着旧更新信息去下载
- **文件引用更顺手**：文件预览支持选区引用，引用行号展示更准确，围绕代码或文档片段追问更自然
- **Skill 补全更可靠**：打开 Skill 补全时会刷新列表，确保可用 Skill 更及时地出现在候选项里

### 🐛 重要修复

- **Goal Review 最终回复实时显示**：监督检查结束后的最终回复会正常流式呈现，不再等到结束才出现或显示不完整
- **引导消息刷新后不再重现**：任务引导消息在刷新和重载后保持正确状态，避免已经处理过的提示再次冒出来
- **广播长回复不再撑爆上下文**：后台广播处理长回复时更稳，减少因为上下文溢出导致的失败
- **企业微信工具状态更准确**：外部渠道会显示工具处理中状态，工具状态边界也更稳，不再让用户误以为回复停住
- **上游请求失败识别更准确**：模型上游请求失败会被归类为连接错误，退出前配置会正确落盘

### 📐 内部整理

- **Goal 模式执行纪律收紧**：完成判定提示和执行边界更明确，减少监督流程误判
- **发版前回归问题收口**：集中修复交叉 review 发现的状态、上下文和边界问题，减少相邻能力互相回退
- **CLI 版本信息修复**：关于页版本展示与实际包版本保持一致

### 🧪 质量门禁

- **发版门禁通过**：TypeScript 类型检查、全量单元测试和 Playwright E2E 均已通过

## v1.10.10
发布日期：`2026-05-27`
> 对比 `v1.10.9` → `v1.10.10`，共 `30` 个非合并提交

### ✨ 你会直接感受到的升级

- **消息引用更顺手**：选中文本后可直接引用到输入框，回到上下文追问或摘录重点更快
- **任务引导更清楚**：执行过程中需要补充信息时，会以独立引导消息呈现，用户更容易理解下一步该做什么
- **输入框状态更自然**：聚焦和激活态视觉更轻，快捷命令也能保留当前草稿，减少误清空

### 🐛 重要修复

- **加载更多历史消息不再跳动**：点击“加载更多消息”后当前阅读位置会被钉住，不再突然上跳或下跳
- **网络连接异常提示更友好**：连接错误会被识别为可重试模型错误，前端展示更可理解的失败说明
- **Session 切换更稳定**：切换讨论时成员和加载状态更少出现短暂错位或残留
- **运行时引导状态更可靠**：引导消息的隐藏、转移和队列状态保持一致，避免重复展示或状态不同步
- **长回复与空回复边界更稳**：流式持久化、压缩重试和空回复状态处理更完整，减少异常卡住

### 📐 内部整理

- **任务引导链路收口**：从消息块骨架、状态机到运行时注入形成完整边界，便于后续扩展
- **Skill Hub 文档整理**：合并网页详情链接和设计文档，Skill 相关入口更易维护
- **消息可见性类型补全**：补齐引导消息块的可见性判断，提交阶段主进程类型检查保持完整

### 🧪 质量门禁

- **发版门禁通过**：TypeScript 类型检查、全量单元测试和 Playwright E2E 均已通过

## v1.10.9
发布日期：`2026-05-27`
> 对比 `v1.10.8` → `v1.10.9`，共 `2` 个提交

### 🐛 重要修复

- **企业微信回复超时不再中断对话**：外部渠道回复超时后仅提示超时信息，继续等待后续执行，不再直接终止整轮运行
- **命令按钮不再误显示 Skill 列表**：点击工具栏命令按钮只展示系统命令（`/clear`、`/compact`、`/goal`），输入 `/` 触发补全时才展示 Skill 搜索结果

## v1.10.8
发布日期：`2026-05-27`
> 对比 `v1.10.7` → `v1.10.8`，共 `29` 个非合并提交

### ✨ 你会直接感受到的升级

- **企业微信长对话回复更稳**：长 Session 触发上下文整理时不再容易卡住，外部消息更少出现长时间无响应
- **上下文整理失败会自动自救**：摘要服务异常或整理结果仍过大时，会自动降级为本地裁剪，优先保证本轮回复继续执行
- **Skill 可手动按需加载**：在消息开头输入 `/skill-name` 即可为本次请求加载指定 Skill，专业任务不必等系统自动判断
- **长对话整理更稳**：超长上下文会按模型窗口分块摘要，减少整理时因上下文过大导致失败
- **剪贴板文件粘贴更可靠**：修复文件粘贴路径处理问题，粘贴上传更少失败

### 🐛 重要修复

- **企业微信回复 loading 不再卡住**：修复企业微信渠道在回复无内容、出错等边界情况下 loading 状态永远不消失的问题
- **群聊单 @ 正确路由**：修复群聊中只 @ 一个 Agent 时发言人没有切换到被 @ Agent 的问题
- **Skill 加载后能被可靠记住本轮上下文**：手动加载 Skill 后，模型看到的 Skill 指令会正确进入会话上下文，避免后续保存或压缩时丢失本轮执行依据
- **Skill 指令不会污染子任务和广播**：任务继承与群内广播会过滤一次性 Skill 指令，避免把“本轮专用”的指令扩散给其他 Agent
- **企业微信超时兜底修复**：外部渠道执行超时后会正确收口流式状态并返回失败提示，避免队列永久卡住
- **本轮用户消息不会被裁掉**：强制裁剪会保护当前用户输入，避免为了恢复上下文而丢失刚发送的问题
- **快捷命令不再重复触发**：`/compact`、`/clear` 等直接发送命令统一走发送锁，避免连续按键造成重复执行
- **Goal 完成后不再误续监督模式**：Goal 已完成后，后续普通消息不会继续被路由到旧监督者
- **Goal Review 结论不再重复展示**：完成结论从工具详情中剥离，只在回复区域展示一次
- **聊天滚动锚定更稳**：阅读历史时不会被新输出强行拉回底部

### 📐 内部整理

- **渠道回复生命周期重构**：提取 sendTextReply / finishStartedStreams，所有退出路径统一关闭 stream，消除 ChannelManager 重复代码
- **上下文压缩失败路径收口**：首轮摘要失败后进入确定性裁剪路径，压缩生命周期事件和测试同步更新
- **Skill 上下文边界拆分**：会话保存、当前请求输入、任务/广播继承分别使用不同清理规则，避免一个过滤函数承担多种语义
- **压缩保护窗口更准确**：压缩时只把真实用户消息作为用户意图边界，不再把系统提醒或一次性 Skill 指令当作用户输入
- **摘要预算接入真实模型窗口**：上下文整理按实际模型输入窗口决定是否分块，减少靠异常兜底

### 🧪 质量门禁

- **类型检查与自动化测试通过**：提交阶段类型检查与全量单元测试已通过；重新发布前继续执行 E2E、打包和上传发布产物

## v1.10.7
发布日期：`2026-05-26`
> 对比 `v1.10.6` → `v1.10.7`，共 `44` 个非合并提交

### ✨ 你会直接感受到的升级

- **用户消息可以重新发送**：用户消息操作栏新增重发按钮，点选即可重新提交消息，无需手动复制再粘贴
- **流式输出上滚不再被拉回**：阅读中向上滚动时，新内容到达不再强制拉到底部，读长回复更自在
- **限流自动退避重试**：模型返回限流错误时会自动退避重试，减少因瞬时限流导致的发送失败
- **Goal Review 过程可见且结论更准确**：监督模式检查时会展示流式输出，且只采用最后一个有效结论，避免中间过程被误判为最终结果
- **使用统计面板增加常用话术**：统计面板新增常用话术统计，支持一键加入快捷回复，高频提示词不再需要反复手动输入
- **Tool Call 看板**：遥测面板新增工具调用统计看板，便于诊断和优化 Agent 工具使用情况
- **粘贴目录自动打包上传**：粘贴文件目录到输入框时自动打包为压缩包上传，拖拽和粘贴识别更准确
- **首 token 前显示加载状态**：发送消息后到第一个 token 到达之间有明确的加载指示，减少"发了没反应"的等待焦虑

### 🐛 重要修复

- **企微渠道稳定性修复**：修复企微连接卡死和流式回复过期降级问题，长时间对话更稳定
- **单聊空 Session 修复**：修复直聊场景下自动创建空 Session 的问题，减少无效会话残留
- **Goal 单 @ 切换发言人**：Goal 模式下单 @ 切换发言人正常工作，减少协作错位
- **Goal 工作区实例隔离**：每次 Goal 执行使用独立工作区，避免多次执行之间的状态污染
- **压缩状态消息同步**：上下文压缩后状态提示及时更新，减少状态与实际不一致
- **空文本块不再渲染为空白行**：模型返回的空文本内容不再在界面留下空白行
- **移动端折叠消息宽度修复**：移动端折叠消息不再撑爆布局
- **Sandbox 启动失败修复**：修复沙盒模式预加载依赖导致的应用启动失败
- **渲染进程 Node 路径依赖修复**：移除渲染进程中对 Node 路径模块的不当引用，减少打包异常

### 📐 内部整理

- **上下文压缩架构重构**：压缩逻辑从 WorkerRuntime 抽离为独立 Compactor 子系统，多轮重试、token 估算和状态判断各自收口
- **日志路径架构集中化**：日志目录解析和五类目录结构统一集中管理
- **System Prompt 拼接结构优化**：提示词拼接逻辑结构化重构，更易维护和扩展
- **遥测上报策略完善**：补充遥测上报边界处理和策略细节
- **定时任务持久化调度器生命周期修复**：调度器 shutdown、reinit、并发初始化等边界条件更健壮
- **思考过程标题样式统一**

### 🧪 质量门禁

- **定时任务持久化 E2E 补充**：新增 Playwright E2E 覆盖定时任务创建、编辑、启用、触发和禁用完整流程

## v1.10.6
发布日期：`2026-05-25`
> 对比 `v1.10.5` → `v1.10.6`，共 `18` 个提交（含 `9` 个非合并提交）

### ✨ 你会直接感受到的升级

- **Goal Review 过程更清楚**：监督模式完成检查会展示工具调用与最终回复，失败时也会明确提示为什么需要重试
- **长对话更少误判超限**：上下文整理后只轻微超过估算上限时会继续尝试执行，减少因估算误差导致的提前失败
- **思考状态不再一直计时**：模型开始输出答案或新的思考块后，旧思考状态会自动结束，界面状态更可信
- **安装包更轻**：打包时裁剪图片处理依赖中的非运行文件，并只保留中英文 Electron 语言资源，下载安装负担更小

### 🐛 重要修复

- **Goal Review 兼容性修复**：兼容工具结果被包装成 JSON 的情况，避免明明已提交结论却被当成无效结果
- **Goal Review 错误提示修复**：缺少工具调用、工具无结果、参数校验失败或结构不完整时，会给出可操作的重试原因
- **长上下文整理兜底修复**：主动整理后仍超限时会再进行更激进的修复，无法修复时才返回明确的上下文超限
- **思考块残留修复**：旧的思考块不会因为没有显式结束事件而持续显示为运行中

### 📐 内部整理

- **消息块合并逻辑去重**：广播响应状态更新逻辑收口到共享实现，减少前后端投影行为分叉
- **群聊发言人回退逻辑精简**：提取群成员回退选择逻辑，降低重复分支
- **打包裁剪增加边界保护**：裁剪脚本仅处理安装包解包目录内的图片处理依赖，并保留运行时必需文件

### 🧪 质量门禁

- **发版门禁通过**：类型检查、全量单元测试、Playwright E2E 和多平台打包均已通过

## v1.10.5
发布日期：`2026-05-24`
> 对比 `v1.10.4` → `v1.10.5`，共 `91` 个提交（含 `70` 个非合并提交）

### ✨ 你会直接感受到的升级

- **Goal 模式入口更自然**：Goal 模式迁入斜杠命令，补齐入口与执行回归，发起监督式协作更直接
- **使用统计更好读**：新增使用统计管线，并优化桌面端、移动端和浏览器访问场景，token、缓存和运行用量更容易核对
- **斜杠命令点击更顺手**：点击 `/clear`、`/compact` 会直接发送，其他命令仍回填输入框，减少多余确认
- **Skill 触发更可靠**：可用 Skill 会以更清楚的任务路由方式提示，Agent 更容易在需要专业能力时先加载对应 Skill
- **长内容显示更稳**：消息、任务块和协作子块改用更克制的虚拟渲染与折叠布局，长回复滚动更顺，不再轻易出现零高度或宽度坍塌
- **夜间整理覆盖更完整**：夜间整理支持所有群和 Agent，群记忆整理链路更清晰，跨范围保存不再容易回退
- **图片生成通道更可靠**：OpenAI 图片生成切换为官方 SDK 调用，减少兼容层差异导致的失败

### 🐛 重要修复

- **长对话超限自救修复**：上下文溢出识别、主动压缩后仍超限、旧压缩状态回退等场景已收口，长 Session 更少卡死在超限边界
- **Goal Review 不再丢结论或重复结论**：修复普通回复跳过 Review、多次结论静默竞争、完成态重复展示和重复触发问题
- **流式思考状态更干净**：残留流式状态会在快照和消息投影中归一化，思考完成后自动折叠，刷新后更少看到“还在生成”的假象
- **斜杠命令不再自己弹回**：修复命令弹窗自动复现和相关类型、断言问题，命令输入更可控
- **文件工具路径边界更准**：绝对路径访问会正确校验越界，文件访问历史跨轮次识别也更可靠
- **远程访问提及更准确**：提及名称包含空格时能正确切换发言人，减少外部渠道协作错位

### 📐 内部整理

- **监督模式工作区收口**：Goal 工作区改为文件优先模型，todo 嵌套任务和执行入口有更完整测试覆盖
- **群记忆维护边界收紧**：群记忆整理改为 manifest 驱动，两阶段整理和可观测信号更清楚
- **消息列表渲染链路瘦身**：协作子块、工具调用卡片、思考过程折叠箭头和头部高度统一收口
- **编码规范与交互文档补强**：补齐命令菜单交互规则、企业微信文档 MCP 配置教程和广播递归防护设计说明

### 🧪 质量门禁

- **发版门禁通过**：类型检查、全量单元测试和 Playwright E2E 已通过，发布包已按流程生成并重新上传

## v1.10.4
发布日期：`2026-05-22`
> 对比 `v1.10.3` → `v1.10.4`，共 `31` 个提交（含 `20` 个非合并提交）

### ✨ 你会直接感受到的升级

- **OpenAI 官方通道更稳定**：默认启用 Responses 路径，并补齐工具调用、图片生成和推理模型场景的兼容处理
- **长对话缓存更容易判断**：同一 Session 下会使用稳定缓存标识，诊断时能看到缓存命中 token 和推理 token 的完整用量
- **Skill 获取方式更灵活**：Skill 来源支持更多类型，SkillHub 的包分发和 Web 文件安装链路更完整
- **Markdown 预览更可靠**：预览里的相对路径资源会按当前文件位置解析，图片和本地资源更少丢失

### 🐛 重要修复

- **推理 token 观测修复**：Responses 返回的推理用量和缓存用量会被正确读取，减少看板和日志里的 token 误差
- **上下文状态隔离修复**：上下文状态按独立运行单元隔离，减少不同 Session / Agent 之间状态串扰
- **压缩命令不再误拦截**：跨 Session 使用上下文压缩时，斜杠命令识别更准确，避免正常命令被错误吞掉
- **工具调用加载状态更准**：工具调用是否仍在执行的判断更可靠，界面不再因为状态误判而提前结束加载感

### 📐 内部整理

- **Responses 请求链路可观测性增强**：补充本机调试 dump、请求前缀分析脚本和回归测试，便于排查缓存命中与工具循环问题
- **Skill Hub 分发链路收口**：补充包安装、来源管理、前端拆分和设计文档，为后续公开分发打基础

### 🧪 质量门禁

- **发版门禁通过**：类型检查和全量单元测试已通过，核心 Responses、Skill 安装、Markdown 预览和上下文状态链路均有回归覆盖

## v1.10.3
发布日期：`2026-05-21`
> 对比 `v1.10.2` → `v1.10.3`，共 `58` 个提交（含 `49` 个非合并提交）

### ✨ 你会直接感受到的升级

- **长对话更稳**：自动上下文整理在模型报上下文过长时会继续自救，不再因为前一次整理尝试失败就过早放弃
- **空回复不再装作成功**：模型连续返回空内容时会自动重试，仍失败会明确提示先压缩上下文后再试
- **GPT-5 系列体验更清楚**：补齐 GPT-5.4 / GPT-5.5 的上下文窗口配置，并改善推理类模型的通道识别
- **消息状态更可信**：运行中、完成、失败、取消等状态会被持久化，切换 Session 或刷新后更少出现状态错乱
- **定时任务能绑定 Session**：自动任务可以固定发送到指定 Session，减少任务跑到错误上下文里的风险

### 🐛 重要修复

- **上下文超限识别更准确**：模型返回 `context_length_exceeded`、`too many tokens` 等错误时，会正确进入上下文处理链路
- **OpenAI 通道恢复稳定**：回退不成熟的 Responses 续接链路，避免工具循环和兼容代理场景出现空消息或请求裁剪错误
- **停止回复按钮更稳定**：流式回复中按钮不会过早消失，用户可以持续中止正在生成的内容
- **流式消息显示修复**：切换 Session 后 token 用量和消息状态能正确回填，减少重复渲染和状态残留
- **外部渠道文件发送去重**：同一路径文件不会被重复发送，降低外部 IM 渠道的噪音

### 📐 内部整理

- **消息生命周期模型收口**：新增并落地 `status` 持久化边界，逐步减少对旧流式兼容字段的依赖
- **上下文整理链路补强**：整理结果会做预算校验，整理异常会被收口为结构化错误，避免错误边界外泄
- **遥测看板重设计**：诊断面板更聚焦运行现场，便于排查 token、缓存和长上下文问题

### 🧪 质量门禁

- **关键回归测试补强**：补充空响应重试、上下文超限识别、消息状态投影、OpenAI 通道和自动上下文整理相关测试

## v1.10.2
发布日期：`2026-05-20`
> 对比 `v1.10.1` → `v1.10.2`，共 `5` 个提交

### ✨ 你会直接感受到的升级

- **工具调用界面更安静**：工具还在执行时不能展开详情，避免看到未完成内容；执行结束后可以立即查看完整参数、结果和差异
- **Token 用量展示更完整**：缓存命中的 token 也会被计入展示，长上下文和缓存效果更容易判断
- **暗色模式更新说明更清楚**：更新说明预览区背景更协调，夜间查看不再突兀

### 🐛 重要修复

- **Intel Mac 启动崩溃修复**：修复 Intel 芯片 Mac 打开应用时可能因图片处理组件缺失而直接报错的问题

### 📐 内部整理

- **跨平台打包链路补强**：Mac 打包会同时带上 Intel 运行所需组件，并在异常退出时清理临时依赖

### 🧪 质量门禁

- **发版门禁通过**：类型检查和单元测试已通过，工具调用卡片补充了执行中不可展开的回归测试

## v1.10.1
发布日期：`2026-05-20`
> 对比 `v1.10.0` → `v1.10.1`，共 `11` 个提交

### ✨ 你会直接感受到的升级

- **工具执行中界面更稳定**：工具还在运行时不再允许展开详情，避免看到未完成参数或半成品结果；执行结束后仍可正常查看详情
- **模型能力识别更准确**：Claude、Gemini 和 GPT-5 系列会自动匹配原生供应商通道，减少模型名和通道配置不一致导致的调用问题
- **Token 用量展示更完整**：模型缓存命中的 token 也会展示出来，方便判断长上下文和缓存是否真正生效
- **新模型配置已补齐**：更新 GPT-5.4 / GPT-5.5 的上下文窗口配置，长上下文使用边界更清楚

### 🐛 重要修复

- **企微机器人升级后配置恢复正常**：修复 v1.9.3 升级到 v1.10.0 后历史企微机器人配置可能不生效的问题，旧配置会自动迁移到新的 Session 字段
- **渠道配置迁移更可靠**：修复配置迁移后未及时落盘的问题，减少重启后迁移结果丢失的风险
- **群聊主执行者状态显示修复**：群聊中主执行者的上下文状态会正确显示，减少协作时的状态误判
- **跨平台打包脚本修复**：修复 scoped 包版本解析和 sharp 跨平台依赖下载问题，提升发布打包稳定性

### 📐 内部整理

- **Anthropic 工具循环缓存优化**：优化工具循环中的前缀缓存使用，降低重复上下文处理成本
- **发布流程文档补强**：补充发布说明和上传顺序要求，确保检查更新能先拿到版本摘要

### 🧪 质量门禁

- **工具卡片回归测试补强**：新增执行中不可展开的回归测试，并覆盖相关渲染链路

## v1.10.0
发布日期：`2026-05-19`
> 对比 `v1.9.3` → `v1.10.0`，共 `281` 个非合并提交（含 merge 共 365）

### ✨ 你会直接感受到的升级

- **快捷回复和斜杠命令更顺手了**：输入框新增 ⚡ 快捷回复入口，点选即可发送；`/clear`、`/compact` 等命令补全后可直接回车执行
- **单聊现在支持多个独立 Session**：你可以和同一个 Agent 并行展开多个话题，历史、草稿和状态彼此隔离，不再互相串味
- **长对话管理更清楚**：上下文整理提示、进度反馈、夜间整理记录和群组整理配置都更完整，长聊时更容易知道系统正在做什么
- **群协作收尾更完整**：监督模式结束后会自动补上一段真正面向用户的最终结论；群聊记忆也能更稳定地沉淀和整理
- **错误提示和版本说明更易读**：错误信息更容易判断发生了什么；应用内也可以直接查看随版本打包的发布说明
- **移动端和文件预览体验更好**：移动端可查看当前上下文占用；侧边文件预览抽屉支持拖拽调整宽度

### 🐛 重要修复

- **外部渠道更稳定**：修复微信个人号重连、WebSocket 重连与回压恢复等问题，外部 IM 通道更不容易断线后失效
- **旧渠道配置兼容更好**：历史 `target.kind='agent'` 配置现在会正确落到默认单聊 Session，减少升级后的静默异常
- **单聊多 Session 更可靠**：修复新建 Session 首条消息可能无法执行、默认 Session 元数据竞态、归档状态错位、旧消息兼容读取和按日期漏查等问题
- **群协作链路更一致**：修复群任务、广播和监督模式中的上下文透传问题，减少同一句话走不同链路却得出不同结果的情况
- **消息状态、模型报错和移动端显示更稳**：减少界面抖动、状态残留、限流误判、备用模型提示残留，以及移动端文字遮挡和未读标记异常
- **CLI、远程访问、图片与附件体验补强**：支持复用已有访问 token，补齐远程访问压缩与缓存，图片加载失败不再显示破碎图标，附件上传性能也有改善

### 📐 内部整理

- **Session 语义继续收口**：进一步清理旧命名和兼容残留，让单聊、群聊和消息链路围绕统一的 Session 概念工作
- **运行时与上下文链路继续瘦身**：拆开不同运行场景，降低长对话、流式消息和复杂工具输出的膨胀成本

### 🧪 质量门禁

- **关键回归测试补强**：补齐自动上下文整理、会话切换隔离、任务编排、重试链路等关键回归测试
- **发版门禁通过**：类型检查、vitest、Playwright E2E 已按流程执行

## v1.9.3
发布日期：`2026-05-12`
> 本次为 v1.9.3 重新发布，补齐旧 tag 之后合入但仍属于 1.9.3 发布范围的修复与改进。
> 对比 `v1.9.2` → `v1.9.3`，共 `30` 个提交

### ✨ 新特性

- **MCP 服务应用到 Agent**：MCP 设置面板支持将服务批量应用到 Agent，并在列表展示已应用数量
- **Integration 创建时间**：集成列表展示创建时间，提升配置审查可读性

### 🐛 修复

- **Windows 更新发布链路**：修复 Windows 安装包图标、签名配置与自动下载 / 安装流程，补充下载进度和完成状态
- **工具命名冲突**：修复工具命名冲突导致调用异常，并简化无效目标提示
- **Skill 路径与 slash 触发**：收紧 Skill 路径处理与 slash command 触发行为
- **Tool Call 停止状态**：停止运行时正确 settle tool calls，避免界面残留错误状态
- **群记忆设置弹窗尺寸**：优化桌面端与移动端弹窗尺寸，改善设置内容的阅读和操作体验
- **E2E 测试数据隔离**：每次 Electron 启动前重建测试数据目录，避免测试间残留 Agent 污染后续用例

### 📐 重构

- **MCP 产品文案收口**：中文界面统一使用 “MCP 服务”，代码与协议层保持 `McpServerConfig` / `mcpServers` 不变
- **设置导航分组重整**：设置导航整理为 Agent、能力、连接、自动化、应用，MCP 服务归入 Agent 分组
- **存储与应用抽屉去重**：抽出共享 JSON / text 文件 I/O、SwarmExecutor 测试 mocks、AgentAssignmentDrawer 与共享样式
- **Swarm Direct Session 概念收口**：明确单聊也创建 Session、`sessionId != agentId`、`scope.agentId` 才是 direct session 归属真相、Tab 只是 UI state

### 🧪 测试

- **MCP 应用到 Agent E2E**：新增设置面板 E2E，覆盖创建 Agent、添加 MCP 服务、应用到 Agent、保存后回显确认
- **E2E 文案同步**：测试选择器同步 “MCP 服务” 产品文案
- **聊天主操作按钮 E2E**：发送按钮断言兼容创建 Agent 后仍在回复中的停止状态，减少时序误判

## v1.9.2
发布日期：`2026-05-12`
> 对比 `v1.9.1` → `v1.9.2`，共 `53` 个提交

### ✨ 新特性

- **Agent 头像上传**：支持为 Agent 上传头像，并将头像入口迁移到身份 Tab，让头像回到“身份表达”而不是通用设置
- **独立 Agent Kernel / Loop**：引入独立 AgentKernel 与 AgentLoop，为后续执行核心迁移、retry/fallback/tool loop 收口打基础
- **模型 fallback 内联提示**：模型失败时给出更清晰的内联提示，引导用户理解系统正在处理什么
- **图片预览复制**：图片预览支持直接复制图片
- **结构化日志与遥测策略**：补充 structured logging 与 telemetry policy，为运行诊断和后续日志系统演进打底
- **Kernel provider options**：根据 reasoning effort 推导 kernel provider options，减少硬编码配置

### 🐛 修复

- **发布后功能问题收口**：修复 AgentKernel 历史 assistant metadata 污染、AvatarUploader object URL 清理、重复 stream start 清空内容、pending DB writes / message queue 微任务让出等问题，并补充测试
- **多人 @ 广播携带上下文**：自动广播和 tool broadcast 会把当前上下文传给子 Agent，避免子 Agent 脱离讨论现场回答
- **writeFile append 防护策略**：允许未读既有文件 append，但 append 后不标记为 known，避免绕过 overwrite 保护
- **Node 类型检查错误**：修复 node/main 类型检查问题
- **移动端 taskId 溢出**：限制任务结果 ID 展示宽度，移动端不再挤爆布局
- **图片查看器 toast import**：修复图片查看器 toast 引入问题
- **打开当前群线程目录**：从群聊中打开目录时定位到当前 thread
- **流式消息持久化节流**：降低 streaming persistence 写入压力
- **数据库写入优雅关闭**：关闭阶段等待 pending DB writes，减少退出时丢写风险
- **slash clear 命令**：直接发送清空命令，避免多余确认路径
- **CLI runtime 更新检查**：CLI 模式跳过自动更新检查
- **Markdown 内联路径识别**：收紧路径检测规则，减少误识别
- **Broadcast 部分失败处理**：广播部分失败时语义更稳定
- **LLM crash breadcrumbs**：补充 LLM 崩溃 breadcrumb，提升诊断能力
- **Electron 下载镜像**：固定 Electron 42 下载镜像，改善安装稳定性

### 📐 重构

- **MessageInput 瘦身**：拆出 draft、supervisor selection、attachment intake、popup position、mention dropdown 等局部模块，保留行为不变
- **ToolCallCard 展示 helper 拆分**：将参数摘要、diff/read preview/path/language 等纯展示逻辑抽出，组件更薄
- **Pending 用户消息动作拆分**：撤回、重试、optimistic message 清理与 refill/send 副作用收口到独立模块
- **TaskId 跳转胶囊**：抽出可截断、可访问的任务 ID 跳转组件，避免重复 chip 样式
- **Swarm runtime 概念文档**：澄清 runtime concepts，减少 group/thread/task 等概念混用
- **测试 mock 对齐**：补充 renderer mock transport metadata，修正 swarm usage 期望

## v1.9.1
发布日期：`2026-05-11`
> 对比 `v1.9.0` → `v1.9.1`，共 `27` 个提交

### ✨ 新特性

- **Token 用量遥测**：上报 LLM 调用级与运行完成级 token usage，区分 input/output/total/cached/reasoning token，便于评估各版本上下文优化效果
- **上下文维护命令入口**：新增 context maintenance command entry，便于触发上下文整理维护
- **HTML 代码块预览**：Markdown 中 HTML code block 支持预览

### 🐛 修复

- **Native 崩溃诊断增强**：捕获 Electron Crashpad native dump，记录主进程 breadcrumbs，并将 JS crash log 附带最近上下文
- **文件工具 review blockers 收口**：applyPatch schema 暴露 `patch`、兼容 legacy `input`；文件修改强制先读；rename 覆盖和 rename-to-self 边界修复
- **跨平台文件预览路径**：修复相对路径与跨平台路径在 preview 中的解析和展示
- **深色文件预览对比度**：改善暗色模式下文件预览可读性
- **监督模式发送入口状态**：发送时同步 supervisor speaker，输入框 active 状态与 picker 表达更清晰
- **群发 @all 确定性**：at-all broadcast 行为更稳定
- **流式输出期间顶部按钮可用**：streaming 时仍允许顶部按钮交互
- **Markdown ToolCall 属性展开**：修复 toolcall props 展开能力
- **消息输入工具栏布局**：工具栏堆叠到 textarea 下方，降低拥挤
- **重复 compact 命令防御**：避免 context compact 命令重复执行
- **LLM 调用遥测**：补充 LLM call telemetry，便于问题追踪
- **聊天渲染性能**：优化 chat render performance
- **崩溃日志与内存预警**：preload 补传 error stack；CrashLogWriter 补 pid/uptime/memory；信号处理与 MemoryMonitor 自适应采样、OOM 预警
- **AI 依赖升级**：升级 AI 依赖以修复已知问题、提升稳定性

### 📐 重构

- **文件工具协议升级**：readFile/writeFile/editFile/applyPatch 要求绝对 workdir；path/patch 路径必须相对 workdir，拒绝绝对路径、`..` 和逃逸；writeFile 支持 append/overwrite
- **applyPatch 参数命名统一**：`input` 正式重命名为 `patch`
- **Swarm 核心概念文档**：补充 group/thread/speaker 等核心概念定义
- **Supervisor checkpoint 文档**：明确 runtime checkpoint 行为与边界
- **checkpoint 数量默认值调整**

## v1.9.0
发布日期：`2026-05-09`
> 对比 `v1.8.11` → `v1.9.0`，共 `33` 个提交

### ✨ 新特性

- **Swarm Supervisor 模式**：移除 LLM 可见的 `runPlanStep`，改为 runtime 自动调度 ready todos；引入 checkpoint/verdict 机制，supervisor 负责 goal/criteria/异常裁决与最终验收；skip/retry/revise/terminate 语义校验与完备边界处理
- **patch 工具显示 diff 及文件列表摘要**：ToolCallCard 中 patch 操作显示结构化 diff 和变更文件列表
- **用户消息乐观渲染 + 状态指示器**：发送消息时立即显示，附带发送中/失败状态指示
- **每日首条消息触发更新检查**：自动更新检查从启动时改为每日首次发消息后静默触发
- **PropertyList 截断值 tooltip**：截断的属性值 hover 显示完整内容

### 🐛 修复

- **Supervisor runtime correctness 收口**：skip_todo 保留 todo 写 skippedTodoIds；retry_todo 只清 failed/killed；revise_plan 作为新 plan 版本边界清理旧关联；invalid verdict 同 checkpoint 最多 3 次重试；checkpoint budget exhausted 明确终止
- **Supervisor verdict 工具显示**：supervisor 裁决工具在 UI 中正确展示
- **Reasoning model 无回答时重试**：reasoning model 返回空回答时，用 remainder prompt 重试一次
- **Agent maxTokens 清空后恢复**：保存时清空 maxTokens 不再回退到旧值 4096
- **暗色主题代码预览对比度**：改善暗色模式下代码块的可读性
- **Swarm task 生命周期补全**：waitTask 与 swarm task status 对齐；killTask 收敛为只作用于 active task；finish gate 自动 waitTasks 收口；startQueuedTask 防御同步 throw
- **超出上下文时压缩到 50% 上下文长度**：避免压缩后仍接近上限导致反复压缩
- **Swarm 超并发任务排队**：超出并发上限的任务自动排队
- **流式输出时滚动行为**：向上滚动不再被强制拉回底部；滚动到底部判定阈值从 60px 降至 30px
- **PropertyList 嵌套截断**：嵌套对象/Markdown 被 max-height 截断只显示一行
- **PropertyList tooltip scrollbar 样式**：滚动条样式应用到正确的元素
- **ToolCallCard argSummary tooltip**：始终显示，不遗漏
- **AI-SDK 依赖升级**：修复 Responses API 新事件类型解析报错
- **electron-updater 依赖位置**：移至 dependencies 并排除 npm publish

### 📐 重构

- **PlanTask → Todo 领域语言统一**：类型与字段重命名为 Plan→Todo→Task 三层模型
- **SwarmExecutor 依赖收紧**：依赖 OrchestratorThread，Group/Thread 边界收紧
- **contextId 参数清理**：砍掉冗余 contextId 参数、缓存 getGroup()、speaker 写入归属 GroupChat
- **侧边栏线程计数与 pin 图标位置互换**：线程计数在 pin 图标之前
- **测试期望更新**：AgentConfig capabilities 断言对齐 disabledTools 字段

## v1.8.11
发布日期：`2026-05-08`
> 对比 `v1.8.10` → `v1.8.11`，共 `17` 个提交

### ✨ 新特性

- **ToolCallCard 参数 tooltip**：summary 区域 hover 显示完整参数，不用展开卡片
- **提示词文件边界定义**：增加文件边界定义，强制正交
- **夜间记忆整理提示词纪律收紧**：两轮收紧，避免整理时越界

### 🐛 修复

- **CLI 模式启动崩溃**：electron/electron-updater 改为延迟 require，CLI 模式不再触发 Electron 依赖
- **cli.vite.config.ts 兼容 Node 24 ESM**：`__dirname` → `import.meta` 适配
- **group meta.json 缺少 id**：fallback 到目录名作为 groupId
- **设置面板按钮风格统一**：编辑/删除按钮统一为 ghost/danger variant + 图标 + 文字标签，删除 54 行死 CSS
- **MCP 面板 server.type 为空崩溃**：undefined 时 fallback 到默认类型

### 📐 重构

- **侧边栏时间和状态点位置互换**：状态点在标题行，时间在副标题行
- **Memory Growth Panel UI 简化**：合并卡片、内联状态、修复 toggle 反馈
- **Review 修复**：阈值调整、重复检测、提示词纪律、死 CSS 清理、fileAgentId 一致性

## v1.8.10
发布日期：`2026-05-08`
> 对比 `v1.8.9` → `v1.8.10`，共 `19` 个提交

### ✨ 新特性

- **图片分析和生成备用模型**：图片识别与图片生成工具支持配置多个备用模型，主模型失败时自动按序切换；AbortError 不重试，图片数据仅加载一次
- **PropertyList 溢出检测 + 展开/收起**：单行截断、hover 显示完整内容、动画展开收起
- **applyPatch 工具**：新增基于 diff 库的 patch 工具，支持精确 hunk 应用
- **工具重命名**：readFile/writeFile/editFile → read/write/edit，语义更简洁

### 🐛 修复

- **定时任务卡片显示优化**：group 类型同时显示线程名称，目标名称替代原始 ID
- **手机端群记忆编辑弹窗 textarea 溢出**
- **Agent 编辑表单 capabilities/skills 丢失**：空数组不再清空已有配置
- **17 个 stale 测试修复**：修复多个因 prior commits 导致的测试失败
- **MCP 工具加载过滤**：仅加载 agent 已启用的 MCP server 的工具
- **PropertyList useLayoutEffect 闪烁**：避免溢出检测时的视觉抖动

### 📐 重构

- **通道卡片 footer 布局**：去掉 DropdownMenu 三点菜单，操作按钮改为信息区 + 分隔线 + 底部操作栏布局，移动端不再拥挤
- **Skill 卡片 Switch 位置**：开关移至标题行右侧，操作更直观
- **Husky pre-commit hook**：提交前自动运行 tsc 类型检查 + vitest 测试

## v1.8.9
发布日期：`2026-05-07`
> 对比 `v1.8.8` → `v1.8.9`，共 `39` 个提交

### ✨ 新特性

- **群记忆+群设定重构第一期**：群级记忆和群设定的基础架构搭建
- **IConversation 类型拆分**：`ISingleConversation | IGroupConversation` 联合类型替代单一接口，`targetId` → `groupId`，类型系统精确表达单聊/群聊差异
- **activeThreadId 重命名**：前端 `activeConversationId` → `activeThreadId`，语义精确对齐实际值
- **企业微信 + 微信个人号通道支持解析引用消息**：引用消息内容正确提取和展示
- **E2E 测试框架**：12 个 Playwright 测试用例覆盖 agent/group chat、settings、sidebar 和启动流程
- **HTTP API JSON 响应 gzip 压缩**：所有 HTTP API 的 JSON 响应自动 gzip，减少传输体积

### 🐛 修复

- **SQLITE_IOERR 自愈**：数据库 IO 错误时自动重连重试 + 用户友好错误提示
- **点击目录路径报错**：resolveFilePath 绝对路径直接放行，群聊模式下允许 agent 访问自己的 workspace
- **群聊 HeaderBar"打开目录"无响应**：修复群聊数据目录打开路径
- **夜间整理写入 Agent context.json**：夜间整理不再污染 Agent 上下文
- **编译错误和死代码清理**：conversation 重构后的遗留类型错误修复
- **SQLITE_BUSY database is locked**：连接池 min:0 回收后重建丢失 busy_timeout，修复为 min:1 + afterCreate hook
- **migration 单步骤失败阻塞启动**：单步骤失败不阻塞进程启动，修复测试从 1/5 到 6/6
- **企业微信 mixed（图文混排）消息解析**：正确提取文本和图片内容
- **alert() 替换为内联错误 UI**：移除所有 alert() 调用，改用内联错误展示；展开按钮限制为高内容
- **TypeScript 编译错误修复**：解决所有 `yarn tsc --noEmit` 编译错误

### 📐 重构

- **移除 Conversation 数据库层**：删除 Conversation models/entities/repository/port，conversation 概念从 DB 层彻底清除
- **移除 handler 层 conversation 依赖**：handler 和 MessageRepository 不再依赖 conversation 表
- **数据库迁移：drop conversations 表**：添加 migration 删除 conversations 表
- **shared/ 目录迁移**：文件从 shared/ 迁移到各自的归属模块
- **any 类型治理**：Database 透传壳清理，any 类型持续消除
- **第五轮+第六轮代码坏味道修复**：持续清理代码卫生
- **群聊 prompt 注入真实 workspace 路径**：group workspace instructions 使用实际文件路径
- **清理 JS 文件**：移除遗留的 .js 文件



## v1.8.8
发布日期：`2026-05-06`

> 对比 `v1.8.7` → `v1.8.8`，共 `21` 个提交

### ✨ 新特性

- **MCP streamable-http 传输支持**：新增 `streamable-http` 传输类型，兼容支持该协议的 MCP 服务端
- **附件工具 sendFile**：改为附件工具注册，支持多格式附件渲染（图片/文件/代码块等），内部对话直接展示附件卡片
- **generateImage 图片编辑模式**：`images` 参数支持参考图片进行编辑
- **PropertyList isPath 路径支持**：isPath 字段为 `true` 时，点击路径值自动打开侧边栏文件预览
- **附件发送默认展开**：发送附件时默认展开文件信息，按类型显示对应图标
- **静态资源 gzip 预压缩 + 缓存头 + stream**：静态资源加载性能优化
- **远程模式复制按钮右移**：复制按钮移到右侧，按钮组两端对齐

### 🐛 修复

- **MCP inputSchema 兼容性**：`inputSchema` 包装 `jsonSchema()` 适配 AI SDK v4 解析
- **MCP streamable-http i18n key**：修复类型 i18n key 不匹配 camelCase 的问题
- **Agent 文件迁移健壮性**：Agent 表不存在时跳过迁移，防止报错中断启动
- **工具调用 JSON 截断 path 丢失**：writeFile/editFile schema 标记 `REQUIRED FIRST FIELD`，repairToolCall 引导模型先输出 path
- **readFile 拒绝 .svg 二进制**：svg 按二进制处理，避免将 XML 内容误读为文本
- **generateImage 不再自动展开 ToolCallCard**：图片生成结果不触发卡片展开
- **托盘点击窗口未前置**：点击托盘图标后窗口正确 bringToFront
- **移动端 Tooltip 禁用**：tap 事件误触发 tooltip，禁用移动端 tooltip
- **群聊切换小绿点不消失**：clearCompleted 清理整个群所有线程的已完成状态

### 📐 重构

- **Thread Tab 冗余 Tooltip 移除**：Tab 上图标和文字语义重复，tooltip 属多余噪声

## v1.8.7
发布日期：`2026-05-06`
> 对比 `v1.8.6` → `v1.8.7`，共 `8` 个提交

### ✨ 新特性

- **Markdown 预览模式搜索**：文件预览的 Markdown 渲染模式支持文本搜索（Cmd+F）

### 🐛 修复

- **企业微信 Bot 流式回复 loading 卡住**：`run.failed`/`run.stopped` 时未调 `stream.finish`，企微端永久 loading；同时 `dispose()` 退出时扫尾所有活跃流
- **Windows 路径兼容**：修复 secret 文件名含冒号在 Windows 上非法的问题，send-file-policy 跨平台路径处理
- **readFile 拒绝二进制文件**：避免将二进制内容误读为文本，SessionCleaner 静默跳过不存在的目录
- **滚动到底部按钮过早隐藏**：`newMessageHint` 导致 scroll-to-bottom 按钮在消息未到底时消失
- **测试渲染缺少 TooltipProvider**：补充 `AppTooltipProvider` 包裹测试渲染

### 📐 重构

- **移除 Agent 数据库模型**：Agent 配置已迁移到文件系统，清理 `agent_configs` schema 迁移和 DB 侧死代码
- **文件名 sanitize 收口**：统一为共享工具函数，跨平台路径规范


## v1.8.6
发布日期：`2026-05-05`
> 对比 `v1.8.5` → `v1.8.6`，共 `40` 个提交

### ✨ 新特性

- **GPT-5.5 图片生成完整链路**：支持 provider-side `image_generation_call`，base64 图片自动转附件，统一通过 `AttachmentDisplay` 渲染
- **CLI web 搜索**：`webSearch` 工具改用 `agent-browser` 执行，CLI 模式下也能获取实时搜索结果
- **下载页 CLI 引导**：下载页增加 CLI 安装提示，按平台智能高亮推荐项
- **Shell 长输出自动存档**：Shell 和 `webFetch` 的超长输出自动截断并保存为 artifact，避免上下文爆炸
- **内部工具执行管线**：新增 `InternalToolPipeline`，统一管理工具调用前后的中间件（artifact 截断等），支持运行时状态透传
- **App Tooltip 原语**：新增统一的 tooltip 组件基础，替代各处散落的 title 属性

### 🐛 修复

- **Thread A 输出时 Thread B 斜杠命令被误拦截**：`sendingMap` 的读取和写入改为按当前 `conversationView` 作用域判断，不再被其他线程的流式状态污染
- **发送消息后滚动条不贴底**：改用显式用户意图（`wheel`/`touchMove`）退出 sticky-bottom，不再根据 `scrollTop` 下降误判用户向上滚动
- **图片生成引用丢失**：修复 GPT-5.5 图片生成后引用链断裂的问题
- **Telemetry 去重时间戳**：修复事件日期未传入去重检查的问题
- **频道重连**：增加 channel reconnect 支持
- **DashScope 输入上下文限制**：修正输入长度限制参数

### 📐 重构

- **Conversation view selectors 提取**：`ChatBox` 内两个 `deriveActiveView` + `useMemo` 提取为 `useActiveView()` / `useConversationView()` 自定义 hook，使用 `useShallow` 保证引用稳定性
- **图片生成管线优化**：统一 artifact 中间件处理 `webSearch`/`webFetch`/`shell` 长输出
- **Scheduler 工具作用域**：按 target 隔离 scheduler 工具
- **目录 IPC 事件合并**：消除重复的 open-directory 相关 IPC

### 📝 文档

- 对齐文档与当前架构
- 新增 Agent 执行请求模型、内部钩子机制、工具审批机制设计文档

## v1.8.5
发布日期：`2026-05-02`
> 对比 `v1.8.4` → `v1.8.5`，共 `6` 个提交

### ✨ 新特性

- **文件预览抽屉支持文本搜索**：在代码/文本预览中支持 `Cmd/Ctrl+F` 唤起搜索，高亮匹配并支持上下切换

### 🐛 修复

- **外部渠道入站语音视频丢失**：微信个人号和企业微信的语音/视频消息不再被静默丢弃；平台有转写时按文本处理，无转写时作为附件保留并明确标记，确保 Agent 可见
- **修复粘贴附件窜入其他对话草稿**：修复在消息发送后切换对话导致旧附件误写入新对话的竞态问题
- **FilePreviewDrawer 编译报错**：修复 `SyntaxHighlighter` `codeStyle` 类型不匹配导致 TS 检查失败的问题

## v1.8.4
发布日期：`2026-05-02`
> 对比 `v1.8.3` → `v1.8.4`，共 `2` 个提交

### 🐛 修复

- **微信个人号发送文件无法下载**：`aes_key` 编码从 `base64(raw bytes)` 改为 `base64(hex string)`，与 iLink 协议规范一致，修复微信端解密失败导致文件无法下载的问题
- **侧栏群名显示默认线程标题**：群名改为使用 `group.name`，重命名默认线程不再污染侧栏显示

## v1.8.3
发布日期：`2026-05-02`
> 对比 `v1.8.2` → `v1.8.3`，共 `8` 个提交

### 🐛 修复

- **频道消息被去重安全网误拦**：`handleAggregatedBatch` 在 `routeInboundMessage` 之前调用了 `markProcessed`，导致安全网检查跳过所有消息
- **频道 agent 查找走 SQLite**：`ChannelManager` 从 `agentRepository`（SQLite）改为 `agentFileStore`（文件系统），与存储真相源对齐
- **Bot 链路 handleRunCompleted 全量反查**：改用 messageId 精确查找
- **Bot 链路 waitingForRun key 冲突**：去掉 conversation 绕路，改用 FIFO 队列防覆盖
- **yarn.lock 内网地址**：修复 Jira 引用地址

### 📐 重构

- **移除 AgentRepository / GroupRepository / ThreadRepository**：三个 repository 都是纯转发层，无额外逻辑。业务代码直接访问 `agentFileStore` / `groupFileStore` / `threadFileStore`；migration 代码改用原生 SQL 直查 SQLite 遗留表
- **移除 AgentConfig Sequelize Model**：Agent 配置已迁移到文件系统，清理遗留 ORM 模型

## v1.8.2
发布日期：`2026-05-01`
> 对比 `v1.8.1` → `v1.8.2`，共 `6` 个提交

### 🐛 修复

- **微信个人号绑定后收不到消息**：补充 iLink 协议必需的 `iLink-App-Id` 和 `iLink-App-ClientVersion` 请求头；修复 QR 登录后 `baseUrl` 丢失导致 API 请求打到错误地址
- **线程 tab 重命名被覆盖**：默认线程 tab 重命名后不再被群名覆盖
- **发送后草稿未清空**：消息发送成功后自动清空草稿
- **Telemetry dashboard 路径**：API 路径适配反向代理子路径

### 🎨 改进

- **npm 发布脚本**：新增 `publish-npm.sh`，临时目录构建纯净 CLI 包，修正 dist-cli 和 renderer 拷贝路径

### 📐 重构

- **Scheduler 卡片布局**：改为纵向分层，解决信息拥挤与对齐混乱

## v1.8.1
发布日期：`2026-05-01`
> 对比 `v1.8.0` → `v1.8.1`，共 `27` 个提交

### 🐛 修复

- **Web 端上传文件报错**：修复 busboy 竞态导致误报 "No file provided"，异步文件保存完成前不再提前返回错误
- **切换对话时附件泄露**：修复粘贴附件发送后切换对话，旧附件误写入新对话草稿的问题
- **Web 端反馈提交**：打通反馈提交 RPC 通道，移除重复注册，Web 端反馈正常上报
- **Web 端附件裂图**：`getAttachmentUrl` 按环境分支协议，browser 走 HTTP URL，Electron 走 `kai://local`
- **群聊 @ 单人切换 speaker**：@ 单个成员时后端自动将 speaker 切换到该成员
- **记忆成长徽标折行**：执行状态徽标加 `white-space: nowrap`，不再折行
- **模型通道 tab 折行**：窄屏下 tab 改为水平滚动
- **检查更新卡住**：加 30 秒超时，防止无限等待
- **sharp 原生包安装**：加 `--force` 解决依赖冲突
- **Intel Mac DMG 架构**：updater 选择正确的 DMG 架构
- **遥测打包后失效**：endpoint 和 version 改用编译时注入
- **上传脚本**：仅上传当前版本安装包，版本真相源来自 `package.json.version`
- **内存采样写入文件**：崩溃后可回查
- **退出时 Scheduler 崩溃**：修复退出时 "Scheduler not initialized" 错误
- **updater 导入逻辑**：简化 require try-catch，添加自动检查调度和退出清理

### 🎨 改进

- **群 Header + 按钮**：改为幽灵风格，降低视觉权重
- **呼吸灯位置**：移到 subtitle 行右侧，两端对齐
- **StatusPill 公共组件**：收敛状态胶囊样式，替换重复实现

### 📐 重构

- **数据路径统一**：统一到 `config.getAppDataPath()`，crash 日志迁移到 `logs/crash`
- **IPC 命名规范**：新增文档，新事件遵循 `DOMAIN:ACTION` 格式

## v1.8.0
发布日期：`2026-05-01`
> 对比 `v1.7.2` → `v1.8.0`，共 `144` 个提交

### ✨ 新功能

- **企业微信 Bot 接入**：完整实现企业微信 Bot 对话能力，使用官方 @wecom/aibot-node-sdk
- **企微 Bot 流式回复**：流式回复抽象为 StreamingAdapter 能力对象，回复实时推送
- **微信个人号 Bot 接入**：基于 iLink 协议实现微信个人号 Bot 对话
- **IM 渠道文件发送**：企微和微信个人号支持 sendFile 文件发送
- **入站附件接收**：企微和微信个人号支持接收图片和文件附件
- **入站消息窗口聚合器**：高频入站消息自动窗口聚合，避免消息洪泛
- **Bot 接入后编辑绑定**：Bot 接入后允许修改绑定的目标 Agent/Group
- **遥测系统**：新增遥测服务，支持埋点、崩溃上报和用户反馈
- **反馈入口**：About 面板集成反馈区域，支持滚动定位
- **定时任务执行记录**：定时任务增加执行历史二级页面
- **TaskBlock 前后台区分**：TaskBlock 区分前台/后台任务展示
- **waitTask 任务跳转**：waitTask 点击可定位到对应任务块
- **双击重命名线程 Tab**：双击默认线程标签页标题可直接重命名
- **Mermaid 图交互**：Mermaid 图表支持滚轮缩放和拖拽平移
- **团队记忆 Markdown 渲染**：团队记忆弹窗默认 Markdown 渲染，按需编辑
- **多模态设置合并**：多模态设置合并到 LLM 通道面板，扁平化一级 Tab
- **ConfigWatcher**：监听配置文件变更并实时广播到渲染进程
- **CLI 模式**：实现 kai-cli start 命令，支持无 Electron 环境启动
- **Bot 接入 SVG 图标**：Bot 接入图标替换为真实 SVG

### 🐛 修复

- **流式输出 Layout 风暴**：消除流式滚动导致的 Layout 风暴，峰值 Layout 从 82ms 降至不可见
- **高频组件 React.memo**：高频渲染组件 React.memo 化，减少不必要重渲染
- **异步按钮防重复点击**：所有异步按钮抽取 useAsyncAction hook，防重复点击
- **Toast 配色语义**：修复成功消息显示红色的配色错误
- **Markdown 展开判断**：修复未截断内容也显示「展开全文」
- **Mermaid 流式延迟渲染**：流式输出期间延迟渲染 Mermaid 图表，避免闪烁
- **ToolCallCard 截断**：argSummary 改为 CSS 自适应截断
- **团队记忆溢出**：Markdown 内容溢出改为滚动条
- **群聊 Agent 头像点击**：点击头像弹出编辑弹窗而非进入设置页
- **单聊编辑入口**：砍掉冗余的「编辑Agent」入口，统一走「配置」面板
- **记忆更新进度丢失**：修复关闭设置弹窗后记忆更新进度丢失
- **mention 路由双重真相**：mentionIds 驱动后端路由，前端单一来源
- **webFetch 超长内容**：先存文件再截断，避免信息丢失
- **terminated 未重试**：修复 terminated 状态下不重试的 bug
- **监督模式提示词**：修正监督模式身份提示词
- **移动端侧边栏**：移动端加载时默认展开侧边栏
- **数据库外键约束**：移除 messages/scheduled_tasks 对 conversations 的跨域假外键
- **sharp 跨平台打包**：修复 sharp 在不同平台的打包兼容性
- **chokidar v5 类型兼容**：修复 ConfigWatcher 的类型兼容问题
- **微信个人号协议对齐**：修复 getUpdates/sendText/sendTyping/sendFile/二维码链接等 iLink 协议格式问题
- **连续消息回复丢失**：pendingReplies 用 runId 做 key，防止回复错乱
- **V8 堆 OOM 崩溃**：提升 V8 堆上限至 4GB，添加 MemoryMonitor 每 5 分钟采样

### 🔧 重构

- **src 分层重构**：core / adapters / electron / shared 四层分治，完成 T7-T21 共 15 项拆债
- **core→adapters 拆债**：Phase 1-4 反向依赖拆除，core 层不再直连 adapters
- **代码坏味道四轮修复**：依赖反转、日志标准化、SwarmExecutor 拆分、as any 清除、preload de-any
- **Cron 存储 SQLite→文件系统**：ScheduledTask + TaskExecution 从 Sequelize 迁移到 JSON 文件
- **渠道目录拆分**：channel 按渠道拆分目录，拆解 WeChatPersonalClient God Object
- **LLM 适配器提取**：createLanguageModel 工厂消除 5 处重复 provider 创建逻辑
- **Bootstrap 层重构**：bootstrap 依赖归位到正确层级
- **统一 ID 生成**：全部业务 ID 改用 genId()，统一格式
- **Config 入口拆分**：renderer 直接 import constants，避免加载 Node-only 模块
- **附件大小统一**：IMAGE_EXTENSIONS 收拢、sendFile 黑名单策略、上限提升至 100MB
- **streamId 统一**：用 genId 生成，不内联随机拼接

### 🗑️ 移除

- **网络代理设置**：删除 ProxyPanel 及全部 proxy 相关代码，非核心能力

## v1.7.2
发布日期：`2026-04-27`
> 对比 `v1.7.1` → `v1.7.2`，共 `11` 个提交

### ✨ 新功能

- **工具结果 Markdown 渲染**：字符串类型的工具调用结果支持 Markdown 渲染与折叠
- **图片查看器打开目录**：本地图片支持一键打开所在文件夹
- **统一发布流程**：KAi 产品页与更新元数据发布流程统一整合

### 🐛 修复

- **Passive Event Listener 警告**：修复 passive 事件监听器中调用 preventDefault 的控制台警告
- **协作面板布局偏移**：移除 CollaborationShell body 的 justify-content: flex-end，消除布局抖动
- **侧边栏创建入口**：文案与图标语义统一，更直观
- **线程标签 tooltip**：修复最后一条消息预览不刷新的问题

### 🔧 重构

- **更新提示收口**：移除右上角更新弹窗 Toast，AboutPanel 已完整承担更新提示职责

### 📝 文档

- **路线图更新**：反映 Phase 1-2 完成后的新判断
- **文档目录整理**：整理文档目录结构

## v1.7.1
发布日期：`2026-04-27`
> 对比 `v1.7.0` → `v1.7.1`，共 `25` 个提交

### ✨ 新功能

- **侧边栏置顶**：会话条目支持置顶，置顶后固定在列表顶部
- **渐进式侧边栏**：首次打开时隐藏空侧边栏，数据就绪后平滑过渡出现
- **Thread Tabs tooltip 预览**：hover 线程 tab 时显示用户最后一条消息预览
- **Thread Tabs 双击重命名**：双击线程 tab 直接内联编辑标题
- **版本号入口**：侧边栏 footer 版本号可点击进入关于页，新版本可用时显示呼吸色点

### 🐛 修复

- **消息连发**：handleSend 加并发锁，/clear 快捷键同步受控
- **群定时任务兼容 Group Threads**：老任务自动路由到默认 thread，scheduler 工具改用 belongsToContext() 判断归属
- **Token Usage 多轮累加**：修复 handoff/supervisor 场景子执行器 usage 替换而非累加到整个消息 tokenUsage
- **群聊成员运行态高亮移除**：thread 状态不再污染群级 Header，避免层级错位信号
- **Thread Tabs 固定排序**：按创建时间固定位置，不再漂移
- **顶部按钮显示逻辑**：展开状态的消息都显示操作按钮
- **Agent 编辑面板缓存**：打开编辑面板时强制刷新，避免展示过期数据
- **魔法棒按钮位置**：移到 description 标签行右侧，两端对齐
- **i18n 补齐**：补齐缺失文案并修正 reasoningEffort 文案键结构

### 🔧 重构

- **数据路径收口**：数据路径收口到 config.getAppDataPath() 单一入口
- **Agent 描述优化**：重写提示词，采用「立场+擅长领域」双句结构

## v1.7.0
发布日期：`2026-04-26`
> 对比 `v1.6.0` → `v1.7.0`，共 `98` 个提交

### ✨ 新功能

- **Group Threads（群线程）**：一个群聊下可创建多个线程，隔离不同议题现场；线程级 Speaker、状态点、归档管理、二次确认关闭
- **线程 Tab UI**：顶部 ThreadTabs 切换线程，默认线程 Hash 图标区分，双击内联重命名，活跃线程扫光动画
- **线程上下文独立存储**：群聊 LLM 上下文迁移到 `groups/{groupId}/threads/{threadId}/context.json`，单聊迁移到 `agents/{agentId}/context.json`
- **消息自动折叠**：Agent 消息滚动出视口时自动折叠，保留最近关键内容展开
- **Tool Call 参数结构化渲染**：属性列表展示工具调用参数与结果，值区支持 Markdown 渲染
- **Tool Call Markdown 折叠**：工具结果中的大段 Markdown 默认折叠，可展开查看
- **多模态面板重构**：analysis / generation 子字段拆分，配置摘要提示
- **计划工具增强**：planTool 增加 context 参数，多轮评估保留关键上下文
- **消息计时优化**：超过 60s 按分钟显示，超过 60 分钟按小时显示
- **渲染进程崩溃恢复**：异常时自动恢复，带熔断保护
- **崩溃日志本地捕获**：将崩溃信息写入本地日志
- **智能回退增强**：所有健康通道耗尽时允许 unhealthy 通道参与兜底重试

### 🐛 修复

- **tool-call.input 序列化**：修正 string 类型导致 provider 校验失败
- **侧栏消息预览为空**：修复群聊激活态/完成态覆盖群内所有线程
- **消息折叠不生效**：增加挂载时初始高度检测；折叠只在过渡时刻触发，历史消息不再被误折叠
- **加载更多滚动竞争**：修复 sticky bottom 竞争导致意外滚到底
- **群聊切线程白屏闪烁**：收紧订阅与依赖
- **Broadcast 闪烁光标**：移除内容区闪烁光标，tab 圆点已足够传达 streaming 状态
- **ThreadTabs 排序**：默认线程始终保持在第一个位置，按创建时间排序
- **Markdown 图片撑爆气泡**：限制最大高度 320px
- **CollaborationShell 高度**：body 限制最大高度 400px，超出用滚动条
- **inline code 路径误判**：含换行时不误判为本地路径链接
- **TaskBlock 折叠后展开内容消失**：移除内部高度限制，折叠/展开统一由 Shell body 控制
- **备选模型自动切换**：修复健壮性问题
- **设置页迁移与自动保存**：修复多模态配置迁移与卸载保存
- **AboutPanel 启动崩溃**：修复模块顶层调用 getTransport() 导致的问题
- **归档线程后资源释放**：立即释放 ConversationManager 和 Session
- **工具相对路径**：readFile/writeFile/editFile 相对路径补全为绝对路径
- **generateImage abort 处理**：注册工具并修复中断逻辑

### 🔧 重构

- **彻底清除 Session 概念**：移除 Session 层，上下文直接由 Agent/Thread 管理
- **ID 生成统一**：type_nanoid 格式替换散落的 UUID/randomUUID/Date.now
- **ChatHeaderBar 双层布局重构**
- **ThreadTabs 状态点系统**：统一为单一圆点系统，删除 unreadDot
- **图片生成工具**：返回绝对路径替代 attachment 标签
- **功能清单全面更新**：反映 Group Threads 后的真实产品状态

## v1.6.0
发布日期：`2026-04-25`
> 对比 `v1.5.3` → `v1.6.0`，共 `45` 个提交

### ✨ 新功能

- **自动更新**：实现客户端自动更新，UpdateToast 全局更新提示，关于页面重构更新流程
- **多模态拆分**：analysis/generation 双子结构，新增图片生成工具
- **思考模式四档**：reasoningEffort（低/中/高/满）替换 enableThinking 布尔开关
- **工具限制面板**：CapabilitiesTab 增加折叠面板，支持按 Agent 禁用指定工具
- **协作组件统一**：CollaborationShell 公共外壳，统一协作组件视觉家族
- **群聊空状态引导**：从"暂无消息"改为起步引导
- **BroadcastCard Markdown 渲染**：广播面板 question 使用 Markdown 渲染
- **消息失败保留**：发送失败后保留输入框内容，不丢失用户输入
- **Web 端文件上传**：改用 multipart/form-data
- **独立上传脚本**：build 独立上传脚本，更新 publish url

### 🐛 修复

- **手机端键盘闪烁**：修复移动端点击发送时键盘闪烁
- **侧边栏加载闪烁**：消除初始加载闪烁，数据就绪后一次性渲染列表
- **scheduler 工具名不匹配**：修复工具名不匹配，补全 cron 工具翻译
- **/clear 重复系统消息**：移除重复系统消息，改为系统消息展示与 /compact 行为一致
- **群聊回复及输入框删除逻辑**：优化群聊交互细节
- **发送消息竞态条件**：修复发送期间用户继续打字被清空的竞态
- **工具相对路径**：readFile/writeFile/editFile 相对路径补全为绝对路径
- **HTML 预览资源加载**：改用 kai:// 协议，支持相对路径资源加载
- **TaskBlock 高度**：限制产出区高度，防止长内容撑开聊天流
- **memberRow 滚动**：隐藏滚动条 hover 显示，垂直滚轮转水平滚动
- **Agent 描述截断**：截断长度从 60 提升到 100 字符

### 🔄 重构/还原

- **memberRow 还原**：还原成员 chips 行，移除 memberBadge
- **侧边栏滚动条**：对话列表滚动条默认隐藏，hover 时才显示

### 🧹 杂项

- **i18n 清理**：移除未使用的 selectAgentHint 文案
- **E2E 测试**：添加 reasoning effort E2E 测试
- **群聊弹窗测试**：同步群聊创建弹窗测试文案
- **发版流程文档**：更新打包命令


## v1.5.3
发布日期：`2026-04-24`
> 对比 `v1.5.2` → `v1.5.3`，共 `7` 个提交

### 🔧 重构

- **团队记忆强制精简**：注入时加副标题提示摘要性质，工具 description 加正反例引导精简写入，字符上限从 3000 降至 1500
- **群聊成员选择弹窗**：移除成员 chip 区，人数 badge 移至搜索栏，footer 常驻底部

### 🐛 修复

- **删除 Agent 未从群聊移除**：删除 Agent 时同步从群聊成员列表中移除，修复移动端消息 footer 折行
- **群聊右键打开工作目录**：右键应打开群目录而非会话目录

### 📝 文档

- **AI Worktree 工作流规范**：新增工作流规范文档，更新 CLAUDE.md 和 CONTRIBUTING.md
- **工作流规范修订**：补充会话初始化检查、合并后再验证等纪律

## v1.5.2
发布日期：`2026-04-24`
> 对比 `v1.5.1` → `v1.5.2`，共 `4` 个提交

### 🐛 修复

- **发送消息报"database is locked"错误**：修复 SQLite 在多个写入操作并发时锁竞争导致消息发送失败的问题
- **监督模式提前退出**：添加计划进度门控机制，未完成任务时首次 `achieved=true` 注入提醒，二次确认才允许退出
- **监督者头像错误**：监督模式入口设置 supervisor 为 speaker，finalAgentId 贯穿 ReplyStream → GroupChat → ConversationManager → MessageProcessor 全链路
- **PlanTask 字段命名**：`assigneeId` 重命名为 `assigneeAgentId`，与 AgentId 命名规范对齐

## v1.5.1
发布日期：`2026-04-24`
> 对比 `v1.5.0` → `v1.5.1`，共 `24` 个提交

### 🆕 新功能

- **渠道配置重构**：新增渠道配置并重构逻辑
- **Web 端文件下载**：支持浏览器端文件下载 + 路径穿越安全加固
- **HTML 预览允许脚本执行**：HTML 预览沙箱放开脚本限制
- **消息懒加载**：初始加载 20 条消息，内存上限 50 条，发消息时裁剪旧消息
- **TokenUsage 大数显示**：超过 1M tokens 时用 M 为单位
- **Sidebar 右键菜单**：右键菜单增加「打开工作目录」

### 🐛 修复

- **BroadcastCard 视觉层次**：主容器加 border/shadow/border-radius，内容区 max-height 240px + 自定义滚动条，状态圆点改用 CSS 变量
- **群聊编辑框按钮溢出**：ChatBox 改用 flex 布局代替 height:100vh，修复按钮被推到视口外
- **Web 端附件上传**：打通 web 端附件上传 + ModelSelect/备用模型溢出修复
- **ToolCallCard 图标补齐**：补齐 analyzeImage/broadcast/plan/report 图标，消除撞图
- **MessageProjection duration 中断**：工具输出期间保持 isStreaming，duration 计时不中断
- **MessageItem 移动端溢出**：metrics 行禁止折行，model 名称超出打点
- **中文/空格路径解码**：修复中文和空格路径解码 + protocol handler 穿越保护
- **DiffViewer 行高亮中断**：修复横向滚动时行高亮背景中断
- **路径安全策略**：/full/ 路径安全改用黑名单，替代 HOME 白名单

### 🔧 重构

- **AgentCard 真实头像**：用 AgentAvatar 替换 Bot 图标，显示真实头像
- **ChatHeaderBar 优化**：useMemo 缓存 isBrowserTransport 检测，清理 memberRow 移除后残留代码
- **群聊成员行精简**：移除成员 chips 行，替换为计数 badge
- **TaskBlock 视觉降噪**
- **死代码清理**：删除死代码、垃圾文件与未使用的导出

---

## v1.5.0
发布日期：`2026-04-23`
> 对比 `v1.4.7` → `v1.5.0`，共 `67` 个提交

### 🆕 新功能

- **Supervisor 监督模式上线**：SwarmExecutor 支持监督者循环，可在执行过程中评估、继续推进并输出更稳定的结果
- **Memory Growth P0 完整闭环**：新增成长配置、差异预览、无变更状态、真实文件变更跟踪与成长记录 UI
- **群聊协作界面全面升级**：Broadcast 改为标签聚合，Task/Handoff/Supervisor 等协作块独立渲染，去掉全局气泡与重复状态信号
- **Block 级渲染架构落地**：消息按原始 blocks 顺序统一渲染，协作组件获得更清晰的语义层级
- **文件系统会话能力增强**：群组迁移到文件系统，并新增会话与文件系统对账能力（Phase 1）
- **定时任务与调度体验增强**：恢复 scheduler tab，新增更紧凑的任务列表布局与更明确的错误反馈
- **输入与导航体验增强**：消息输入下拉菜单 portal 化，最后一条消息新增「回到消息顶部」按钮
- **文件路径操作增强**：Tool Call 卡片支持直接复制文件路径
- **远程访问链接稳定化**：补强远程访问入口的可用性与稳定性
- **记住监督者选择**：单聊中可记住上次 supervisor 选择，减少重复设置

### 🐛 修复

- **流式消息防崩溃丢失**：AI 回复在生成过程中先落骨架消息，之后按 block 增量保存，完成或异常时再做最终全量保存
- **Swarm finish 门禁**：存在后台 task 运行中或未 `waitTask` 收口时，禁止 finish，必须显式 `waitTask` 或 `killTask`
- **流式期间禁用 slash commands**：避免生成中插入命令造成语义混乱
- **聊天草稿附件恢复**：修复草稿内容恢复时附件丢失问题
- **Supervisor 执行流程修复**：解决 evaluate_result 前提前停止、plan 后跳过执行、评估逻辑不稳等问题
- **群聊/单聊消息状态统一**：修复 loading 动画、footer 与状态展示不一致问题
- **流式 metrics 收敛到 AgentBlockMessage**：消除 MessageBubble embedded 模式重复计算，streaming duration 每 200ms 平滑刷新
- **记忆更新与临时任务持久化修复**：手动触发或临时任务成功时避免错误写库与外键失败
- **Scheduler 可用性修复**：修复定时任务触发后无响应、面板缺失 i18n、错误任务过滤异常等问题
- **模型与任务执行稳定性提升**：修复 Qwen `maxOutputTokens` 超限、任务结果提取不准、技能筛选失效等问题
- **总结消息意图判断修复**：由字符串匹配改为 `metadata.intent` 标记，避免误判
- **嵌入式气泡布局修复**：限制最大宽度、fit-content 收缩，避免短内容撑满整行

### 🔧 重构

- **监督链路重构**：引入单轮 snapshot 模型与可展开的 Supervisor 执行过程 blocks，提升可解释性
- **群聊消息壳层重构**：统一 embedded 布局，消息头像移动到顶部，释放正文宽度
- **夜间记忆更新重建为 Growth 配置**：从自动任务导向切回可配置、可审查的成长机制
- **协作组件层级与结果展示重构**：TaskBlock、Broadcast、Handoff 的层次、边界与结果展示方式全面梳理
- **数据库与死代码清理**：移除未使用的 `conversation_context_cache` 表及相关死代码
- **渲染与样式清理**：去掉 `cn` 包装、统一使用 `clsx`，并持续清除坏味道、重复逻辑与无用导入
- **文档体系重组**：docs 目录重构，并同步更新 supervisor 架构文档与协作设计决策

---

## v1.4.7 (2026-04-21)

> 对比 `v1.4.5` → `v1.4.7`，共 5 个提交

### 🐛 修复

- **消息完成后时间戳不再跳动**：`activeRunId` 匹配 + `isStreaming` 双重守卫，已完成消息的耗时冻结不变
- **定时任务面板显示全部任务**：不再按 conversationId 过滤，始终展示所有任务
- **useScrollAnchor 内存泄漏**：`requestAnimationFrame` 返回值未清理，组件卸载后仍执行回调

### 🆕 新功能

- **analyzeImage 图片最大尺寸可配置**：多模态设置面板新增 `maxImageSize`（512-8192px），`analyze-image` 和 `MultimodalTransformer` 共享同一套缩放逻辑

### 🔧 重构

- **WelcomeState 简化为品牌符号+方向指引**：砍掉 Agent 卡片网格
- **useEffectEvent 迁移**：`useChatActions`/`useScrollAnchor`/`useTheme` 的 `useRef` 模式统一迁移到 `useEffectEvent`
- **共享图片缩放工具提取**：`resizeImageBuffer()` + `getMaxImageDimension()` 提取到 `multimodal.ts`，消除重复逻辑

---

## v1.4.5

> 对比 v1.4.4 → v1.4.5，共 11 个提交

### 🆕 新功能

- **多 Agent 身份识别系统**：assistant 消息注入 agentName + agentId，摘要时区分多 Agent 发言人
- **历史消息身份标注（runOnce）**：给历史 assistant 消息注入 `[@name]` 标签，升级后首次启动自动执行
- **交接消息标明发言人身份**：handoff/task/broadcast 交接消息显示发起人（fromAgent）而非目标人

### 🐛 修复

- **WebSocket 心跳容忍 + 重连后状态恢复**：心跳超时容忍度提升，断线重连后自动恢复会话状态
- **交接消息标发起人而非目标人**：修复 handoff 消息显示错误 Agent 名称的问题
- **Review 修复 — 增量遍历、覆盖盲区、DRY**：修复身份注入的重复计数和遍历盲区

### 🔧 重构

- **压缩摘要提示词重构**：9 章节合并为 5 正交章节，结构更清晰、Token 更省
- **Speaker 上下文从 system prompt 移至 user 消息 reminder 标签**：减少 system prompt 膨胀
- **Agent 身份注入提前到 onStepFinish**：executeInternal 作为兜底，双层保障
- **删除冗余的 reminder 注入**：清理 handoff 交接消息格式

---

## v1.4.4

> 对比 v1.4.3 → v1.4.4，共 14 个提交

### 🆕 新功能

- **UX 重设计 — Welcome/Supervisor/Broadcast 卡片 + 6 项交互改进**：重新设计欢迎页、Supervisor 评价卡片和广播消息的视觉表现，优化 6 处交互细节

### 🐛 修复

- **流式 Token 显示改用 AI SDK finish-step usage**：替换字符数估算为 SDK 精确值，Token 计数更准确
- **流式输出立即推送模型信息**：不再等待 3 秒定时器，首条消息即显示模型名
- **消息 metrics 区域宽度抖动**：修复流式输出期间指标行宽度反复跳动
- **流式 loading dots 合并到 metrics 行**：消除独立 loading 行导致的布局跳动
- **Web 模式本地图片无法渲染**：修复 web 环境下本地路径图片不显示
- **工具调用期间 abort 无法立即中断流式输出**：修复工具执行中点击停止按钮无响应
- **Agent 响应出现在用户消息之前**：修复消息顺序错乱
- **Input placeholder 文案升级**：贴合 KAi 思维伙伴品牌调性
- **Mobile sidebar 入口 + 成员列表不限数量**：修复移动端 sidebar 打开问题和成员 chips 截断
- **Mobile 设置页横向滚动标签栏**：替换垂直 sidebar 为水平滚动条，适配小屏
- **Web 剪贴板 fallback + 移动端气泡宽度 100%**：修复 web 环境复制失败和移动端消息气泡过窄

### 🔧 重构

- **Emoji/Unicode 指示器替换为 Lucide 图标**：硬编码十六进制色值改为 CSS 变量，视觉统一
- **流式指标代码质量改进**：增量更新、类型安全、消除 `as any`

---

## v1.4.3

> 对比 v1.4.2 → v1.4.3，共 2 个提交

### 🐛 修复

- **流式输出时指标不显示**：修复 `run.started` 投影未设置 `message.runId`，以及 `mergeProjectionUpdate` 缺少 `runMetricsMap` 合并，导致流式期间模型/Token/耗时无法实时显示

---

## v1.4.2

> 对比 v1.4.1 → v1.4.2，共 3 个提交

### 🆕 新功能

- **流式运行指标实时显示**：流式输出期间实时显示当前模型、Token 使用量、耗时
  - 新增 `run.progress` 事件类型，后端每 3 秒推送进度指标
  - 前端 `runMetricsMap` 投影层管理流式指标，本地计时器 200ms 刷新耗时
  - `onRunInfo` 回调链路打通：AgentExecutor → SoloExecutor → SoloChat → ConversationManager → MessageProcessor
  - 流式/终态指标无缝切换（`??` 回退），终态时 SDK 精确值静默覆盖估算值
  - Token 估算策略：CJK 约 1.5 字符/token，英文约 4 字符/token，取中间值 2.5

### 🐛 修复

- **Preload 脚本 `tBridge` 未定义导致启动崩溃**：移除 `src/preload/index.ts` 末尾多余的 `tBridge.exposeInMainWorld` 调用（`contextBridge` 笔误），修复 `ReferenceError: tBridge is not defined`
- **FilePreviewDrawer 测试崩溃**：`transport.meta?.env` 增加可选链防御
- **KAI_VERSION 更新**：migration 版本从 1.4.0 升级到 1.4.1
- **ConversationManager 测试**：mock 对象补充 `onRunInfo` 方法

## v1.4.1

> 对比 v1.4.0 → v1.4.1，共 6 个提交

### 🐛 修复

- **消息 metadata 持久化**：修复 supervisor 标签不显示的问题——metadata（含 supervisorId）未写入数据库，导致前端渲染时永远读到 undefined
- **附件上传**：修复附件以 binary payload 格式上传
- **JSON 解析增强**：新增 jsonrepair 依赖，增强错误重试

### 🔧 重构

- **Supervisor 回退逻辑移除**：当 supervisor 未调用 evaluate_result 时，不再 fallback 到文本分析，直接以"未知结论"终止监督

## v1.4.0

> 对比 v1.3.0 → v1.4.0，共 31 个提交

### 🆕 新功能

- **多模态图片支持**：MultimodalTransformer + AgentExecutor 集成，支持图片分析和视觉理解
  - 输入框支持粘贴图片/文件作为附件
  - 图片附件渲染缩略图预览
  - 多模态设置面板，模型能力自动检测并持久化
  - sharp 依赖用于图片缩放处理
- **Supervisor 模式 UX 升级**：身份识别、i18n、任意 Agent 可作为 Supervisor
- **消息指标显示实际模型**：fallback 时提供视觉信号区分
- **Markdown 块级复制**：Agent 文本块 > 3 行时 hover 显示复制按钮，与代码块体验一致
- **waitTask 多任务支持**：Accordion 折叠渲染多个异步任务结果
- **通道设置面板反馈优化**
- **消息来源标记**：区分人类消息与合成 user 消息
- **摘要生成规则连续性提升**
- **确认对话框与通知体验优化**

### 🐛 修复

- autoFallback 配置备份通道时默认为 true
- 锚点检测适配新的 ASCII 摘要标记
- TaskBlock 自动滚动不再与用户手动滚动冲突
- 清除上下文后聊天侧边栏稳定
- 浏览器模式启用文件预览
- normalize agent names for task metadata
- findLastIndex 类型注解修复（strict mode 兼容）

### 🔧 重构

- **AgentConfig 值对象化**：引入 AgentConfig value object → adopt accessors → 移除 facade getters → Agent 文件成为主要运行时来源
- 移除已废弃的 agent 兼容性辅助函数
- 移除 scheduler database facade 使用
- 移除遗留 attachment DSL 转换
- SwarmContext 封装 + TaskResultAccordion DRY
- 消除 chat sidebar/header 代码异味
- 模型能力检测重构

### 🎨 样式

- Task panel 视觉强调度降低
- Chat sidebar 副标题布局优化

## v1.3.0

> 对比 v1.2.3 → v1.3.0，共 13 个提交

### 🆕 新功能

- **KAi Web 化（Phase 1 + Phase 2）**：支持浏览器/手机远程访问，Transport 抽象层解耦 Electron IPC 依赖
  - HTTP Server 绑定 0.0.0.0 + 返回局域网 IP，可在手机等设备访问
  - 响应式布局，小屏幕自适应（mobile sidebar、ARIA 无障碍、Escape 关闭）
  - 远程访问面板：多地址列表（⭐推荐）、已连接设备展示、QR 码一键扫码
  - Token 认证：24h TTL 自动过期、不可变导出、操作日志
  - RPC 安全：DESKTOP_ONLY_CHANNELS 白名单阻止浏览器调用 Electron 专属 API
  - `window.api` → `getTransport()` 116 处收敛，零残留

### 🐛 修复

- migration executor_id 清理失败不再阻塞应用启动
- ipc-transport 不再修改 frozen 的 window.api，改用 Proxy adapter
- 浏览器模式正确注入 transport 到 window.api
- 移动端无对话时默认展示 sidebar，切回桌面时自动重开
- crypto.randomUUID fallback — HTTP 非安全上下文兼容
- 远程访问面板二次打开时恢复 token，URL 和 QR 码正常显示
- Review 修复：uuid fallback、虚拟网卡过滤、useCallback deps、并发安全等

### 🎨 样式

- 消息气泡最大宽度从 75%/80% 统一增加到 90%，小屏幕内容不再过窄

## v1.2.3

> 对比 v1.2.2 → v1.2.3，共 6 个提交

### 新功能

- Agent 列表固定排序 + 搜索过滤

### 修复

- 群聊新增成员后 mentions 下拉列表不更新（本地 state 未同步 store）
- 重试路径 sending 状态闪烁（finally 无条件清 processingSet 导致误发 running=false）
- 复盘查询改用 conversation 联查替代 executorId

### 重构

- 清理消息模型中的 executorId 死字段
- 数据库 migration 清理 messages 表残留的 executor_id 列和索引

## v1.2.2

> 对比 v1.2.1 → v1.2.2，共 7 个提交

### 新功能

- TaskBlock 三层结构重设计：突出显示任务描述
- `/compact {tips}` 支持用户引导摘要方向
- Settings 新增 About 面板（版本信息 + Release Notes）

### 修复

- 发送消息无响应：agent lookup 失败不再被静默吞掉
- review summary 现在走正常消息管道，agent 回复正确显示在聊天中

### 重构

- `current_time` 从 system prompt 移至 user message，优化 prefix cache 命中
- 语法高亮语言注册集中到 highlight 模块

## v1.2.1

> 对比 v1.2.0 → v1.2.1，共 5 个提交

### 新功能

- 群聊 system prompt 重构：team_collaboration 前置，为 prefix caching 做准备
- 协作文案精简：Agent 列表改为表格格式，协作规则从 5 条空泛规则精简为 4 条精准规则

### 修复

- Agent 切换时身份混乱：在 handoff、task、broadcast、supervisor 四个路径注入身份锚点（SOUL 摘要 + description）
- 停止按钮无响应：所有 tool execute 函数支持 abortSignal（shell 用进程组终止，web-fetch/search 合并 signal）
- 发送消息时不自动滚动到底部
- abort 异常误触发 fallback 和健康记录

### 重构

- SyntaxHighlighter 统一从 highlight 模块导入

## v1.2.0

> 对比 v1.1.3 → v1.2.0，共 18 个提交

### ✨ 新功能

- **FilePreviewDrawer — 右侧抽屉文件预览**：点击 ToolCallCard 中的文件路径或 Markdown 行内代码路径，打开右侧抽屉预览文件内容。支持语法高亮+行号（代码）、Markdown 预览/源码切换、HTML iframe 预览（沙箱无脚本）。非文本文件和大文件（>512KB）有专用提示。Header 含「在文件夹中显示」按钮（FolderOpen）。完整 IPC 链（IPC_READ_FILE_CONTENT + IPC_SHOW_ITEM_IN_FOLDER）
- **快捷键**：`Cmd+K` 触发 /compact，`Cmd+Shift+Backspace` 触发 /clear

### 🐛 修复

- **广播 ResponseCard 默认折叠**：广播消息不再自动展开，手动点击才展开
- **fix-path ESM/CJS 互操作**：改用动态 import 解决模块兼容问题
- **PATH 修复**：使用 fix-path 修复 Electron GUI 启动时的 PATH，shell-env 去掉 -i 避免交互式 shell 污染
- **工具描述优化**：优化工具描述以提供更好的模型引导
- **fallback 类型安全**：移除 `as any`，提供完整 LLMChannel 字段
- **无效 channelId 引用**：移除 AgentConfig 类型中的无效 channelId 引用
- **channel_config migration**：补充缺失的 agent_configs.channel_config 列迁移
- **argSummary 截断**：修复 flex-grow 优先级导致 spacer 被压缩的问题
- **stop 按钮不响应**：修复 stop 按钮和单聊 mention 泄露问题
- **stream 滚动时机**：用 double rAF 等待 Collapse 布局完成后再滚动

### 🔧 重构

- **多通道智能回退升级**：fallback 从通道级升级为通道+模型级，语义全面重构
- **shell-env 包替换**：用 shell-env 包替换自写的 shell-env.ts，支持 Oh My Zsh 干扰处理和 fallback shell
- **availableAgents 过滤简化**：单聊模式返回空数组

---

## v1.1.3

> 对比 v1.1.2 → v1.1.3，共 14 个提交

### ✨ 新功能

- **writeFile 覆写保护（FileAccessTracker）**：Agent 覆写已有文件前必须先 readFile，防止盲目覆写。新建文件不受限制，同一会话内创建-覆写也正常通过。新增 `FileAccessTracker` 类追踪已知路径，readFile/writeFile 共享实例
- **监督迭代次数可配置化**：全栈支持——DB schema、repository、设置面板 UI、i18n，supervisor 迭代次数不再硬编码

### 🐛 修复

- **HealthMonitor 成功请求不重置错误计数**：通道一旦触发 unhealthy 就永久不恢复。现每次成功请求重置错误计数，通道可自动恢复 healthy
- **SwarmContext.waitTask 拒绝已完成任务**：移除 running 状态检查，已完成任务直接返回结果而非报错
- **SwarmExecutor 广播使用包装消息**：广播现在使用真实用户消息而非 supervisor 包装后的内容，supervisor 迭代次数可配置
- **SupervisorLoop 脆弱的中文正则 fallback**：移除对中文关键词的脆弱正则匹配，改用保守评估策略
- **AgentExecutor fallback 消息丢失**：fallback 改为内存切换不持久化，修复消息丢失和 `as any` 类型安全问题

### 🔧 重构

- **协作协议升级**：`createSwarmPrompt` 从静态数据注入升级为协作协议模式
- **工具描述统一英文**：所有内置工具 description 统一为英文
- **协作提示词中文化**：协作提示词从英文切换为中文
- **工作空间模板优化**：多 Agent 专家场景模板改进
- **SOUL.md 模板精简**：去掉性格描述，聚焦边界和原则
- **消息摘要器优化**：移除 analysis 思考链提示，改用 provider 原生 thinking

---

## v1.1.2

> 对比 v1.1.1 → v1.1.2

### 🐛 修复

- **compact 期间可发送消息（竞态风险）**：前端 `/compact` 执行期间未禁用输入框，后端也未拦截。现已前后端双重保护——前端设置 `sendingMap` 禁用输入，后端用 `compactingConversations` Set 拒绝新消息和重复 compact 请求
- **ToolCallCard 流式场景 diff 不自动展开**：`writeFile`/`editFile` 工具卡片在流式完成（pending → success）后不走 remount，`defaultExpanded` 失效。改为受控模式 + `useEffect` 触发自动展开

---

## v1.1.1

> 对比 v1.1.0 → v1.1.1

### 🐛 修复

- **命令下拉方向键不响应**：修复 `filteredCommands` 过滤 + `activeIndex` 重置竞态，方向键/Tab 补全正常工作
- **`/compact` 发送后无界面反馈**：新增 CompactBanner 组件，显示 loading spinner → 成功/失败状态
- **斜杠命令显示为用户消息**：`/compact` 和 `/clear` 执行前先插入本地用户消息到消息列表
- **`@` 弹窗选中后不关闭**：`suppressMentionRef` 阻止选中 agent 后 useEffect 重新检测 `@name` 并打开弹窗
- **头像编辑点击崩溃 (React is not defined)**：`Select.tsx` 补 `import React`
- **ScheduledTaskPanel TS2322**：`SelectProps` 补 `required` 属性

---

## v1.1.0

> 对比 v1.0.1 → v1.1.0，共 60 个提交

## ✨ 新功能

### /compact 命令 — 手动压缩对话上下文
- 新增 `/compact` 命令，对当前对话所有历史消息强制生成 LLM 摘要
- 摘要替换原始消息，大幅释放 context window，同时保留关键上下文
- 运行时保护：Agent 执行中自动拒绝 compact，避免数据竞态
- 命令下拉菜单自动补全，支持 `/clear` 和 `/compact`

### 健康监控系统
- 新增 LLM 渠道健康监控，追踪延迟和错误率
- ChatHeaderBar 重构，展示渠道健康状态

### 多 Agent 广播（Broadcast）
- 全栈广播支持：前端 @all / 多人 @mention → 主进程路由 → Agent 并行响应
- AgentRosterBar 展示群成员状态
- Handoff Ribbon 展示任务交接

### Agent 多渠道 + Fallback 模型配置
- 每个 Agent 可独立配置 LLM 渠道列表和 fallback 模型
- 支持同一渠道不同模型作为 fallback
- 设置面板重组到子目录，结构更清晰

### 流式工具调用实时展示
- 处理 `tool-input-delta` 流式事件，实时更新工具调用参数
- Tool call 生命周期：`startedAt / endedAt / durationMs`

### Welcome 页面重设计
- Agent 卡片网格 + 群聊 CTA + 品牌英雄区

### 多平台打包
- Mac ARM64 / x64 + Windows x64 打包脚本
- Windows 支持 signAndEditExecutable 配置

## 🐛 修复

- **数据库原子性/竞态**：修复 allowedTools TypeError 和事务竞态问题
- **channelConfig 双重 JSON 编码**：save/load 时 double stringify/parse
- **AgentExecutor 类型安全**：消除 `handleXxxChunk` 的 `any` 类型，使用 `TextStreamPart` 精确类型
- **UI 修复**：checkbox 勾号居中、发送后滚动到底部、切换对话重置草稿、contentKey 重挂载导致动画重播
- **inline code 点击打开本地路径**
- **Duration 组件防御 undefined/NaN**
- **ModelSelect 加载抖动**
- **update_team_memory 注册为 swarm tool**
- **侧边栏创建菜单重命名 + 图标**
- **应用图标**：installer / taskbar / tray 正确设置
- **i18n**：提取 MessageInput 中 3 个硬编码中文字符串

## 🔧 重构

- **Select 组件**：设计系统统一 Select（portal dropdown + keyboard nav + ARIA）
- **processStreamChunks 拆分**：独立 handler（text / reasoning / tool）
- **流事件流重构**：在 fullStream 中处理 tool call 生命周期
- **AgentPanel / AgentList / Workspace Tab / MemoryTab**：原生 button → Button 通用组件
- **ToolCall 字段重命名**：`timestamp/startTime` → `startedAt/endedAt/durationMs`
- **设置面板**：重组到 `settings/` 子目录

---

**完整提交列表**：`git log v1.0.1..v1.1.0 --oneline`
