@sinm/kai 1.10.9 → 1.10.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/RELEASE_NOTES.md +1514 -0
- package/dist-cli/kai-cli.js +9275 -6141
- package/dist-electron/renderer/assets/{_baseUniq-BwtMDG1-.js → _baseUniq-Cd6KMhyP.js} +1 -1
- package/dist-electron/renderer/assets/_baseUniq-Cd6KMhyP.js.gz +0 -0
- package/dist-electron/renderer/assets/{arc-D5Y8sObu.js → arc-BeDNmpya.js} +1 -1
- package/dist-electron/renderer/assets/arc-BeDNmpya.js.gz +0 -0
- package/dist-electron/renderer/assets/{architectureDiagram-Q4EWVU46-Dk0KuAk6.js → architectureDiagram-Q4EWVU46-CnWU5PnR.js} +5 -5
- package/dist-electron/renderer/assets/architectureDiagram-Q4EWVU46-CnWU5PnR.js.gz +0 -0
- package/dist-electron/renderer/assets/{blockDiagram-DXYQGD6D-RROzjSS4.js → blockDiagram-DXYQGD6D-B9rNlDVj.js} +6 -6
- package/dist-electron/renderer/assets/blockDiagram-DXYQGD6D-B9rNlDVj.js.gz +0 -0
- package/dist-electron/renderer/assets/{c4Diagram-AHTNJAMY-COr4yxZO.js → c4Diagram-AHTNJAMY-DTgNP3Iw.js} +2 -2
- package/dist-electron/renderer/assets/c4Diagram-AHTNJAMY-DTgNP3Iw.js.gz +0 -0
- package/dist-electron/renderer/assets/{channel-D7c0puHw.js → channel-BfZUuPdo.js} +1 -1
- package/dist-electron/renderer/assets/{chunk-4BX2VUAB-zon6ESDT.js → chunk-4BX2VUAB-l5bA-Sjq.js} +1 -1
- package/dist-electron/renderer/assets/{chunk-4TB4RGXK-t5PuOocg.js → chunk-4TB4RGXK-CdlbWYt_.js} +5 -5
- package/dist-electron/renderer/assets/chunk-4TB4RGXK-CdlbWYt_.js.gz +0 -0
- package/dist-electron/renderer/assets/{chunk-55IACEB6-BKk3Kjuh.js → chunk-55IACEB6-DoWfU52U.js} +1 -1
- package/dist-electron/renderer/assets/{chunk-EDXVE4YY-D07Bk7Ts.js → chunk-EDXVE4YY-BzNNBO_8.js} +1 -1
- package/dist-electron/renderer/assets/chunk-EDXVE4YY-BzNNBO_8.js.gz +0 -0
- package/dist-electron/renderer/assets/{chunk-FMBD7UC4-ridqi0-s.js → chunk-FMBD7UC4-kZ24-i_g.js} +1 -1
- package/dist-electron/renderer/assets/{chunk-OYMX7WX6-BJStQEVA.js → chunk-OYMX7WX6-BcAHPOyy.js} +3 -3
- package/dist-electron/renderer/assets/chunk-OYMX7WX6-BcAHPOyy.js.gz +0 -0
- package/dist-electron/renderer/assets/{chunk-QZHKN3VN-4ZDs5jRy.js → chunk-QZHKN3VN-CAHKGd6k.js} +1 -1
- package/dist-electron/renderer/assets/{chunk-YZCP3GAM-WMu5UJ_J.js → chunk-YZCP3GAM-bwnLI33o.js} +1 -1
- package/dist-electron/renderer/assets/chunk-YZCP3GAM-bwnLI33o.js.gz +0 -0
- package/dist-electron/renderer/assets/{classDiagram-6PBFFD2Q-WQ6mAQ8p.js → classDiagram-6PBFFD2Q-CUB864F9.js} +6 -6
- package/dist-electron/renderer/assets/{classDiagram-v2-HSJHXN6E-WQ6mAQ8p.js → classDiagram-v2-HSJHXN6E-CUB864F9.js} +6 -6
- package/dist-electron/renderer/assets/{clone-wHUtBPLK.js → clone-xmHKp1sq.js} +1 -1
- package/dist-electron/renderer/assets/{cose-bilkent-S5V4N54A-C7-3WlAT.js → cose-bilkent-S5V4N54A-ByOVyfu_.js} +1 -1
- package/dist-electron/renderer/assets/cose-bilkent-S5V4N54A-ByOVyfu_.js.gz +0 -0
- package/dist-electron/renderer/assets/{dagre-KV5264BT-CgU6PfJs.js → dagre-KV5264BT-Cg9YT1xz.js} +6 -6
- package/dist-electron/renderer/assets/dagre-KV5264BT-Cg9YT1xz.js.gz +0 -0
- package/dist-electron/renderer/assets/{diagram-5BDNPKRD-NYjY1WSI.js → diagram-5BDNPKRD-N-r5wCxr.js} +6 -6
- package/dist-electron/renderer/assets/diagram-5BDNPKRD-N-r5wCxr.js.gz +0 -0
- package/dist-electron/renderer/assets/{diagram-G4DWMVQ6-BWToylUw.js → diagram-G4DWMVQ6-BA5GZndq.js} +6 -6
- package/dist-electron/renderer/assets/diagram-G4DWMVQ6-BA5GZndq.js.gz +0 -0
- package/dist-electron/renderer/assets/{diagram-MMDJMWI5-CYOS--AG.js → diagram-MMDJMWI5-DBG89SrK.js} +5 -5
- package/dist-electron/renderer/assets/diagram-MMDJMWI5-DBG89SrK.js.gz +0 -0
- package/dist-electron/renderer/assets/{diagram-TYMM5635-DbR10Nbc.js → diagram-TYMM5635-Saa7LkSc.js} +5 -5
- package/dist-electron/renderer/assets/diagram-TYMM5635-Saa7LkSc.js.gz +0 -0
- package/dist-electron/renderer/assets/{erDiagram-SMLLAGMA-0fqlEFM9.js → erDiagram-SMLLAGMA-CCvyAUKF.js} +4 -4
- package/dist-electron/renderer/assets/erDiagram-SMLLAGMA-CCvyAUKF.js.gz +0 -0
- package/dist-electron/renderer/assets/{flowDiagram-DWJPFMVM-DbCFy4Q1.js → flowDiagram-DWJPFMVM-CNAySAhx.js} +6 -6
- package/dist-electron/renderer/assets/flowDiagram-DWJPFMVM-CNAySAhx.js.gz +0 -0
- package/dist-electron/renderer/assets/{ganttDiagram-T4ZO3ILL-99E_sjoR.js → ganttDiagram-T4ZO3ILL-CecC2wHb.js} +1 -1
- package/dist-electron/renderer/assets/ganttDiagram-T4ZO3ILL-CecC2wHb.js.gz +0 -0
- package/dist-electron/renderer/assets/{gitGraphDiagram-UUTBAWPF-BYQMGCe1.js → gitGraphDiagram-UUTBAWPF-DfYql5OI.js} +6 -6
- package/dist-electron/renderer/assets/gitGraphDiagram-UUTBAWPF-DfYql5OI.js.gz +0 -0
- package/dist-electron/renderer/assets/{graph-I1gBTVcf.js → graph-DU-V9gO6.js} +2 -2
- package/dist-electron/renderer/assets/graph-DU-V9gO6.js.gz +0 -0
- package/dist-electron/renderer/assets/{index-DwIqVvJQ.css → index-Bg2KVBzU.css} +903 -524
- package/dist-electron/renderer/assets/index-Bg2KVBzU.css.gz +0 -0
- package/dist-electron/renderer/assets/{index-Bq9gK3yW.js → index-Ct9Hwvus.js} +2810 -1262
- package/dist-electron/renderer/assets/index-Ct9Hwvus.js.gz +0 -0
- package/dist-electron/renderer/assets/{infoDiagram-42DDH7IO-KLNN6MTr.js → infoDiagram-42DDH7IO-PPLbRW-4.js} +4 -4
- package/dist-electron/renderer/assets/{ishikawaDiagram-UXIWVN3A-CIpUwlD6.js → ishikawaDiagram-UXIWVN3A-BJYqQjNN.js} +1 -1
- package/dist-electron/renderer/assets/ishikawaDiagram-UXIWVN3A-BJYqQjNN.js.gz +0 -0
- package/dist-electron/renderer/assets/{journeyDiagram-VCZTEJTY-Cf5eOwIT.js → journeyDiagram-VCZTEJTY-DsWKbkeD.js} +4 -4
- package/dist-electron/renderer/assets/journeyDiagram-VCZTEJTY-DsWKbkeD.js.gz +0 -0
- package/dist-electron/renderer/assets/{kanban-definition-6JOO6SKY-D-AiOtub.js → kanban-definition-6JOO6SKY-CDxJLRZA.js} +2 -2
- package/dist-electron/renderer/assets/kanban-definition-6JOO6SKY-CDxJLRZA.js.gz +0 -0
- package/dist-electron/renderer/assets/{layout-oRQlDrmR.js → layout-DWL1fnIc.js} +4 -4
- package/dist-electron/renderer/assets/layout-DWL1fnIc.js.gz +0 -0
- package/dist-electron/renderer/assets/{min-CJbOmPi5.js → min-CH5IMQz3.js} +2 -2
- package/dist-electron/renderer/assets/min-CH5IMQz3.js.gz +0 -0
- package/dist-electron/renderer/assets/{mindmap-definition-QFDTVHPH-DKKEXzR5.js → mindmap-definition-QFDTVHPH-CqllRxov.js} +3 -3
- package/dist-electron/renderer/assets/mindmap-definition-QFDTVHPH-CqllRxov.js.gz +0 -0
- package/dist-electron/renderer/assets/{pieDiagram-DEJITSTG-BE5F3KPb.js → pieDiagram-DEJITSTG-CbcGJHeL.js} +6 -6
- package/dist-electron/renderer/assets/pieDiagram-DEJITSTG-CbcGJHeL.js.gz +0 -0
- package/dist-electron/renderer/assets/{quadrantDiagram-34T5L4WZ-D0gMai7D.js → quadrantDiagram-34T5L4WZ-qCo_ja2B.js} +1 -1
- package/dist-electron/renderer/assets/quadrantDiagram-34T5L4WZ-qCo_ja2B.js.gz +0 -0
- package/dist-electron/renderer/assets/{requirementDiagram-MS252O5E-C3xERMVY.js → requirementDiagram-MS252O5E-B2Pe66uY.js} +3 -3
- package/dist-electron/renderer/assets/requirementDiagram-MS252O5E-B2Pe66uY.js.gz +0 -0
- package/dist-electron/renderer/assets/{sankeyDiagram-XADWPNL6-DWRyCRF7.js → sankeyDiagram-XADWPNL6-CzWD-MNf.js} +1 -1
- package/dist-electron/renderer/assets/sankeyDiagram-XADWPNL6-CzWD-MNf.js.gz +0 -0
- package/dist-electron/renderer/assets/{sequenceDiagram-FGHM5R23-CXOjG4Pk.js → sequenceDiagram-FGHM5R23-BZRIOGYF.js} +3 -3
- package/dist-electron/renderer/assets/sequenceDiagram-FGHM5R23-BZRIOGYF.js.gz +0 -0
- package/dist-electron/renderer/assets/{stateDiagram-FHFEXIEX-BFGMsjAA.js → stateDiagram-FHFEXIEX-CHLPdfbn.js} +8 -8
- package/dist-electron/renderer/assets/stateDiagram-FHFEXIEX-CHLPdfbn.js.gz +0 -0
- package/dist-electron/renderer/assets/{stateDiagram-v2-QKLJ7IA2-TQ4k_Ake.js → stateDiagram-v2-QKLJ7IA2-8iBltSQD.js} +4 -4
- package/dist-electron/renderer/assets/{timeline-definition-GMOUNBTQ-we4olq0q.js → timeline-definition-GMOUNBTQ-BTKekCiN.js} +2 -2
- package/dist-electron/renderer/assets/timeline-definition-GMOUNBTQ-BTKekCiN.js.gz +0 -0
- package/dist-electron/renderer/assets/{vennDiagram-DHZGUBPP-ByyCWjrf.js → vennDiagram-DHZGUBPP-Ccbx5Aye.js} +1 -1
- package/dist-electron/renderer/assets/vennDiagram-DHZGUBPP-Ccbx5Aye.js.gz +0 -0
- package/dist-electron/renderer/assets/{wardley-RL74JXVD-DjV5krT-.js → wardley-RL74JXVD-B3wNqgCA.js} +3 -3
- package/dist-electron/renderer/assets/wardley-RL74JXVD-B3wNqgCA.js.gz +0 -0
- package/dist-electron/renderer/assets/{wardleyDiagram-NUSXRM2D-CnkU2yG8.js → wardleyDiagram-NUSXRM2D-Cw5dzdVm.js} +5 -5
- package/dist-electron/renderer/assets/wardleyDiagram-NUSXRM2D-Cw5dzdVm.js.gz +0 -0
- package/dist-electron/renderer/assets/{xychartDiagram-5P7HB3ND-CcyVXC1b.js → xychartDiagram-5P7HB3ND-qtorfk-Q.js} +1 -1
- package/dist-electron/renderer/assets/xychartDiagram-5P7HB3ND-qtorfk-Q.js.gz +0 -0
- package/dist-electron/renderer/index.html +2 -2
- package/package.json +3 -2
- package/dist-electron/renderer/assets/_baseUniq-BwtMDG1-.js.gz +0 -0
- package/dist-electron/renderer/assets/arc-D5Y8sObu.js.gz +0 -0
- package/dist-electron/renderer/assets/architectureDiagram-Q4EWVU46-Dk0KuAk6.js.gz +0 -0
- package/dist-electron/renderer/assets/blockDiagram-DXYQGD6D-RROzjSS4.js.gz +0 -0
- package/dist-electron/renderer/assets/c4Diagram-AHTNJAMY-COr4yxZO.js.gz +0 -0
- package/dist-electron/renderer/assets/chunk-4TB4RGXK-t5PuOocg.js.gz +0 -0
- package/dist-electron/renderer/assets/chunk-EDXVE4YY-D07Bk7Ts.js.gz +0 -0
- package/dist-electron/renderer/assets/chunk-OYMX7WX6-BJStQEVA.js.gz +0 -0
- package/dist-electron/renderer/assets/chunk-YZCP3GAM-WMu5UJ_J.js.gz +0 -0
- package/dist-electron/renderer/assets/cose-bilkent-S5V4N54A-C7-3WlAT.js.gz +0 -0
- package/dist-electron/renderer/assets/dagre-KV5264BT-CgU6PfJs.js.gz +0 -0
- package/dist-electron/renderer/assets/diagram-5BDNPKRD-NYjY1WSI.js.gz +0 -0
- package/dist-electron/renderer/assets/diagram-G4DWMVQ6-BWToylUw.js.gz +0 -0
- package/dist-electron/renderer/assets/diagram-MMDJMWI5-CYOS--AG.js.gz +0 -0
- package/dist-electron/renderer/assets/diagram-TYMM5635-DbR10Nbc.js.gz +0 -0
- package/dist-electron/renderer/assets/erDiagram-SMLLAGMA-0fqlEFM9.js.gz +0 -0
- package/dist-electron/renderer/assets/flowDiagram-DWJPFMVM-DbCFy4Q1.js.gz +0 -0
- package/dist-electron/renderer/assets/ganttDiagram-T4ZO3ILL-99E_sjoR.js.gz +0 -0
- package/dist-electron/renderer/assets/gitGraphDiagram-UUTBAWPF-BYQMGCe1.js.gz +0 -0
- package/dist-electron/renderer/assets/graph-I1gBTVcf.js.gz +0 -0
- package/dist-electron/renderer/assets/index-Bq9gK3yW.js.gz +0 -0
- package/dist-electron/renderer/assets/index-DwIqVvJQ.css.gz +0 -0
- package/dist-electron/renderer/assets/ishikawaDiagram-UXIWVN3A-CIpUwlD6.js.gz +0 -0
- package/dist-electron/renderer/assets/journeyDiagram-VCZTEJTY-Cf5eOwIT.js.gz +0 -0
- package/dist-electron/renderer/assets/kanban-definition-6JOO6SKY-D-AiOtub.js.gz +0 -0
- package/dist-electron/renderer/assets/layout-oRQlDrmR.js.gz +0 -0
- package/dist-electron/renderer/assets/min-CJbOmPi5.js.gz +0 -0
- package/dist-electron/renderer/assets/mindmap-definition-QFDTVHPH-DKKEXzR5.js.gz +0 -0
- package/dist-electron/renderer/assets/pieDiagram-DEJITSTG-BE5F3KPb.js.gz +0 -0
- package/dist-electron/renderer/assets/quadrantDiagram-34T5L4WZ-D0gMai7D.js.gz +0 -0
- package/dist-electron/renderer/assets/requirementDiagram-MS252O5E-C3xERMVY.js.gz +0 -0
- package/dist-electron/renderer/assets/sankeyDiagram-XADWPNL6-DWRyCRF7.js.gz +0 -0
- package/dist-electron/renderer/assets/sequenceDiagram-FGHM5R23-CXOjG4Pk.js.gz +0 -0
- package/dist-electron/renderer/assets/stateDiagram-FHFEXIEX-BFGMsjAA.js.gz +0 -0
- package/dist-electron/renderer/assets/timeline-definition-GMOUNBTQ-we4olq0q.js.gz +0 -0
- package/dist-electron/renderer/assets/vennDiagram-DHZGUBPP-ByyCWjrf.js.gz +0 -0
- package/dist-electron/renderer/assets/wardley-RL74JXVD-DjV5krT-.js.gz +0 -0
- package/dist-electron/renderer/assets/wardleyDiagram-NUSXRM2D-CnkU2yG8.js.gz +0 -0
- package/dist-electron/renderer/assets/xychartDiagram-5P7HB3ND-CcyVXC1b.js.gz +0 -0
package/RELEASE_NOTES.md
ADDED
|
@@ -0,0 +1,1514 @@
|
|
|
1
|
+
# Release Notes
|
|
2
|
+
|
|
3
|
+
## v1.10.12
|
|
4
|
+
发布日期:`2026-06-01`
|
|
5
|
+
> 对比 `v1.10.11` → `v1.10.12`,共 `58` 个非合并提交
|
|
6
|
+
|
|
7
|
+
### ✨ 你会直接感受到的升级
|
|
8
|
+
|
|
9
|
+
- **企业微信外部会话更像独立对话**:外部渠道可以按真实会话自动创建和路由对话,减少不同客户或群聊消息串线
|
|
10
|
+
- **定时任务可以回到绑定渠道**:定时任务执行后的回复能外发到绑定渠道,让自动任务不只停留在应用内
|
|
11
|
+
- **消息搜索更可用**:搜索范围收口到当前对话,跳转后会定位并高亮目标位置,查历史对话更少迷路
|
|
12
|
+
- **模型重试状态更透明**:模型重试和备用模型接管会在消息中体现,用户能看见系统正在自救,而不是误以为卡住
|
|
13
|
+
- **选中文本引用更自然**:引用按钮只在合适时机出现,避免选择文字时被无关入口打扰
|
|
14
|
+
|
|
15
|
+
### 🐛 重要修复
|
|
16
|
+
|
|
17
|
+
- **企业微信长回复更完整**:修复长回复、超时提示和流式状态边界,减少外部渠道回复截断或提示时机不对
|
|
18
|
+
- **任务引导不再重复打扰**:运行中引导会按正确位置插入,完成后隐藏,刷新后也不再冒出已经处理过的提示
|
|
19
|
+
- **流读取异常会正确重试**:上游流读取错误会按连接失败处理并进入重试链路,减少一次网络波动直接终止回复
|
|
20
|
+
- **未知斜杠输入不再误触发 Skill**:普通 `/xxx` 输入不会被错误当作 Skill 命令,手动加载 Skill 的连续性也更可靠
|
|
21
|
+
- **广播停止态更准确**:停止广播后 Agent 会及时显示取消状态,避免界面还像任务仍在运行
|
|
22
|
+
- **上下文整理与消息更新更稳**:上下文整理、消息确认后的滚动位置和运行中状态更新边界更可靠
|
|
23
|
+
|
|
24
|
+
### 📐 内部整理
|
|
25
|
+
|
|
26
|
+
- **对话主概念继续收口**:事件、快照、上下文整理、前端视图和群协作任务进一步统一到同一套对话语义
|
|
27
|
+
- **渠道自动分流模型收紧**:企业微信自动路由、渠道目标归一化和对话映射存储边界更清楚
|
|
28
|
+
- **运行时临时状态边界收口**:临时输入、重试延迟和广播工作调用标识的职责更清楚
|
|
29
|
+
- **夜间记忆整理存储更可靠**:群记忆摘要、每日提取和 consolidation 存储链路补齐测试和故障边界
|
|
30
|
+
- **界面细节清理**:MCP 服务卡片、广播卡片、readFile 展开高度和焦点态样式更克制
|
|
31
|
+
|
|
32
|
+
### 🧪 质量门禁
|
|
33
|
+
|
|
34
|
+
- **发版门禁通过**:TypeScript 类型检查、全量单元测试和 Playwright E2E 均已通过
|
|
35
|
+
|
|
36
|
+
## v1.10.11
|
|
37
|
+
发布日期:`2026-05-28`
|
|
38
|
+
> 对比 `v1.10.10` → `v1.10.11`,共 `35` 个非合并提交
|
|
39
|
+
|
|
40
|
+
### ✨ 你会直接感受到的升级
|
|
41
|
+
|
|
42
|
+
- **上下文过长时恢复更稳**:模型窗口溢出后会按目标收缩上下文,并限制摘要回退长度,长对话更少因为上下文过大中断
|
|
43
|
+
- **检查更新下载更可靠**:下载前会重新检查最新版本,避免拿着旧更新信息去下载
|
|
44
|
+
- **文件引用更顺手**:文件预览支持选区引用,引用行号展示更准确,围绕代码或文档片段追问更自然
|
|
45
|
+
- **Skill 补全更可靠**:打开 Skill 补全时会刷新列表,确保可用 Skill 更及时地出现在候选项里
|
|
46
|
+
|
|
47
|
+
### 🐛 重要修复
|
|
48
|
+
|
|
49
|
+
- **Goal Review 最终回复实时显示**:监督检查结束后的最终回复会正常流式呈现,不再等到结束才出现或显示不完整
|
|
50
|
+
- **引导消息刷新后不再重现**:任务引导消息在刷新和重载后保持正确状态,避免已经处理过的提示再次冒出来
|
|
51
|
+
- **广播长回复不再撑爆上下文**:后台广播处理长回复时更稳,减少因为上下文溢出导致的失败
|
|
52
|
+
- **企业微信工具状态更准确**:外部渠道会显示工具处理中状态,工具状态边界也更稳,不再让用户误以为回复停住
|
|
53
|
+
- **上游请求失败识别更准确**:模型上游请求失败会被归类为连接错误,退出前配置会正确落盘
|
|
54
|
+
|
|
55
|
+
### 📐 内部整理
|
|
56
|
+
|
|
57
|
+
- **Goal 模式执行纪律收紧**:完成判定提示和执行边界更明确,减少监督流程误判
|
|
58
|
+
- **发版前回归问题收口**:集中修复交叉 review 发现的状态、上下文和边界问题,减少相邻能力互相回退
|
|
59
|
+
- **CLI 版本信息修复**:关于页版本展示与实际包版本保持一致
|
|
60
|
+
|
|
61
|
+
### 🧪 质量门禁
|
|
62
|
+
|
|
63
|
+
- **发版门禁通过**:TypeScript 类型检查、全量单元测试和 Playwright E2E 均已通过
|
|
64
|
+
|
|
65
|
+
## v1.10.10
|
|
66
|
+
发布日期:`2026-05-27`
|
|
67
|
+
> 对比 `v1.10.9` → `v1.10.10`,共 `30` 个非合并提交
|
|
68
|
+
|
|
69
|
+
### ✨ 你会直接感受到的升级
|
|
70
|
+
|
|
71
|
+
- **消息引用更顺手**:选中文本后可直接引用到输入框,回到上下文追问或摘录重点更快
|
|
72
|
+
- **任务引导更清楚**:执行过程中需要补充信息时,会以独立引导消息呈现,用户更容易理解下一步该做什么
|
|
73
|
+
- **输入框状态更自然**:聚焦和激活态视觉更轻,快捷命令也能保留当前草稿,减少误清空
|
|
74
|
+
|
|
75
|
+
### 🐛 重要修复
|
|
76
|
+
|
|
77
|
+
- **加载更多历史消息不再跳动**:点击“加载更多消息”后当前阅读位置会被钉住,不再突然上跳或下跳
|
|
78
|
+
- **网络连接异常提示更友好**:连接错误会被识别为可重试模型错误,前端展示更可理解的失败说明
|
|
79
|
+
- **Session 切换更稳定**:切换讨论时成员和加载状态更少出现短暂错位或残留
|
|
80
|
+
- **运行时引导状态更可靠**:引导消息的隐藏、转移和队列状态保持一致,避免重复展示或状态不同步
|
|
81
|
+
- **长回复与空回复边界更稳**:流式持久化、压缩重试和空回复状态处理更完整,减少异常卡住
|
|
82
|
+
|
|
83
|
+
### 📐 内部整理
|
|
84
|
+
|
|
85
|
+
- **任务引导链路收口**:从消息块骨架、状态机到运行时注入形成完整边界,便于后续扩展
|
|
86
|
+
- **Skill Hub 文档整理**:合并网页详情链接和设计文档,Skill 相关入口更易维护
|
|
87
|
+
- **消息可见性类型补全**:补齐引导消息块的可见性判断,提交阶段主进程类型检查保持完整
|
|
88
|
+
|
|
89
|
+
### 🧪 质量门禁
|
|
90
|
+
|
|
91
|
+
- **发版门禁通过**:TypeScript 类型检查、全量单元测试和 Playwright E2E 均已通过
|
|
92
|
+
|
|
93
|
+
## v1.10.9
|
|
94
|
+
发布日期:`2026-05-27`
|
|
95
|
+
> 对比 `v1.10.8` → `v1.10.9`,共 `2` 个提交
|
|
96
|
+
|
|
97
|
+
### 🐛 重要修复
|
|
98
|
+
|
|
99
|
+
- **企业微信回复超时不再中断对话**:外部渠道回复超时后仅提示超时信息,继续等待后续执行,不再直接终止整轮运行
|
|
100
|
+
- **命令按钮不再误显示 Skill 列表**:点击工具栏命令按钮只展示系统命令(`/clear`、`/compact`、`/goal`),输入 `/` 触发补全时才展示 Skill 搜索结果
|
|
101
|
+
|
|
102
|
+
## v1.10.8
|
|
103
|
+
发布日期:`2026-05-27`
|
|
104
|
+
> 对比 `v1.10.7` → `v1.10.8`,共 `29` 个非合并提交
|
|
105
|
+
|
|
106
|
+
### ✨ 你会直接感受到的升级
|
|
107
|
+
|
|
108
|
+
- **企业微信长对话回复更稳**:长 Session 触发上下文整理时不再容易卡住,外部消息更少出现长时间无响应
|
|
109
|
+
- **上下文整理失败会自动自救**:摘要服务异常或整理结果仍过大时,会自动降级为本地裁剪,优先保证本轮回复继续执行
|
|
110
|
+
- **Skill 可手动按需加载**:在消息开头输入 `/skill-name` 即可为本次请求加载指定 Skill,专业任务不必等系统自动判断
|
|
111
|
+
- **长对话整理更稳**:超长上下文会按模型窗口分块摘要,减少整理时因上下文过大导致失败
|
|
112
|
+
- **剪贴板文件粘贴更可靠**:修复文件粘贴路径处理问题,粘贴上传更少失败
|
|
113
|
+
|
|
114
|
+
### 🐛 重要修复
|
|
115
|
+
|
|
116
|
+
- **企业微信回复 loading 不再卡住**:修复企业微信渠道在回复无内容、出错等边界情况下 loading 状态永远不消失的问题
|
|
117
|
+
- **群聊单 @ 正确路由**:修复群聊中只 @ 一个 Agent 时发言人没有切换到被 @ Agent 的问题
|
|
118
|
+
- **Skill 加载后能被可靠记住本轮上下文**:手动加载 Skill 后,模型看到的 Skill 指令会正确进入会话上下文,避免后续保存或压缩时丢失本轮执行依据
|
|
119
|
+
- **Skill 指令不会污染子任务和广播**:任务继承与群内广播会过滤一次性 Skill 指令,避免把“本轮专用”的指令扩散给其他 Agent
|
|
120
|
+
- **企业微信超时兜底修复**:外部渠道执行超时后会正确收口流式状态并返回失败提示,避免队列永久卡住
|
|
121
|
+
- **本轮用户消息不会被裁掉**:强制裁剪会保护当前用户输入,避免为了恢复上下文而丢失刚发送的问题
|
|
122
|
+
- **快捷命令不再重复触发**:`/compact`、`/clear` 等直接发送命令统一走发送锁,避免连续按键造成重复执行
|
|
123
|
+
- **Goal 完成后不再误续监督模式**:Goal 已完成后,后续普通消息不会继续被路由到旧监督者
|
|
124
|
+
- **Goal Review 结论不再重复展示**:完成结论从工具详情中剥离,只在回复区域展示一次
|
|
125
|
+
- **聊天滚动锚定更稳**:阅读历史时不会被新输出强行拉回底部
|
|
126
|
+
|
|
127
|
+
### 📐 内部整理
|
|
128
|
+
|
|
129
|
+
- **渠道回复生命周期重构**:提取 sendTextReply / finishStartedStreams,所有退出路径统一关闭 stream,消除 ChannelManager 重复代码
|
|
130
|
+
- **上下文压缩失败路径收口**:首轮摘要失败后进入确定性裁剪路径,压缩生命周期事件和测试同步更新
|
|
131
|
+
- **Skill 上下文边界拆分**:会话保存、当前请求输入、任务/广播继承分别使用不同清理规则,避免一个过滤函数承担多种语义
|
|
132
|
+
- **压缩保护窗口更准确**:压缩时只把真实用户消息作为用户意图边界,不再把系统提醒或一次性 Skill 指令当作用户输入
|
|
133
|
+
- **摘要预算接入真实模型窗口**:上下文整理按实际模型输入窗口决定是否分块,减少靠异常兜底
|
|
134
|
+
|
|
135
|
+
### 🧪 质量门禁
|
|
136
|
+
|
|
137
|
+
- **类型检查与自动化测试通过**:提交阶段类型检查与全量单元测试已通过;重新发布前继续执行 E2E、打包和上传发布产物
|
|
138
|
+
|
|
139
|
+
## v1.10.7
|
|
140
|
+
发布日期:`2026-05-26`
|
|
141
|
+
> 对比 `v1.10.6` → `v1.10.7`,共 `44` 个非合并提交
|
|
142
|
+
|
|
143
|
+
### ✨ 你会直接感受到的升级
|
|
144
|
+
|
|
145
|
+
- **用户消息可以重新发送**:用户消息操作栏新增重发按钮,点选即可重新提交消息,无需手动复制再粘贴
|
|
146
|
+
- **流式输出上滚不再被拉回**:阅读中向上滚动时,新内容到达不再强制拉到底部,读长回复更自在
|
|
147
|
+
- **限流自动退避重试**:模型返回限流错误时会自动退避重试,减少因瞬时限流导致的发送失败
|
|
148
|
+
- **Goal Review 过程可见且结论更准确**:监督模式检查时会展示流式输出,且只采用最后一个有效结论,避免中间过程被误判为最终结果
|
|
149
|
+
- **使用统计面板增加常用话术**:统计面板新增常用话术统计,支持一键加入快捷回复,高频提示词不再需要反复手动输入
|
|
150
|
+
- **Tool Call 看板**:遥测面板新增工具调用统计看板,便于诊断和优化 Agent 工具使用情况
|
|
151
|
+
- **粘贴目录自动打包上传**:粘贴文件目录到输入框时自动打包为压缩包上传,拖拽和粘贴识别更准确
|
|
152
|
+
- **首 token 前显示加载状态**:发送消息后到第一个 token 到达之间有明确的加载指示,减少"发了没反应"的等待焦虑
|
|
153
|
+
|
|
154
|
+
### 🐛 重要修复
|
|
155
|
+
|
|
156
|
+
- **企微渠道稳定性修复**:修复企微连接卡死和流式回复过期降级问题,长时间对话更稳定
|
|
157
|
+
- **单聊空 Session 修复**:修复直聊场景下自动创建空 Session 的问题,减少无效会话残留
|
|
158
|
+
- **Goal 单 @ 切换发言人**:Goal 模式下单 @ 切换发言人正常工作,减少协作错位
|
|
159
|
+
- **Goal 工作区实例隔离**:每次 Goal 执行使用独立工作区,避免多次执行之间的状态污染
|
|
160
|
+
- **压缩状态消息同步**:上下文压缩后状态提示及时更新,减少状态与实际不一致
|
|
161
|
+
- **空文本块不再渲染为空白行**:模型返回的空文本内容不再在界面留下空白行
|
|
162
|
+
- **移动端折叠消息宽度修复**:移动端折叠消息不再撑爆布局
|
|
163
|
+
- **Sandbox 启动失败修复**:修复沙盒模式预加载依赖导致的应用启动失败
|
|
164
|
+
- **渲染进程 Node 路径依赖修复**:移除渲染进程中对 Node 路径模块的不当引用,减少打包异常
|
|
165
|
+
|
|
166
|
+
### 📐 内部整理
|
|
167
|
+
|
|
168
|
+
- **上下文压缩架构重构**:压缩逻辑从 WorkerRuntime 抽离为独立 Compactor 子系统,多轮重试、token 估算和状态判断各自收口
|
|
169
|
+
- **日志路径架构集中化**:日志目录解析和五类目录结构统一集中管理
|
|
170
|
+
- **System Prompt 拼接结构优化**:提示词拼接逻辑结构化重构,更易维护和扩展
|
|
171
|
+
- **遥测上报策略完善**:补充遥测上报边界处理和策略细节
|
|
172
|
+
- **定时任务持久化调度器生命周期修复**:调度器 shutdown、reinit、并发初始化等边界条件更健壮
|
|
173
|
+
- **思考过程标题样式统一**
|
|
174
|
+
|
|
175
|
+
### 🧪 质量门禁
|
|
176
|
+
|
|
177
|
+
- **定时任务持久化 E2E 补充**:新增 Playwright E2E 覆盖定时任务创建、编辑、启用、触发和禁用完整流程
|
|
178
|
+
|
|
179
|
+
## v1.10.6
|
|
180
|
+
发布日期:`2026-05-25`
|
|
181
|
+
> 对比 `v1.10.5` → `v1.10.6`,共 `18` 个提交(含 `9` 个非合并提交)
|
|
182
|
+
|
|
183
|
+
### ✨ 你会直接感受到的升级
|
|
184
|
+
|
|
185
|
+
- **Goal Review 过程更清楚**:监督模式完成检查会展示工具调用与最终回复,失败时也会明确提示为什么需要重试
|
|
186
|
+
- **长对话更少误判超限**:上下文整理后只轻微超过估算上限时会继续尝试执行,减少因估算误差导致的提前失败
|
|
187
|
+
- **思考状态不再一直计时**:模型开始输出答案或新的思考块后,旧思考状态会自动结束,界面状态更可信
|
|
188
|
+
- **安装包更轻**:打包时裁剪图片处理依赖中的非运行文件,并只保留中英文 Electron 语言资源,下载安装负担更小
|
|
189
|
+
|
|
190
|
+
### 🐛 重要修复
|
|
191
|
+
|
|
192
|
+
- **Goal Review 兼容性修复**:兼容工具结果被包装成 JSON 的情况,避免明明已提交结论却被当成无效结果
|
|
193
|
+
- **Goal Review 错误提示修复**:缺少工具调用、工具无结果、参数校验失败或结构不完整时,会给出可操作的重试原因
|
|
194
|
+
- **长上下文整理兜底修复**:主动整理后仍超限时会再进行更激进的修复,无法修复时才返回明确的上下文超限
|
|
195
|
+
- **思考块残留修复**:旧的思考块不会因为没有显式结束事件而持续显示为运行中
|
|
196
|
+
|
|
197
|
+
### 📐 内部整理
|
|
198
|
+
|
|
199
|
+
- **消息块合并逻辑去重**:广播响应状态更新逻辑收口到共享实现,减少前后端投影行为分叉
|
|
200
|
+
- **群聊发言人回退逻辑精简**:提取群成员回退选择逻辑,降低重复分支
|
|
201
|
+
- **打包裁剪增加边界保护**:裁剪脚本仅处理安装包解包目录内的图片处理依赖,并保留运行时必需文件
|
|
202
|
+
|
|
203
|
+
### 🧪 质量门禁
|
|
204
|
+
|
|
205
|
+
- **发版门禁通过**:类型检查、全量单元测试、Playwright E2E 和多平台打包均已通过
|
|
206
|
+
|
|
207
|
+
## v1.10.5
|
|
208
|
+
发布日期:`2026-05-24`
|
|
209
|
+
> 对比 `v1.10.4` → `v1.10.5`,共 `91` 个提交(含 `70` 个非合并提交)
|
|
210
|
+
|
|
211
|
+
### ✨ 你会直接感受到的升级
|
|
212
|
+
|
|
213
|
+
- **Goal 模式入口更自然**:Goal 模式迁入斜杠命令,补齐入口与执行回归,发起监督式协作更直接
|
|
214
|
+
- **使用统计更好读**:新增使用统计管线,并优化桌面端、移动端和浏览器访问场景,token、缓存和运行用量更容易核对
|
|
215
|
+
- **斜杠命令点击更顺手**:点击 `/clear`、`/compact` 会直接发送,其他命令仍回填输入框,减少多余确认
|
|
216
|
+
- **Skill 触发更可靠**:可用 Skill 会以更清楚的任务路由方式提示,Agent 更容易在需要专业能力时先加载对应 Skill
|
|
217
|
+
- **长内容显示更稳**:消息、任务块和协作子块改用更克制的虚拟渲染与折叠布局,长回复滚动更顺,不再轻易出现零高度或宽度坍塌
|
|
218
|
+
- **夜间整理覆盖更完整**:夜间整理支持所有群和 Agent,群记忆整理链路更清晰,跨范围保存不再容易回退
|
|
219
|
+
- **图片生成通道更可靠**:OpenAI 图片生成切换为官方 SDK 调用,减少兼容层差异导致的失败
|
|
220
|
+
|
|
221
|
+
### 🐛 重要修复
|
|
222
|
+
|
|
223
|
+
- **长对话超限自救修复**:上下文溢出识别、主动压缩后仍超限、旧压缩状态回退等场景已收口,长 Session 更少卡死在超限边界
|
|
224
|
+
- **Goal Review 不再丢结论或重复结论**:修复普通回复跳过 Review、多次结论静默竞争、完成态重复展示和重复触发问题
|
|
225
|
+
- **流式思考状态更干净**:残留流式状态会在快照和消息投影中归一化,思考完成后自动折叠,刷新后更少看到“还在生成”的假象
|
|
226
|
+
- **斜杠命令不再自己弹回**:修复命令弹窗自动复现和相关类型、断言问题,命令输入更可控
|
|
227
|
+
- **文件工具路径边界更准**:绝对路径访问会正确校验越界,文件访问历史跨轮次识别也更可靠
|
|
228
|
+
- **远程访问提及更准确**:提及名称包含空格时能正确切换发言人,减少外部渠道协作错位
|
|
229
|
+
|
|
230
|
+
### 📐 内部整理
|
|
231
|
+
|
|
232
|
+
- **监督模式工作区收口**:Goal 工作区改为文件优先模型,todo 嵌套任务和执行入口有更完整测试覆盖
|
|
233
|
+
- **群记忆维护边界收紧**:群记忆整理改为 manifest 驱动,两阶段整理和可观测信号更清楚
|
|
234
|
+
- **消息列表渲染链路瘦身**:协作子块、工具调用卡片、思考过程折叠箭头和头部高度统一收口
|
|
235
|
+
- **编码规范与交互文档补强**:补齐命令菜单交互规则、企业微信文档 MCP 配置教程和广播递归防护设计说明
|
|
236
|
+
|
|
237
|
+
### 🧪 质量门禁
|
|
238
|
+
|
|
239
|
+
- **发版门禁通过**:类型检查、全量单元测试和 Playwright E2E 已通过,发布包已按流程生成并重新上传
|
|
240
|
+
|
|
241
|
+
## v1.10.4
|
|
242
|
+
发布日期:`2026-05-22`
|
|
243
|
+
> 对比 `v1.10.3` → `v1.10.4`,共 `31` 个提交(含 `20` 个非合并提交)
|
|
244
|
+
|
|
245
|
+
### ✨ 你会直接感受到的升级
|
|
246
|
+
|
|
247
|
+
- **OpenAI 官方通道更稳定**:默认启用 Responses 路径,并补齐工具调用、图片生成和推理模型场景的兼容处理
|
|
248
|
+
- **长对话缓存更容易判断**:同一 Session 下会使用稳定缓存标识,诊断时能看到缓存命中 token 和推理 token 的完整用量
|
|
249
|
+
- **Skill 获取方式更灵活**:Skill 来源支持更多类型,SkillHub 的包分发和 Web 文件安装链路更完整
|
|
250
|
+
- **Markdown 预览更可靠**:预览里的相对路径资源会按当前文件位置解析,图片和本地资源更少丢失
|
|
251
|
+
|
|
252
|
+
### 🐛 重要修复
|
|
253
|
+
|
|
254
|
+
- **推理 token 观测修复**:Responses 返回的推理用量和缓存用量会被正确读取,减少看板和日志里的 token 误差
|
|
255
|
+
- **上下文状态隔离修复**:上下文状态按独立运行单元隔离,减少不同 Session / Agent 之间状态串扰
|
|
256
|
+
- **压缩命令不再误拦截**:跨 Session 使用上下文压缩时,斜杠命令识别更准确,避免正常命令被错误吞掉
|
|
257
|
+
- **工具调用加载状态更准**:工具调用是否仍在执行的判断更可靠,界面不再因为状态误判而提前结束加载感
|
|
258
|
+
|
|
259
|
+
### 📐 内部整理
|
|
260
|
+
|
|
261
|
+
- **Responses 请求链路可观测性增强**:补充本机调试 dump、请求前缀分析脚本和回归测试,便于排查缓存命中与工具循环问题
|
|
262
|
+
- **Skill Hub 分发链路收口**:补充包安装、来源管理、前端拆分和设计文档,为后续公开分发打基础
|
|
263
|
+
|
|
264
|
+
### 🧪 质量门禁
|
|
265
|
+
|
|
266
|
+
- **发版门禁通过**:类型检查和全量单元测试已通过,核心 Responses、Skill 安装、Markdown 预览和上下文状态链路均有回归覆盖
|
|
267
|
+
|
|
268
|
+
## v1.10.3
|
|
269
|
+
发布日期:`2026-05-21`
|
|
270
|
+
> 对比 `v1.10.2` → `v1.10.3`,共 `58` 个提交(含 `49` 个非合并提交)
|
|
271
|
+
|
|
272
|
+
### ✨ 你会直接感受到的升级
|
|
273
|
+
|
|
274
|
+
- **长对话更稳**:自动上下文整理在模型报上下文过长时会继续自救,不再因为前一次整理尝试失败就过早放弃
|
|
275
|
+
- **空回复不再装作成功**:模型连续返回空内容时会自动重试,仍失败会明确提示先压缩上下文后再试
|
|
276
|
+
- **GPT-5 系列体验更清楚**:补齐 GPT-5.4 / GPT-5.5 的上下文窗口配置,并改善推理类模型的通道识别
|
|
277
|
+
- **消息状态更可信**:运行中、完成、失败、取消等状态会被持久化,切换 Session 或刷新后更少出现状态错乱
|
|
278
|
+
- **定时任务能绑定 Session**:自动任务可以固定发送到指定 Session,减少任务跑到错误上下文里的风险
|
|
279
|
+
|
|
280
|
+
### 🐛 重要修复
|
|
281
|
+
|
|
282
|
+
- **上下文超限识别更准确**:模型返回 `context_length_exceeded`、`too many tokens` 等错误时,会正确进入上下文处理链路
|
|
283
|
+
- **OpenAI 通道恢复稳定**:回退不成熟的 Responses 续接链路,避免工具循环和兼容代理场景出现空消息或请求裁剪错误
|
|
284
|
+
- **停止回复按钮更稳定**:流式回复中按钮不会过早消失,用户可以持续中止正在生成的内容
|
|
285
|
+
- **流式消息显示修复**:切换 Session 后 token 用量和消息状态能正确回填,减少重复渲染和状态残留
|
|
286
|
+
- **外部渠道文件发送去重**:同一路径文件不会被重复发送,降低外部 IM 渠道的噪音
|
|
287
|
+
|
|
288
|
+
### 📐 内部整理
|
|
289
|
+
|
|
290
|
+
- **消息生命周期模型收口**:新增并落地 `status` 持久化边界,逐步减少对旧流式兼容字段的依赖
|
|
291
|
+
- **上下文整理链路补强**:整理结果会做预算校验,整理异常会被收口为结构化错误,避免错误边界外泄
|
|
292
|
+
- **遥测看板重设计**:诊断面板更聚焦运行现场,便于排查 token、缓存和长上下文问题
|
|
293
|
+
|
|
294
|
+
### 🧪 质量门禁
|
|
295
|
+
|
|
296
|
+
- **关键回归测试补强**:补充空响应重试、上下文超限识别、消息状态投影、OpenAI 通道和自动上下文整理相关测试
|
|
297
|
+
|
|
298
|
+
## v1.10.2
|
|
299
|
+
发布日期:`2026-05-20`
|
|
300
|
+
> 对比 `v1.10.1` → `v1.10.2`,共 `5` 个提交
|
|
301
|
+
|
|
302
|
+
### ✨ 你会直接感受到的升级
|
|
303
|
+
|
|
304
|
+
- **工具调用界面更安静**:工具还在执行时不能展开详情,避免看到未完成内容;执行结束后可以立即查看完整参数、结果和差异
|
|
305
|
+
- **Token 用量展示更完整**:缓存命中的 token 也会被计入展示,长上下文和缓存效果更容易判断
|
|
306
|
+
- **暗色模式更新说明更清楚**:更新说明预览区背景更协调,夜间查看不再突兀
|
|
307
|
+
|
|
308
|
+
### 🐛 重要修复
|
|
309
|
+
|
|
310
|
+
- **Intel Mac 启动崩溃修复**:修复 Intel 芯片 Mac 打开应用时可能因图片处理组件缺失而直接报错的问题
|
|
311
|
+
|
|
312
|
+
### 📐 内部整理
|
|
313
|
+
|
|
314
|
+
- **跨平台打包链路补强**:Mac 打包会同时带上 Intel 运行所需组件,并在异常退出时清理临时依赖
|
|
315
|
+
|
|
316
|
+
### 🧪 质量门禁
|
|
317
|
+
|
|
318
|
+
- **发版门禁通过**:类型检查和单元测试已通过,工具调用卡片补充了执行中不可展开的回归测试
|
|
319
|
+
|
|
320
|
+
## v1.10.1
|
|
321
|
+
发布日期:`2026-05-20`
|
|
322
|
+
> 对比 `v1.10.0` → `v1.10.1`,共 `11` 个提交
|
|
323
|
+
|
|
324
|
+
### ✨ 你会直接感受到的升级
|
|
325
|
+
|
|
326
|
+
- **工具执行中界面更稳定**:工具还在运行时不再允许展开详情,避免看到未完成参数或半成品结果;执行结束后仍可正常查看详情
|
|
327
|
+
- **模型能力识别更准确**:Claude、Gemini 和 GPT-5 系列会自动匹配原生供应商通道,减少模型名和通道配置不一致导致的调用问题
|
|
328
|
+
- **Token 用量展示更完整**:模型缓存命中的 token 也会展示出来,方便判断长上下文和缓存是否真正生效
|
|
329
|
+
- **新模型配置已补齐**:更新 GPT-5.4 / GPT-5.5 的上下文窗口配置,长上下文使用边界更清楚
|
|
330
|
+
|
|
331
|
+
### 🐛 重要修复
|
|
332
|
+
|
|
333
|
+
- **企微机器人升级后配置恢复正常**:修复 v1.9.3 升级到 v1.10.0 后历史企微机器人配置可能不生效的问题,旧配置会自动迁移到新的 Session 字段
|
|
334
|
+
- **渠道配置迁移更可靠**:修复配置迁移后未及时落盘的问题,减少重启后迁移结果丢失的风险
|
|
335
|
+
- **群聊主执行者状态显示修复**:群聊中主执行者的上下文状态会正确显示,减少协作时的状态误判
|
|
336
|
+
- **跨平台打包脚本修复**:修复 scoped 包版本解析和 sharp 跨平台依赖下载问题,提升发布打包稳定性
|
|
337
|
+
|
|
338
|
+
### 📐 内部整理
|
|
339
|
+
|
|
340
|
+
- **Anthropic 工具循环缓存优化**:优化工具循环中的前缀缓存使用,降低重复上下文处理成本
|
|
341
|
+
- **发布流程文档补强**:补充发布说明和上传顺序要求,确保检查更新能先拿到版本摘要
|
|
342
|
+
|
|
343
|
+
### 🧪 质量门禁
|
|
344
|
+
|
|
345
|
+
- **工具卡片回归测试补强**:新增执行中不可展开的回归测试,并覆盖相关渲染链路
|
|
346
|
+
|
|
347
|
+
## v1.10.0
|
|
348
|
+
发布日期:`2026-05-19`
|
|
349
|
+
> 对比 `v1.9.3` → `v1.10.0`,共 `281` 个非合并提交(含 merge 共 365)
|
|
350
|
+
|
|
351
|
+
### ✨ 你会直接感受到的升级
|
|
352
|
+
|
|
353
|
+
- **快捷回复和斜杠命令更顺手了**:输入框新增 ⚡ 快捷回复入口,点选即可发送;`/clear`、`/compact` 等命令补全后可直接回车执行
|
|
354
|
+
- **单聊现在支持多个独立 Session**:你可以和同一个 Agent 并行展开多个话题,历史、草稿和状态彼此隔离,不再互相串味
|
|
355
|
+
- **长对话管理更清楚**:上下文整理提示、进度反馈、夜间整理记录和群组整理配置都更完整,长聊时更容易知道系统正在做什么
|
|
356
|
+
- **群协作收尾更完整**:监督模式结束后会自动补上一段真正面向用户的最终结论;群聊记忆也能更稳定地沉淀和整理
|
|
357
|
+
- **错误提示和版本说明更易读**:错误信息更容易判断发生了什么;应用内也可以直接查看随版本打包的发布说明
|
|
358
|
+
- **移动端和文件预览体验更好**:移动端可查看当前上下文占用;侧边文件预览抽屉支持拖拽调整宽度
|
|
359
|
+
|
|
360
|
+
### 🐛 重要修复
|
|
361
|
+
|
|
362
|
+
- **外部渠道更稳定**:修复微信个人号重连、WebSocket 重连与回压恢复等问题,外部 IM 通道更不容易断线后失效
|
|
363
|
+
- **旧渠道配置兼容更好**:历史 `target.kind='agent'` 配置现在会正确落到默认单聊 Session,减少升级后的静默异常
|
|
364
|
+
- **单聊多 Session 更可靠**:修复新建 Session 首条消息可能无法执行、默认 Session 元数据竞态、归档状态错位、旧消息兼容读取和按日期漏查等问题
|
|
365
|
+
- **群协作链路更一致**:修复群任务、广播和监督模式中的上下文透传问题,减少同一句话走不同链路却得出不同结果的情况
|
|
366
|
+
- **消息状态、模型报错和移动端显示更稳**:减少界面抖动、状态残留、限流误判、备用模型提示残留,以及移动端文字遮挡和未读标记异常
|
|
367
|
+
- **CLI、远程访问、图片与附件体验补强**:支持复用已有访问 token,补齐远程访问压缩与缓存,图片加载失败不再显示破碎图标,附件上传性能也有改善
|
|
368
|
+
|
|
369
|
+
### 📐 内部整理
|
|
370
|
+
|
|
371
|
+
- **Session 语义继续收口**:进一步清理旧命名和兼容残留,让单聊、群聊和消息链路围绕统一的 Session 概念工作
|
|
372
|
+
- **运行时与上下文链路继续瘦身**:拆开不同运行场景,降低长对话、流式消息和复杂工具输出的膨胀成本
|
|
373
|
+
|
|
374
|
+
### 🧪 质量门禁
|
|
375
|
+
|
|
376
|
+
- **关键回归测试补强**:补齐自动上下文整理、会话切换隔离、任务编排、重试链路等关键回归测试
|
|
377
|
+
- **发版门禁通过**:类型检查、vitest、Playwright E2E 已按流程执行
|
|
378
|
+
|
|
379
|
+
## v1.9.3
|
|
380
|
+
发布日期:`2026-05-12`
|
|
381
|
+
> 本次为 v1.9.3 重新发布,补齐旧 tag 之后合入但仍属于 1.9.3 发布范围的修复与改进。
|
|
382
|
+
> 对比 `v1.9.2` → `v1.9.3`,共 `30` 个提交
|
|
383
|
+
|
|
384
|
+
### ✨ 新特性
|
|
385
|
+
|
|
386
|
+
- **MCP 服务应用到 Agent**:MCP 设置面板支持将服务批量应用到 Agent,并在列表展示已应用数量
|
|
387
|
+
- **Integration 创建时间**:集成列表展示创建时间,提升配置审查可读性
|
|
388
|
+
|
|
389
|
+
### 🐛 修复
|
|
390
|
+
|
|
391
|
+
- **Windows 更新发布链路**:修复 Windows 安装包图标、签名配置与自动下载 / 安装流程,补充下载进度和完成状态
|
|
392
|
+
- **工具命名冲突**:修复工具命名冲突导致调用异常,并简化无效目标提示
|
|
393
|
+
- **Skill 路径与 slash 触发**:收紧 Skill 路径处理与 slash command 触发行为
|
|
394
|
+
- **Tool Call 停止状态**:停止运行时正确 settle tool calls,避免界面残留错误状态
|
|
395
|
+
- **群记忆设置弹窗尺寸**:优化桌面端与移动端弹窗尺寸,改善设置内容的阅读和操作体验
|
|
396
|
+
- **E2E 测试数据隔离**:每次 Electron 启动前重建测试数据目录,避免测试间残留 Agent 污染后续用例
|
|
397
|
+
|
|
398
|
+
### 📐 重构
|
|
399
|
+
|
|
400
|
+
- **MCP 产品文案收口**:中文界面统一使用 “MCP 服务”,代码与协议层保持 `McpServerConfig` / `mcpServers` 不变
|
|
401
|
+
- **设置导航分组重整**:设置导航整理为 Agent、能力、连接、自动化、应用,MCP 服务归入 Agent 分组
|
|
402
|
+
- **存储与应用抽屉去重**:抽出共享 JSON / text 文件 I/O、SwarmExecutor 测试 mocks、AgentAssignmentDrawer 与共享样式
|
|
403
|
+
- **Swarm Direct Session 概念收口**:明确单聊也创建 Session、`sessionId != agentId`、`scope.agentId` 才是 direct session 归属真相、Tab 只是 UI state
|
|
404
|
+
|
|
405
|
+
### 🧪 测试
|
|
406
|
+
|
|
407
|
+
- **MCP 应用到 Agent E2E**:新增设置面板 E2E,覆盖创建 Agent、添加 MCP 服务、应用到 Agent、保存后回显确认
|
|
408
|
+
- **E2E 文案同步**:测试选择器同步 “MCP 服务” 产品文案
|
|
409
|
+
- **聊天主操作按钮 E2E**:发送按钮断言兼容创建 Agent 后仍在回复中的停止状态,减少时序误判
|
|
410
|
+
|
|
411
|
+
## v1.9.2
|
|
412
|
+
发布日期:`2026-05-12`
|
|
413
|
+
> 对比 `v1.9.1` → `v1.9.2`,共 `53` 个提交
|
|
414
|
+
|
|
415
|
+
### ✨ 新特性
|
|
416
|
+
|
|
417
|
+
- **Agent 头像上传**:支持为 Agent 上传头像,并将头像入口迁移到身份 Tab,让头像回到“身份表达”而不是通用设置
|
|
418
|
+
- **独立 Agent Kernel / Loop**:引入独立 AgentKernel 与 AgentLoop,为后续执行核心迁移、retry/fallback/tool loop 收口打基础
|
|
419
|
+
- **模型 fallback 内联提示**:模型失败时给出更清晰的内联提示,引导用户理解系统正在处理什么
|
|
420
|
+
- **图片预览复制**:图片预览支持直接复制图片
|
|
421
|
+
- **结构化日志与遥测策略**:补充 structured logging 与 telemetry policy,为运行诊断和后续日志系统演进打底
|
|
422
|
+
- **Kernel provider options**:根据 reasoning effort 推导 kernel provider options,减少硬编码配置
|
|
423
|
+
|
|
424
|
+
### 🐛 修复
|
|
425
|
+
|
|
426
|
+
- **发布后功能问题收口**:修复 AgentKernel 历史 assistant metadata 污染、AvatarUploader object URL 清理、重复 stream start 清空内容、pending DB writes / message queue 微任务让出等问题,并补充测试
|
|
427
|
+
- **多人 @ 广播携带上下文**:自动广播和 tool broadcast 会把当前上下文传给子 Agent,避免子 Agent 脱离讨论现场回答
|
|
428
|
+
- **writeFile append 防护策略**:允许未读既有文件 append,但 append 后不标记为 known,避免绕过 overwrite 保护
|
|
429
|
+
- **Node 类型检查错误**:修复 node/main 类型检查问题
|
|
430
|
+
- **移动端 taskId 溢出**:限制任务结果 ID 展示宽度,移动端不再挤爆布局
|
|
431
|
+
- **图片查看器 toast import**:修复图片查看器 toast 引入问题
|
|
432
|
+
- **打开当前群线程目录**:从群聊中打开目录时定位到当前 thread
|
|
433
|
+
- **流式消息持久化节流**:降低 streaming persistence 写入压力
|
|
434
|
+
- **数据库写入优雅关闭**:关闭阶段等待 pending DB writes,减少退出时丢写风险
|
|
435
|
+
- **slash clear 命令**:直接发送清空命令,避免多余确认路径
|
|
436
|
+
- **CLI runtime 更新检查**:CLI 模式跳过自动更新检查
|
|
437
|
+
- **Markdown 内联路径识别**:收紧路径检测规则,减少误识别
|
|
438
|
+
- **Broadcast 部分失败处理**:广播部分失败时语义更稳定
|
|
439
|
+
- **LLM crash breadcrumbs**:补充 LLM 崩溃 breadcrumb,提升诊断能力
|
|
440
|
+
- **Electron 下载镜像**:固定 Electron 42 下载镜像,改善安装稳定性
|
|
441
|
+
|
|
442
|
+
### 📐 重构
|
|
443
|
+
|
|
444
|
+
- **MessageInput 瘦身**:拆出 draft、supervisor selection、attachment intake、popup position、mention dropdown 等局部模块,保留行为不变
|
|
445
|
+
- **ToolCallCard 展示 helper 拆分**:将参数摘要、diff/read preview/path/language 等纯展示逻辑抽出,组件更薄
|
|
446
|
+
- **Pending 用户消息动作拆分**:撤回、重试、optimistic message 清理与 refill/send 副作用收口到独立模块
|
|
447
|
+
- **TaskId 跳转胶囊**:抽出可截断、可访问的任务 ID 跳转组件,避免重复 chip 样式
|
|
448
|
+
- **Swarm runtime 概念文档**:澄清 runtime concepts,减少 group/thread/task 等概念混用
|
|
449
|
+
- **测试 mock 对齐**:补充 renderer mock transport metadata,修正 swarm usage 期望
|
|
450
|
+
|
|
451
|
+
## v1.9.1
|
|
452
|
+
发布日期:`2026-05-11`
|
|
453
|
+
> 对比 `v1.9.0` → `v1.9.1`,共 `27` 个提交
|
|
454
|
+
|
|
455
|
+
### ✨ 新特性
|
|
456
|
+
|
|
457
|
+
- **Token 用量遥测**:上报 LLM 调用级与运行完成级 token usage,区分 input/output/total/cached/reasoning token,便于评估各版本上下文优化效果
|
|
458
|
+
- **上下文维护命令入口**:新增 context maintenance command entry,便于触发上下文整理维护
|
|
459
|
+
- **HTML 代码块预览**:Markdown 中 HTML code block 支持预览
|
|
460
|
+
|
|
461
|
+
### 🐛 修复
|
|
462
|
+
|
|
463
|
+
- **Native 崩溃诊断增强**:捕获 Electron Crashpad native dump,记录主进程 breadcrumbs,并将 JS crash log 附带最近上下文
|
|
464
|
+
- **文件工具 review blockers 收口**:applyPatch schema 暴露 `patch`、兼容 legacy `input`;文件修改强制先读;rename 覆盖和 rename-to-self 边界修复
|
|
465
|
+
- **跨平台文件预览路径**:修复相对路径与跨平台路径在 preview 中的解析和展示
|
|
466
|
+
- **深色文件预览对比度**:改善暗色模式下文件预览可读性
|
|
467
|
+
- **监督模式发送入口状态**:发送时同步 supervisor speaker,输入框 active 状态与 picker 表达更清晰
|
|
468
|
+
- **群发 @all 确定性**:at-all broadcast 行为更稳定
|
|
469
|
+
- **流式输出期间顶部按钮可用**:streaming 时仍允许顶部按钮交互
|
|
470
|
+
- **Markdown ToolCall 属性展开**:修复 toolcall props 展开能力
|
|
471
|
+
- **消息输入工具栏布局**:工具栏堆叠到 textarea 下方,降低拥挤
|
|
472
|
+
- **重复 compact 命令防御**:避免 context compact 命令重复执行
|
|
473
|
+
- **LLM 调用遥测**:补充 LLM call telemetry,便于问题追踪
|
|
474
|
+
- **聊天渲染性能**:优化 chat render performance
|
|
475
|
+
- **崩溃日志与内存预警**:preload 补传 error stack;CrashLogWriter 补 pid/uptime/memory;信号处理与 MemoryMonitor 自适应采样、OOM 预警
|
|
476
|
+
- **AI 依赖升级**:升级 AI 依赖以修复已知问题、提升稳定性
|
|
477
|
+
|
|
478
|
+
### 📐 重构
|
|
479
|
+
|
|
480
|
+
- **文件工具协议升级**:readFile/writeFile/editFile/applyPatch 要求绝对 workdir;path/patch 路径必须相对 workdir,拒绝绝对路径、`..` 和逃逸;writeFile 支持 append/overwrite
|
|
481
|
+
- **applyPatch 参数命名统一**:`input` 正式重命名为 `patch`
|
|
482
|
+
- **Swarm 核心概念文档**:补充 group/thread/speaker 等核心概念定义
|
|
483
|
+
- **Supervisor checkpoint 文档**:明确 runtime checkpoint 行为与边界
|
|
484
|
+
- **checkpoint 数量默认值调整**
|
|
485
|
+
|
|
486
|
+
## v1.9.0
|
|
487
|
+
发布日期:`2026-05-09`
|
|
488
|
+
> 对比 `v1.8.11` → `v1.9.0`,共 `33` 个提交
|
|
489
|
+
|
|
490
|
+
### ✨ 新特性
|
|
491
|
+
|
|
492
|
+
- **Swarm Supervisor 模式**:移除 LLM 可见的 `runPlanStep`,改为 runtime 自动调度 ready todos;引入 checkpoint/verdict 机制,supervisor 负责 goal/criteria/异常裁决与最终验收;skip/retry/revise/terminate 语义校验与完备边界处理
|
|
493
|
+
- **patch 工具显示 diff 及文件列表摘要**:ToolCallCard 中 patch 操作显示结构化 diff 和变更文件列表
|
|
494
|
+
- **用户消息乐观渲染 + 状态指示器**:发送消息时立即显示,附带发送中/失败状态指示
|
|
495
|
+
- **每日首条消息触发更新检查**:自动更新检查从启动时改为每日首次发消息后静默触发
|
|
496
|
+
- **PropertyList 截断值 tooltip**:截断的属性值 hover 显示完整内容
|
|
497
|
+
|
|
498
|
+
### 🐛 修复
|
|
499
|
+
|
|
500
|
+
- **Supervisor runtime correctness 收口**:skip_todo 保留 todo 写 skippedTodoIds;retry_todo 只清 failed/killed;revise_plan 作为新 plan 版本边界清理旧关联;invalid verdict 同 checkpoint 最多 3 次重试;checkpoint budget exhausted 明确终止
|
|
501
|
+
- **Supervisor verdict 工具显示**:supervisor 裁决工具在 UI 中正确展示
|
|
502
|
+
- **Reasoning model 无回答时重试**:reasoning model 返回空回答时,用 remainder prompt 重试一次
|
|
503
|
+
- **Agent maxTokens 清空后恢复**:保存时清空 maxTokens 不再回退到旧值 4096
|
|
504
|
+
- **暗色主题代码预览对比度**:改善暗色模式下代码块的可读性
|
|
505
|
+
- **Swarm task 生命周期补全**:waitTask 与 swarm task status 对齐;killTask 收敛为只作用于 active task;finish gate 自动 waitTasks 收口;startQueuedTask 防御同步 throw
|
|
506
|
+
- **超出上下文时压缩到 50% 上下文长度**:避免压缩后仍接近上限导致反复压缩
|
|
507
|
+
- **Swarm 超并发任务排队**:超出并发上限的任务自动排队
|
|
508
|
+
- **流式输出时滚动行为**:向上滚动不再被强制拉回底部;滚动到底部判定阈值从 60px 降至 30px
|
|
509
|
+
- **PropertyList 嵌套截断**:嵌套对象/Markdown 被 max-height 截断只显示一行
|
|
510
|
+
- **PropertyList tooltip scrollbar 样式**:滚动条样式应用到正确的元素
|
|
511
|
+
- **ToolCallCard argSummary tooltip**:始终显示,不遗漏
|
|
512
|
+
- **AI-SDK 依赖升级**:修复 Responses API 新事件类型解析报错
|
|
513
|
+
- **electron-updater 依赖位置**:移至 dependencies 并排除 npm publish
|
|
514
|
+
|
|
515
|
+
### 📐 重构
|
|
516
|
+
|
|
517
|
+
- **PlanTask → Todo 领域语言统一**:类型与字段重命名为 Plan→Todo→Task 三层模型
|
|
518
|
+
- **SwarmExecutor 依赖收紧**:依赖 OrchestratorThread,Group/Thread 边界收紧
|
|
519
|
+
- **contextId 参数清理**:砍掉冗余 contextId 参数、缓存 getGroup()、speaker 写入归属 GroupChat
|
|
520
|
+
- **侧边栏线程计数与 pin 图标位置互换**:线程计数在 pin 图标之前
|
|
521
|
+
- **测试期望更新**:AgentConfig capabilities 断言对齐 disabledTools 字段
|
|
522
|
+
|
|
523
|
+
## v1.8.11
|
|
524
|
+
发布日期:`2026-05-08`
|
|
525
|
+
> 对比 `v1.8.10` → `v1.8.11`,共 `17` 个提交
|
|
526
|
+
|
|
527
|
+
### ✨ 新特性
|
|
528
|
+
|
|
529
|
+
- **ToolCallCard 参数 tooltip**:summary 区域 hover 显示完整参数,不用展开卡片
|
|
530
|
+
- **提示词文件边界定义**:增加文件边界定义,强制正交
|
|
531
|
+
- **夜间记忆整理提示词纪律收紧**:两轮收紧,避免整理时越界
|
|
532
|
+
|
|
533
|
+
### 🐛 修复
|
|
534
|
+
|
|
535
|
+
- **CLI 模式启动崩溃**:electron/electron-updater 改为延迟 require,CLI 模式不再触发 Electron 依赖
|
|
536
|
+
- **cli.vite.config.ts 兼容 Node 24 ESM**:`__dirname` → `import.meta` 适配
|
|
537
|
+
- **group meta.json 缺少 id**:fallback 到目录名作为 groupId
|
|
538
|
+
- **设置面板按钮风格统一**:编辑/删除按钮统一为 ghost/danger variant + 图标 + 文字标签,删除 54 行死 CSS
|
|
539
|
+
- **MCP 面板 server.type 为空崩溃**:undefined 时 fallback 到默认类型
|
|
540
|
+
|
|
541
|
+
### 📐 重构
|
|
542
|
+
|
|
543
|
+
- **侧边栏时间和状态点位置互换**:状态点在标题行,时间在副标题行
|
|
544
|
+
- **Memory Growth Panel UI 简化**:合并卡片、内联状态、修复 toggle 反馈
|
|
545
|
+
- **Review 修复**:阈值调整、重复检测、提示词纪律、死 CSS 清理、fileAgentId 一致性
|
|
546
|
+
|
|
547
|
+
## v1.8.10
|
|
548
|
+
发布日期:`2026-05-08`
|
|
549
|
+
> 对比 `v1.8.9` → `v1.8.10`,共 `19` 个提交
|
|
550
|
+
|
|
551
|
+
### ✨ 新特性
|
|
552
|
+
|
|
553
|
+
- **图片分析和生成备用模型**:图片识别与图片生成工具支持配置多个备用模型,主模型失败时自动按序切换;AbortError 不重试,图片数据仅加载一次
|
|
554
|
+
- **PropertyList 溢出检测 + 展开/收起**:单行截断、hover 显示完整内容、动画展开收起
|
|
555
|
+
- **applyPatch 工具**:新增基于 diff 库的 patch 工具,支持精确 hunk 应用
|
|
556
|
+
- **工具重命名**:readFile/writeFile/editFile → read/write/edit,语义更简洁
|
|
557
|
+
|
|
558
|
+
### 🐛 修复
|
|
559
|
+
|
|
560
|
+
- **定时任务卡片显示优化**:group 类型同时显示线程名称,目标名称替代原始 ID
|
|
561
|
+
- **手机端群记忆编辑弹窗 textarea 溢出**
|
|
562
|
+
- **Agent 编辑表单 capabilities/skills 丢失**:空数组不再清空已有配置
|
|
563
|
+
- **17 个 stale 测试修复**:修复多个因 prior commits 导致的测试失败
|
|
564
|
+
- **MCP 工具加载过滤**:仅加载 agent 已启用的 MCP server 的工具
|
|
565
|
+
- **PropertyList useLayoutEffect 闪烁**:避免溢出检测时的视觉抖动
|
|
566
|
+
|
|
567
|
+
### 📐 重构
|
|
568
|
+
|
|
569
|
+
- **通道卡片 footer 布局**:去掉 DropdownMenu 三点菜单,操作按钮改为信息区 + 分隔线 + 底部操作栏布局,移动端不再拥挤
|
|
570
|
+
- **Skill 卡片 Switch 位置**:开关移至标题行右侧,操作更直观
|
|
571
|
+
- **Husky pre-commit hook**:提交前自动运行 tsc 类型检查 + vitest 测试
|
|
572
|
+
|
|
573
|
+
## v1.8.9
|
|
574
|
+
发布日期:`2026-05-07`
|
|
575
|
+
> 对比 `v1.8.8` → `v1.8.9`,共 `39` 个提交
|
|
576
|
+
|
|
577
|
+
### ✨ 新特性
|
|
578
|
+
|
|
579
|
+
- **群记忆+群设定重构第一期**:群级记忆和群设定的基础架构搭建
|
|
580
|
+
- **IConversation 类型拆分**:`ISingleConversation | IGroupConversation` 联合类型替代单一接口,`targetId` → `groupId`,类型系统精确表达单聊/群聊差异
|
|
581
|
+
- **activeThreadId 重命名**:前端 `activeConversationId` → `activeThreadId`,语义精确对齐实际值
|
|
582
|
+
- **企业微信 + 微信个人号通道支持解析引用消息**:引用消息内容正确提取和展示
|
|
583
|
+
- **E2E 测试框架**:12 个 Playwright 测试用例覆盖 agent/group chat、settings、sidebar 和启动流程
|
|
584
|
+
- **HTTP API JSON 响应 gzip 压缩**:所有 HTTP API 的 JSON 响应自动 gzip,减少传输体积
|
|
585
|
+
|
|
586
|
+
### 🐛 修复
|
|
587
|
+
|
|
588
|
+
- **SQLITE_IOERR 自愈**:数据库 IO 错误时自动重连重试 + 用户友好错误提示
|
|
589
|
+
- **点击目录路径报错**:resolveFilePath 绝对路径直接放行,群聊模式下允许 agent 访问自己的 workspace
|
|
590
|
+
- **群聊 HeaderBar"打开目录"无响应**:修复群聊数据目录打开路径
|
|
591
|
+
- **夜间整理写入 Agent context.json**:夜间整理不再污染 Agent 上下文
|
|
592
|
+
- **编译错误和死代码清理**:conversation 重构后的遗留类型错误修复
|
|
593
|
+
- **SQLITE_BUSY database is locked**:连接池 min:0 回收后重建丢失 busy_timeout,修复为 min:1 + afterCreate hook
|
|
594
|
+
- **migration 单步骤失败阻塞启动**:单步骤失败不阻塞进程启动,修复测试从 1/5 到 6/6
|
|
595
|
+
- **企业微信 mixed(图文混排)消息解析**:正确提取文本和图片内容
|
|
596
|
+
- **alert() 替换为内联错误 UI**:移除所有 alert() 调用,改用内联错误展示;展开按钮限制为高内容
|
|
597
|
+
- **TypeScript 编译错误修复**:解决所有 `yarn tsc --noEmit` 编译错误
|
|
598
|
+
|
|
599
|
+
### 📐 重构
|
|
600
|
+
|
|
601
|
+
- **移除 Conversation 数据库层**:删除 Conversation models/entities/repository/port,conversation 概念从 DB 层彻底清除
|
|
602
|
+
- **移除 handler 层 conversation 依赖**:handler 和 MessageRepository 不再依赖 conversation 表
|
|
603
|
+
- **数据库迁移:drop conversations 表**:添加 migration 删除 conversations 表
|
|
604
|
+
- **shared/ 目录迁移**:文件从 shared/ 迁移到各自的归属模块
|
|
605
|
+
- **any 类型治理**:Database 透传壳清理,any 类型持续消除
|
|
606
|
+
- **第五轮+第六轮代码坏味道修复**:持续清理代码卫生
|
|
607
|
+
- **群聊 prompt 注入真实 workspace 路径**:group workspace instructions 使用实际文件路径
|
|
608
|
+
- **清理 JS 文件**:移除遗留的 .js 文件
|
|
609
|
+
|
|
610
|
+
|
|
611
|
+
|
|
612
|
+
## v1.8.8
|
|
613
|
+
发布日期:`2026-05-06`
|
|
614
|
+
|
|
615
|
+
> 对比 `v1.8.7` → `v1.8.8`,共 `21` 个提交
|
|
616
|
+
|
|
617
|
+
### ✨ 新特性
|
|
618
|
+
|
|
619
|
+
- **MCP streamable-http 传输支持**:新增 `streamable-http` 传输类型,兼容支持该协议的 MCP 服务端
|
|
620
|
+
- **附件工具 sendFile**:改为附件工具注册,支持多格式附件渲染(图片/文件/代码块等),内部对话直接展示附件卡片
|
|
621
|
+
- **generateImage 图片编辑模式**:`images` 参数支持参考图片进行编辑
|
|
622
|
+
- **PropertyList isPath 路径支持**:isPath 字段为 `true` 时,点击路径值自动打开侧边栏文件预览
|
|
623
|
+
- **附件发送默认展开**:发送附件时默认展开文件信息,按类型显示对应图标
|
|
624
|
+
- **静态资源 gzip 预压缩 + 缓存头 + stream**:静态资源加载性能优化
|
|
625
|
+
- **远程模式复制按钮右移**:复制按钮移到右侧,按钮组两端对齐
|
|
626
|
+
|
|
627
|
+
### 🐛 修复
|
|
628
|
+
|
|
629
|
+
- **MCP inputSchema 兼容性**:`inputSchema` 包装 `jsonSchema()` 适配 AI SDK v4 解析
|
|
630
|
+
- **MCP streamable-http i18n key**:修复类型 i18n key 不匹配 camelCase 的问题
|
|
631
|
+
- **Agent 文件迁移健壮性**:Agent 表不存在时跳过迁移,防止报错中断启动
|
|
632
|
+
- **工具调用 JSON 截断 path 丢失**:writeFile/editFile schema 标记 `REQUIRED FIRST FIELD`,repairToolCall 引导模型先输出 path
|
|
633
|
+
- **readFile 拒绝 .svg 二进制**:svg 按二进制处理,避免将 XML 内容误读为文本
|
|
634
|
+
- **generateImage 不再自动展开 ToolCallCard**:图片生成结果不触发卡片展开
|
|
635
|
+
- **托盘点击窗口未前置**:点击托盘图标后窗口正确 bringToFront
|
|
636
|
+
- **移动端 Tooltip 禁用**:tap 事件误触发 tooltip,禁用移动端 tooltip
|
|
637
|
+
- **群聊切换小绿点不消失**:clearCompleted 清理整个群所有线程的已完成状态
|
|
638
|
+
|
|
639
|
+
### 📐 重构
|
|
640
|
+
|
|
641
|
+
- **Thread Tab 冗余 Tooltip 移除**:Tab 上图标和文字语义重复,tooltip 属多余噪声
|
|
642
|
+
|
|
643
|
+
## v1.8.7
|
|
644
|
+
发布日期:`2026-05-06`
|
|
645
|
+
> 对比 `v1.8.6` → `v1.8.7`,共 `8` 个提交
|
|
646
|
+
|
|
647
|
+
### ✨ 新特性
|
|
648
|
+
|
|
649
|
+
- **Markdown 预览模式搜索**:文件预览的 Markdown 渲染模式支持文本搜索(Cmd+F)
|
|
650
|
+
|
|
651
|
+
### 🐛 修复
|
|
652
|
+
|
|
653
|
+
- **企业微信 Bot 流式回复 loading 卡住**:`run.failed`/`run.stopped` 时未调 `stream.finish`,企微端永久 loading;同时 `dispose()` 退出时扫尾所有活跃流
|
|
654
|
+
- **Windows 路径兼容**:修复 secret 文件名含冒号在 Windows 上非法的问题,send-file-policy 跨平台路径处理
|
|
655
|
+
- **readFile 拒绝二进制文件**:避免将二进制内容误读为文本,SessionCleaner 静默跳过不存在的目录
|
|
656
|
+
- **滚动到底部按钮过早隐藏**:`newMessageHint` 导致 scroll-to-bottom 按钮在消息未到底时消失
|
|
657
|
+
- **测试渲染缺少 TooltipProvider**:补充 `AppTooltipProvider` 包裹测试渲染
|
|
658
|
+
|
|
659
|
+
### 📐 重构
|
|
660
|
+
|
|
661
|
+
- **移除 Agent 数据库模型**:Agent 配置已迁移到文件系统,清理 `agent_configs` schema 迁移和 DB 侧死代码
|
|
662
|
+
- **文件名 sanitize 收口**:统一为共享工具函数,跨平台路径规范
|
|
663
|
+
|
|
664
|
+
|
|
665
|
+
## v1.8.6
|
|
666
|
+
发布日期:`2026-05-05`
|
|
667
|
+
> 对比 `v1.8.5` → `v1.8.6`,共 `40` 个提交
|
|
668
|
+
|
|
669
|
+
### ✨ 新特性
|
|
670
|
+
|
|
671
|
+
- **GPT-5.5 图片生成完整链路**:支持 provider-side `image_generation_call`,base64 图片自动转附件,统一通过 `AttachmentDisplay` 渲染
|
|
672
|
+
- **CLI web 搜索**:`webSearch` 工具改用 `agent-browser` 执行,CLI 模式下也能获取实时搜索结果
|
|
673
|
+
- **下载页 CLI 引导**:下载页增加 CLI 安装提示,按平台智能高亮推荐项
|
|
674
|
+
- **Shell 长输出自动存档**:Shell 和 `webFetch` 的超长输出自动截断并保存为 artifact,避免上下文爆炸
|
|
675
|
+
- **内部工具执行管线**:新增 `InternalToolPipeline`,统一管理工具调用前后的中间件(artifact 截断等),支持运行时状态透传
|
|
676
|
+
- **App Tooltip 原语**:新增统一的 tooltip 组件基础,替代各处散落的 title 属性
|
|
677
|
+
|
|
678
|
+
### 🐛 修复
|
|
679
|
+
|
|
680
|
+
- **Thread A 输出时 Thread B 斜杠命令被误拦截**:`sendingMap` 的读取和写入改为按当前 `conversationView` 作用域判断,不再被其他线程的流式状态污染
|
|
681
|
+
- **发送消息后滚动条不贴底**:改用显式用户意图(`wheel`/`touchMove`)退出 sticky-bottom,不再根据 `scrollTop` 下降误判用户向上滚动
|
|
682
|
+
- **图片生成引用丢失**:修复 GPT-5.5 图片生成后引用链断裂的问题
|
|
683
|
+
- **Telemetry 去重时间戳**:修复事件日期未传入去重检查的问题
|
|
684
|
+
- **频道重连**:增加 channel reconnect 支持
|
|
685
|
+
- **DashScope 输入上下文限制**:修正输入长度限制参数
|
|
686
|
+
|
|
687
|
+
### 📐 重构
|
|
688
|
+
|
|
689
|
+
- **Conversation view selectors 提取**:`ChatBox` 内两个 `deriveActiveView` + `useMemo` 提取为 `useActiveView()` / `useConversationView()` 自定义 hook,使用 `useShallow` 保证引用稳定性
|
|
690
|
+
- **图片生成管线优化**:统一 artifact 中间件处理 `webSearch`/`webFetch`/`shell` 长输出
|
|
691
|
+
- **Scheduler 工具作用域**:按 target 隔离 scheduler 工具
|
|
692
|
+
- **目录 IPC 事件合并**:消除重复的 open-directory 相关 IPC
|
|
693
|
+
|
|
694
|
+
### 📝 文档
|
|
695
|
+
|
|
696
|
+
- 对齐文档与当前架构
|
|
697
|
+
- 新增 Agent 执行请求模型、内部钩子机制、工具审批机制设计文档
|
|
698
|
+
|
|
699
|
+
## v1.8.5
|
|
700
|
+
发布日期:`2026-05-02`
|
|
701
|
+
> 对比 `v1.8.4` → `v1.8.5`,共 `6` 个提交
|
|
702
|
+
|
|
703
|
+
### ✨ 新特性
|
|
704
|
+
|
|
705
|
+
- **文件预览抽屉支持文本搜索**:在代码/文本预览中支持 `Cmd/Ctrl+F` 唤起搜索,高亮匹配并支持上下切换
|
|
706
|
+
|
|
707
|
+
### 🐛 修复
|
|
708
|
+
|
|
709
|
+
- **外部渠道入站语音视频丢失**:微信个人号和企业微信的语音/视频消息不再被静默丢弃;平台有转写时按文本处理,无转写时作为附件保留并明确标记,确保 Agent 可见
|
|
710
|
+
- **修复粘贴附件窜入其他对话草稿**:修复在消息发送后切换对话导致旧附件误写入新对话的竞态问题
|
|
711
|
+
- **FilePreviewDrawer 编译报错**:修复 `SyntaxHighlighter` `codeStyle` 类型不匹配导致 TS 检查失败的问题
|
|
712
|
+
|
|
713
|
+
## v1.8.4
|
|
714
|
+
发布日期:`2026-05-02`
|
|
715
|
+
> 对比 `v1.8.3` → `v1.8.4`,共 `2` 个提交
|
|
716
|
+
|
|
717
|
+
### 🐛 修复
|
|
718
|
+
|
|
719
|
+
- **微信个人号发送文件无法下载**:`aes_key` 编码从 `base64(raw bytes)` 改为 `base64(hex string)`,与 iLink 协议规范一致,修复微信端解密失败导致文件无法下载的问题
|
|
720
|
+
- **侧栏群名显示默认线程标题**:群名改为使用 `group.name`,重命名默认线程不再污染侧栏显示
|
|
721
|
+
|
|
722
|
+
## v1.8.3
|
|
723
|
+
发布日期:`2026-05-02`
|
|
724
|
+
> 对比 `v1.8.2` → `v1.8.3`,共 `8` 个提交
|
|
725
|
+
|
|
726
|
+
### 🐛 修复
|
|
727
|
+
|
|
728
|
+
- **频道消息被去重安全网误拦**:`handleAggregatedBatch` 在 `routeInboundMessage` 之前调用了 `markProcessed`,导致安全网检查跳过所有消息
|
|
729
|
+
- **频道 agent 查找走 SQLite**:`ChannelManager` 从 `agentRepository`(SQLite)改为 `agentFileStore`(文件系统),与存储真相源对齐
|
|
730
|
+
- **Bot 链路 handleRunCompleted 全量反查**:改用 messageId 精确查找
|
|
731
|
+
- **Bot 链路 waitingForRun key 冲突**:去掉 conversation 绕路,改用 FIFO 队列防覆盖
|
|
732
|
+
- **yarn.lock 内网地址**:修复 Jira 引用地址
|
|
733
|
+
|
|
734
|
+
### 📐 重构
|
|
735
|
+
|
|
736
|
+
- **移除 AgentRepository / GroupRepository / ThreadRepository**:三个 repository 都是纯转发层,无额外逻辑。业务代码直接访问 `agentFileStore` / `groupFileStore` / `threadFileStore`;migration 代码改用原生 SQL 直查 SQLite 遗留表
|
|
737
|
+
- **移除 AgentConfig Sequelize Model**:Agent 配置已迁移到文件系统,清理遗留 ORM 模型
|
|
738
|
+
|
|
739
|
+
## v1.8.2
|
|
740
|
+
发布日期:`2026-05-01`
|
|
741
|
+
> 对比 `v1.8.1` → `v1.8.2`,共 `6` 个提交
|
|
742
|
+
|
|
743
|
+
### 🐛 修复
|
|
744
|
+
|
|
745
|
+
- **微信个人号绑定后收不到消息**:补充 iLink 协议必需的 `iLink-App-Id` 和 `iLink-App-ClientVersion` 请求头;修复 QR 登录后 `baseUrl` 丢失导致 API 请求打到错误地址
|
|
746
|
+
- **线程 tab 重命名被覆盖**:默认线程 tab 重命名后不再被群名覆盖
|
|
747
|
+
- **发送后草稿未清空**:消息发送成功后自动清空草稿
|
|
748
|
+
- **Telemetry dashboard 路径**:API 路径适配反向代理子路径
|
|
749
|
+
|
|
750
|
+
### 🎨 改进
|
|
751
|
+
|
|
752
|
+
- **npm 发布脚本**:新增 `publish-npm.sh`,临时目录构建纯净 CLI 包,修正 dist-cli 和 renderer 拷贝路径
|
|
753
|
+
|
|
754
|
+
### 📐 重构
|
|
755
|
+
|
|
756
|
+
- **Scheduler 卡片布局**:改为纵向分层,解决信息拥挤与对齐混乱
|
|
757
|
+
|
|
758
|
+
## v1.8.1
|
|
759
|
+
发布日期:`2026-05-01`
|
|
760
|
+
> 对比 `v1.8.0` → `v1.8.1`,共 `27` 个提交
|
|
761
|
+
|
|
762
|
+
### 🐛 修复
|
|
763
|
+
|
|
764
|
+
- **Web 端上传文件报错**:修复 busboy 竞态导致误报 "No file provided",异步文件保存完成前不再提前返回错误
|
|
765
|
+
- **切换对话时附件泄露**:修复粘贴附件发送后切换对话,旧附件误写入新对话草稿的问题
|
|
766
|
+
- **Web 端反馈提交**:打通反馈提交 RPC 通道,移除重复注册,Web 端反馈正常上报
|
|
767
|
+
- **Web 端附件裂图**:`getAttachmentUrl` 按环境分支协议,browser 走 HTTP URL,Electron 走 `kai://local`
|
|
768
|
+
- **群聊 @ 单人切换 speaker**:@ 单个成员时后端自动将 speaker 切换到该成员
|
|
769
|
+
- **记忆成长徽标折行**:执行状态徽标加 `white-space: nowrap`,不再折行
|
|
770
|
+
- **模型通道 tab 折行**:窄屏下 tab 改为水平滚动
|
|
771
|
+
- **检查更新卡住**:加 30 秒超时,防止无限等待
|
|
772
|
+
- **sharp 原生包安装**:加 `--force` 解决依赖冲突
|
|
773
|
+
- **Intel Mac DMG 架构**:updater 选择正确的 DMG 架构
|
|
774
|
+
- **遥测打包后失效**:endpoint 和 version 改用编译时注入
|
|
775
|
+
- **上传脚本**:仅上传当前版本安装包,版本真相源来自 `package.json.version`
|
|
776
|
+
- **内存采样写入文件**:崩溃后可回查
|
|
777
|
+
- **退出时 Scheduler 崩溃**:修复退出时 "Scheduler not initialized" 错误
|
|
778
|
+
- **updater 导入逻辑**:简化 require try-catch,添加自动检查调度和退出清理
|
|
779
|
+
|
|
780
|
+
### 🎨 改进
|
|
781
|
+
|
|
782
|
+
- **群 Header + 按钮**:改为幽灵风格,降低视觉权重
|
|
783
|
+
- **呼吸灯位置**:移到 subtitle 行右侧,两端对齐
|
|
784
|
+
- **StatusPill 公共组件**:收敛状态胶囊样式,替换重复实现
|
|
785
|
+
|
|
786
|
+
### 📐 重构
|
|
787
|
+
|
|
788
|
+
- **数据路径统一**:统一到 `config.getAppDataPath()`,crash 日志迁移到 `logs/crash`
|
|
789
|
+
- **IPC 命名规范**:新增文档,新事件遵循 `DOMAIN:ACTION` 格式
|
|
790
|
+
|
|
791
|
+
## v1.8.0
|
|
792
|
+
发布日期:`2026-05-01`
|
|
793
|
+
> 对比 `v1.7.2` → `v1.8.0`,共 `144` 个提交
|
|
794
|
+
|
|
795
|
+
### ✨ 新功能
|
|
796
|
+
|
|
797
|
+
- **企业微信 Bot 接入**:完整实现企业微信 Bot 对话能力,使用官方 @wecom/aibot-node-sdk
|
|
798
|
+
- **企微 Bot 流式回复**:流式回复抽象为 StreamingAdapter 能力对象,回复实时推送
|
|
799
|
+
- **微信个人号 Bot 接入**:基于 iLink 协议实现微信个人号 Bot 对话
|
|
800
|
+
- **IM 渠道文件发送**:企微和微信个人号支持 sendFile 文件发送
|
|
801
|
+
- **入站附件接收**:企微和微信个人号支持接收图片和文件附件
|
|
802
|
+
- **入站消息窗口聚合器**:高频入站消息自动窗口聚合,避免消息洪泛
|
|
803
|
+
- **Bot 接入后编辑绑定**:Bot 接入后允许修改绑定的目标 Agent/Group
|
|
804
|
+
- **遥测系统**:新增遥测服务,支持埋点、崩溃上报和用户反馈
|
|
805
|
+
- **反馈入口**:About 面板集成反馈区域,支持滚动定位
|
|
806
|
+
- **定时任务执行记录**:定时任务增加执行历史二级页面
|
|
807
|
+
- **TaskBlock 前后台区分**:TaskBlock 区分前台/后台任务展示
|
|
808
|
+
- **waitTask 任务跳转**:waitTask 点击可定位到对应任务块
|
|
809
|
+
- **双击重命名线程 Tab**:双击默认线程标签页标题可直接重命名
|
|
810
|
+
- **Mermaid 图交互**:Mermaid 图表支持滚轮缩放和拖拽平移
|
|
811
|
+
- **团队记忆 Markdown 渲染**:团队记忆弹窗默认 Markdown 渲染,按需编辑
|
|
812
|
+
- **多模态设置合并**:多模态设置合并到 LLM 通道面板,扁平化一级 Tab
|
|
813
|
+
- **ConfigWatcher**:监听配置文件变更并实时广播到渲染进程
|
|
814
|
+
- **CLI 模式**:实现 kai-cli start 命令,支持无 Electron 环境启动
|
|
815
|
+
- **Bot 接入 SVG 图标**:Bot 接入图标替换为真实 SVG
|
|
816
|
+
|
|
817
|
+
### 🐛 修复
|
|
818
|
+
|
|
819
|
+
- **流式输出 Layout 风暴**:消除流式滚动导致的 Layout 风暴,峰值 Layout 从 82ms 降至不可见
|
|
820
|
+
- **高频组件 React.memo**:高频渲染组件 React.memo 化,减少不必要重渲染
|
|
821
|
+
- **异步按钮防重复点击**:所有异步按钮抽取 useAsyncAction hook,防重复点击
|
|
822
|
+
- **Toast 配色语义**:修复成功消息显示红色的配色错误
|
|
823
|
+
- **Markdown 展开判断**:修复未截断内容也显示「展开全文」
|
|
824
|
+
- **Mermaid 流式延迟渲染**:流式输出期间延迟渲染 Mermaid 图表,避免闪烁
|
|
825
|
+
- **ToolCallCard 截断**:argSummary 改为 CSS 自适应截断
|
|
826
|
+
- **团队记忆溢出**:Markdown 内容溢出改为滚动条
|
|
827
|
+
- **群聊 Agent 头像点击**:点击头像弹出编辑弹窗而非进入设置页
|
|
828
|
+
- **单聊编辑入口**:砍掉冗余的「编辑Agent」入口,统一走「配置」面板
|
|
829
|
+
- **记忆更新进度丢失**:修复关闭设置弹窗后记忆更新进度丢失
|
|
830
|
+
- **mention 路由双重真相**:mentionIds 驱动后端路由,前端单一来源
|
|
831
|
+
- **webFetch 超长内容**:先存文件再截断,避免信息丢失
|
|
832
|
+
- **terminated 未重试**:修复 terminated 状态下不重试的 bug
|
|
833
|
+
- **监督模式提示词**:修正监督模式身份提示词
|
|
834
|
+
- **移动端侧边栏**:移动端加载时默认展开侧边栏
|
|
835
|
+
- **数据库外键约束**:移除 messages/scheduled_tasks 对 conversations 的跨域假外键
|
|
836
|
+
- **sharp 跨平台打包**:修复 sharp 在不同平台的打包兼容性
|
|
837
|
+
- **chokidar v5 类型兼容**:修复 ConfigWatcher 的类型兼容问题
|
|
838
|
+
- **微信个人号协议对齐**:修复 getUpdates/sendText/sendTyping/sendFile/二维码链接等 iLink 协议格式问题
|
|
839
|
+
- **连续消息回复丢失**:pendingReplies 用 runId 做 key,防止回复错乱
|
|
840
|
+
- **V8 堆 OOM 崩溃**:提升 V8 堆上限至 4GB,添加 MemoryMonitor 每 5 分钟采样
|
|
841
|
+
|
|
842
|
+
### 🔧 重构
|
|
843
|
+
|
|
844
|
+
- **src 分层重构**:core / adapters / electron / shared 四层分治,完成 T7-T21 共 15 项拆债
|
|
845
|
+
- **core→adapters 拆债**:Phase 1-4 反向依赖拆除,core 层不再直连 adapters
|
|
846
|
+
- **代码坏味道四轮修复**:依赖反转、日志标准化、SwarmExecutor 拆分、as any 清除、preload de-any
|
|
847
|
+
- **Cron 存储 SQLite→文件系统**:ScheduledTask + TaskExecution 从 Sequelize 迁移到 JSON 文件
|
|
848
|
+
- **渠道目录拆分**:channel 按渠道拆分目录,拆解 WeChatPersonalClient God Object
|
|
849
|
+
- **LLM 适配器提取**:createLanguageModel 工厂消除 5 处重复 provider 创建逻辑
|
|
850
|
+
- **Bootstrap 层重构**:bootstrap 依赖归位到正确层级
|
|
851
|
+
- **统一 ID 生成**:全部业务 ID 改用 genId(),统一格式
|
|
852
|
+
- **Config 入口拆分**:renderer 直接 import constants,避免加载 Node-only 模块
|
|
853
|
+
- **附件大小统一**:IMAGE_EXTENSIONS 收拢、sendFile 黑名单策略、上限提升至 100MB
|
|
854
|
+
- **streamId 统一**:用 genId 生成,不内联随机拼接
|
|
855
|
+
|
|
856
|
+
### 🗑️ 移除
|
|
857
|
+
|
|
858
|
+
- **网络代理设置**:删除 ProxyPanel 及全部 proxy 相关代码,非核心能力
|
|
859
|
+
|
|
860
|
+
## v1.7.2
|
|
861
|
+
发布日期:`2026-04-27`
|
|
862
|
+
> 对比 `v1.7.1` → `v1.7.2`,共 `11` 个提交
|
|
863
|
+
|
|
864
|
+
### ✨ 新功能
|
|
865
|
+
|
|
866
|
+
- **工具结果 Markdown 渲染**:字符串类型的工具调用结果支持 Markdown 渲染与折叠
|
|
867
|
+
- **图片查看器打开目录**:本地图片支持一键打开所在文件夹
|
|
868
|
+
- **统一发布流程**:KAi 产品页与更新元数据发布流程统一整合
|
|
869
|
+
|
|
870
|
+
### 🐛 修复
|
|
871
|
+
|
|
872
|
+
- **Passive Event Listener 警告**:修复 passive 事件监听器中调用 preventDefault 的控制台警告
|
|
873
|
+
- **协作面板布局偏移**:移除 CollaborationShell body 的 justify-content: flex-end,消除布局抖动
|
|
874
|
+
- **侧边栏创建入口**:文案与图标语义统一,更直观
|
|
875
|
+
- **线程标签 tooltip**:修复最后一条消息预览不刷新的问题
|
|
876
|
+
|
|
877
|
+
### 🔧 重构
|
|
878
|
+
|
|
879
|
+
- **更新提示收口**:移除右上角更新弹窗 Toast,AboutPanel 已完整承担更新提示职责
|
|
880
|
+
|
|
881
|
+
### 📝 文档
|
|
882
|
+
|
|
883
|
+
- **路线图更新**:反映 Phase 1-2 完成后的新判断
|
|
884
|
+
- **文档目录整理**:整理文档目录结构
|
|
885
|
+
|
|
886
|
+
## v1.7.1
|
|
887
|
+
发布日期:`2026-04-27`
|
|
888
|
+
> 对比 `v1.7.0` → `v1.7.1`,共 `25` 个提交
|
|
889
|
+
|
|
890
|
+
### ✨ 新功能
|
|
891
|
+
|
|
892
|
+
- **侧边栏置顶**:会话条目支持置顶,置顶后固定在列表顶部
|
|
893
|
+
- **渐进式侧边栏**:首次打开时隐藏空侧边栏,数据就绪后平滑过渡出现
|
|
894
|
+
- **Thread Tabs tooltip 预览**:hover 线程 tab 时显示用户最后一条消息预览
|
|
895
|
+
- **Thread Tabs 双击重命名**:双击线程 tab 直接内联编辑标题
|
|
896
|
+
- **版本号入口**:侧边栏 footer 版本号可点击进入关于页,新版本可用时显示呼吸色点
|
|
897
|
+
|
|
898
|
+
### 🐛 修复
|
|
899
|
+
|
|
900
|
+
- **消息连发**:handleSend 加并发锁,/clear 快捷键同步受控
|
|
901
|
+
- **群定时任务兼容 Group Threads**:老任务自动路由到默认 thread,scheduler 工具改用 belongsToContext() 判断归属
|
|
902
|
+
- **Token Usage 多轮累加**:修复 handoff/supervisor 场景子执行器 usage 替换而非累加到整个消息 tokenUsage
|
|
903
|
+
- **群聊成员运行态高亮移除**:thread 状态不再污染群级 Header,避免层级错位信号
|
|
904
|
+
- **Thread Tabs 固定排序**:按创建时间固定位置,不再漂移
|
|
905
|
+
- **顶部按钮显示逻辑**:展开状态的消息都显示操作按钮
|
|
906
|
+
- **Agent 编辑面板缓存**:打开编辑面板时强制刷新,避免展示过期数据
|
|
907
|
+
- **魔法棒按钮位置**:移到 description 标签行右侧,两端对齐
|
|
908
|
+
- **i18n 补齐**:补齐缺失文案并修正 reasoningEffort 文案键结构
|
|
909
|
+
|
|
910
|
+
### 🔧 重构
|
|
911
|
+
|
|
912
|
+
- **数据路径收口**:数据路径收口到 config.getAppDataPath() 单一入口
|
|
913
|
+
- **Agent 描述优化**:重写提示词,采用「立场+擅长领域」双句结构
|
|
914
|
+
|
|
915
|
+
## v1.7.0
|
|
916
|
+
发布日期:`2026-04-26`
|
|
917
|
+
> 对比 `v1.6.0` → `v1.7.0`,共 `98` 个提交
|
|
918
|
+
|
|
919
|
+
### ✨ 新功能
|
|
920
|
+
|
|
921
|
+
- **Group Threads(群线程)**:一个群聊下可创建多个线程,隔离不同议题现场;线程级 Speaker、状态点、归档管理、二次确认关闭
|
|
922
|
+
- **线程 Tab UI**:顶部 ThreadTabs 切换线程,默认线程 Hash 图标区分,双击内联重命名,活跃线程扫光动画
|
|
923
|
+
- **线程上下文独立存储**:群聊 LLM 上下文迁移到 `groups/{groupId}/threads/{threadId}/context.json`,单聊迁移到 `agents/{agentId}/context.json`
|
|
924
|
+
- **消息自动折叠**:Agent 消息滚动出视口时自动折叠,保留最近关键内容展开
|
|
925
|
+
- **Tool Call 参数结构化渲染**:属性列表展示工具调用参数与结果,值区支持 Markdown 渲染
|
|
926
|
+
- **Tool Call Markdown 折叠**:工具结果中的大段 Markdown 默认折叠,可展开查看
|
|
927
|
+
- **多模态面板重构**:analysis / generation 子字段拆分,配置摘要提示
|
|
928
|
+
- **计划工具增强**:planTool 增加 context 参数,多轮评估保留关键上下文
|
|
929
|
+
- **消息计时优化**:超过 60s 按分钟显示,超过 60 分钟按小时显示
|
|
930
|
+
- **渲染进程崩溃恢复**:异常时自动恢复,带熔断保护
|
|
931
|
+
- **崩溃日志本地捕获**:将崩溃信息写入本地日志
|
|
932
|
+
- **智能回退增强**:所有健康通道耗尽时允许 unhealthy 通道参与兜底重试
|
|
933
|
+
|
|
934
|
+
### 🐛 修复
|
|
935
|
+
|
|
936
|
+
- **tool-call.input 序列化**:修正 string 类型导致 provider 校验失败
|
|
937
|
+
- **侧栏消息预览为空**:修复群聊激活态/完成态覆盖群内所有线程
|
|
938
|
+
- **消息折叠不生效**:增加挂载时初始高度检测;折叠只在过渡时刻触发,历史消息不再被误折叠
|
|
939
|
+
- **加载更多滚动竞争**:修复 sticky bottom 竞争导致意外滚到底
|
|
940
|
+
- **群聊切线程白屏闪烁**:收紧订阅与依赖
|
|
941
|
+
- **Broadcast 闪烁光标**:移除内容区闪烁光标,tab 圆点已足够传达 streaming 状态
|
|
942
|
+
- **ThreadTabs 排序**:默认线程始终保持在第一个位置,按创建时间排序
|
|
943
|
+
- **Markdown 图片撑爆气泡**:限制最大高度 320px
|
|
944
|
+
- **CollaborationShell 高度**:body 限制最大高度 400px,超出用滚动条
|
|
945
|
+
- **inline code 路径误判**:含换行时不误判为本地路径链接
|
|
946
|
+
- **TaskBlock 折叠后展开内容消失**:移除内部高度限制,折叠/展开统一由 Shell body 控制
|
|
947
|
+
- **备选模型自动切换**:修复健壮性问题
|
|
948
|
+
- **设置页迁移与自动保存**:修复多模态配置迁移与卸载保存
|
|
949
|
+
- **AboutPanel 启动崩溃**:修复模块顶层调用 getTransport() 导致的问题
|
|
950
|
+
- **归档线程后资源释放**:立即释放 ConversationManager 和 Session
|
|
951
|
+
- **工具相对路径**:readFile/writeFile/editFile 相对路径补全为绝对路径
|
|
952
|
+
- **generateImage abort 处理**:注册工具并修复中断逻辑
|
|
953
|
+
|
|
954
|
+
### 🔧 重构
|
|
955
|
+
|
|
956
|
+
- **彻底清除 Session 概念**:移除 Session 层,上下文直接由 Agent/Thread 管理
|
|
957
|
+
- **ID 生成统一**:type_nanoid 格式替换散落的 UUID/randomUUID/Date.now
|
|
958
|
+
- **ChatHeaderBar 双层布局重构**
|
|
959
|
+
- **ThreadTabs 状态点系统**:统一为单一圆点系统,删除 unreadDot
|
|
960
|
+
- **图片生成工具**:返回绝对路径替代 attachment 标签
|
|
961
|
+
- **功能清单全面更新**:反映 Group Threads 后的真实产品状态
|
|
962
|
+
|
|
963
|
+
## v1.6.0
|
|
964
|
+
发布日期:`2026-04-25`
|
|
965
|
+
> 对比 `v1.5.3` → `v1.6.0`,共 `45` 个提交
|
|
966
|
+
|
|
967
|
+
### ✨ 新功能
|
|
968
|
+
|
|
969
|
+
- **自动更新**:实现客户端自动更新,UpdateToast 全局更新提示,关于页面重构更新流程
|
|
970
|
+
- **多模态拆分**:analysis/generation 双子结构,新增图片生成工具
|
|
971
|
+
- **思考模式四档**:reasoningEffort(低/中/高/满)替换 enableThinking 布尔开关
|
|
972
|
+
- **工具限制面板**:CapabilitiesTab 增加折叠面板,支持按 Agent 禁用指定工具
|
|
973
|
+
- **协作组件统一**:CollaborationShell 公共外壳,统一协作组件视觉家族
|
|
974
|
+
- **群聊空状态引导**:从"暂无消息"改为起步引导
|
|
975
|
+
- **BroadcastCard Markdown 渲染**:广播面板 question 使用 Markdown 渲染
|
|
976
|
+
- **消息失败保留**:发送失败后保留输入框内容,不丢失用户输入
|
|
977
|
+
- **Web 端文件上传**:改用 multipart/form-data
|
|
978
|
+
- **独立上传脚本**:build 独立上传脚本,更新 publish url
|
|
979
|
+
|
|
980
|
+
### 🐛 修复
|
|
981
|
+
|
|
982
|
+
- **手机端键盘闪烁**:修复移动端点击发送时键盘闪烁
|
|
983
|
+
- **侧边栏加载闪烁**:消除初始加载闪烁,数据就绪后一次性渲染列表
|
|
984
|
+
- **scheduler 工具名不匹配**:修复工具名不匹配,补全 cron 工具翻译
|
|
985
|
+
- **/clear 重复系统消息**:移除重复系统消息,改为系统消息展示与 /compact 行为一致
|
|
986
|
+
- **群聊回复及输入框删除逻辑**:优化群聊交互细节
|
|
987
|
+
- **发送消息竞态条件**:修复发送期间用户继续打字被清空的竞态
|
|
988
|
+
- **工具相对路径**:readFile/writeFile/editFile 相对路径补全为绝对路径
|
|
989
|
+
- **HTML 预览资源加载**:改用 kai:// 协议,支持相对路径资源加载
|
|
990
|
+
- **TaskBlock 高度**:限制产出区高度,防止长内容撑开聊天流
|
|
991
|
+
- **memberRow 滚动**:隐藏滚动条 hover 显示,垂直滚轮转水平滚动
|
|
992
|
+
- **Agent 描述截断**:截断长度从 60 提升到 100 字符
|
|
993
|
+
|
|
994
|
+
### 🔄 重构/还原
|
|
995
|
+
|
|
996
|
+
- **memberRow 还原**:还原成员 chips 行,移除 memberBadge
|
|
997
|
+
- **侧边栏滚动条**:对话列表滚动条默认隐藏,hover 时才显示
|
|
998
|
+
|
|
999
|
+
### 🧹 杂项
|
|
1000
|
+
|
|
1001
|
+
- **i18n 清理**:移除未使用的 selectAgentHint 文案
|
|
1002
|
+
- **E2E 测试**:添加 reasoning effort E2E 测试
|
|
1003
|
+
- **群聊弹窗测试**:同步群聊创建弹窗测试文案
|
|
1004
|
+
- **发版流程文档**:更新打包命令
|
|
1005
|
+
|
|
1006
|
+
|
|
1007
|
+
## v1.5.3
|
|
1008
|
+
发布日期:`2026-04-24`
|
|
1009
|
+
> 对比 `v1.5.2` → `v1.5.3`,共 `7` 个提交
|
|
1010
|
+
|
|
1011
|
+
### 🔧 重构
|
|
1012
|
+
|
|
1013
|
+
- **团队记忆强制精简**:注入时加副标题提示摘要性质,工具 description 加正反例引导精简写入,字符上限从 3000 降至 1500
|
|
1014
|
+
- **群聊成员选择弹窗**:移除成员 chip 区,人数 badge 移至搜索栏,footer 常驻底部
|
|
1015
|
+
|
|
1016
|
+
### 🐛 修复
|
|
1017
|
+
|
|
1018
|
+
- **删除 Agent 未从群聊移除**:删除 Agent 时同步从群聊成员列表中移除,修复移动端消息 footer 折行
|
|
1019
|
+
- **群聊右键打开工作目录**:右键应打开群目录而非会话目录
|
|
1020
|
+
|
|
1021
|
+
### 📝 文档
|
|
1022
|
+
|
|
1023
|
+
- **AI Worktree 工作流规范**:新增工作流规范文档,更新 CLAUDE.md 和 CONTRIBUTING.md
|
|
1024
|
+
- **工作流规范修订**:补充会话初始化检查、合并后再验证等纪律
|
|
1025
|
+
|
|
1026
|
+
## v1.5.2
|
|
1027
|
+
发布日期:`2026-04-24`
|
|
1028
|
+
> 对比 `v1.5.1` → `v1.5.2`,共 `4` 个提交
|
|
1029
|
+
|
|
1030
|
+
### 🐛 修复
|
|
1031
|
+
|
|
1032
|
+
- **发送消息报"database is locked"错误**:修复 SQLite 在多个写入操作并发时锁竞争导致消息发送失败的问题
|
|
1033
|
+
- **监督模式提前退出**:添加计划进度门控机制,未完成任务时首次 `achieved=true` 注入提醒,二次确认才允许退出
|
|
1034
|
+
- **监督者头像错误**:监督模式入口设置 supervisor 为 speaker,finalAgentId 贯穿 ReplyStream → GroupChat → ConversationManager → MessageProcessor 全链路
|
|
1035
|
+
- **PlanTask 字段命名**:`assigneeId` 重命名为 `assigneeAgentId`,与 AgentId 命名规范对齐
|
|
1036
|
+
|
|
1037
|
+
## v1.5.1
|
|
1038
|
+
发布日期:`2026-04-24`
|
|
1039
|
+
> 对比 `v1.5.0` → `v1.5.1`,共 `24` 个提交
|
|
1040
|
+
|
|
1041
|
+
### 🆕 新功能
|
|
1042
|
+
|
|
1043
|
+
- **渠道配置重构**:新增渠道配置并重构逻辑
|
|
1044
|
+
- **Web 端文件下载**:支持浏览器端文件下载 + 路径穿越安全加固
|
|
1045
|
+
- **HTML 预览允许脚本执行**:HTML 预览沙箱放开脚本限制
|
|
1046
|
+
- **消息懒加载**:初始加载 20 条消息,内存上限 50 条,发消息时裁剪旧消息
|
|
1047
|
+
- **TokenUsage 大数显示**:超过 1M tokens 时用 M 为单位
|
|
1048
|
+
- **Sidebar 右键菜单**:右键菜单增加「打开工作目录」
|
|
1049
|
+
|
|
1050
|
+
### 🐛 修复
|
|
1051
|
+
|
|
1052
|
+
- **BroadcastCard 视觉层次**:主容器加 border/shadow/border-radius,内容区 max-height 240px + 自定义滚动条,状态圆点改用 CSS 变量
|
|
1053
|
+
- **群聊编辑框按钮溢出**:ChatBox 改用 flex 布局代替 height:100vh,修复按钮被推到视口外
|
|
1054
|
+
- **Web 端附件上传**:打通 web 端附件上传 + ModelSelect/备用模型溢出修复
|
|
1055
|
+
- **ToolCallCard 图标补齐**:补齐 analyzeImage/broadcast/plan/report 图标,消除撞图
|
|
1056
|
+
- **MessageProjection duration 中断**:工具输出期间保持 isStreaming,duration 计时不中断
|
|
1057
|
+
- **MessageItem 移动端溢出**:metrics 行禁止折行,model 名称超出打点
|
|
1058
|
+
- **中文/空格路径解码**:修复中文和空格路径解码 + protocol handler 穿越保护
|
|
1059
|
+
- **DiffViewer 行高亮中断**:修复横向滚动时行高亮背景中断
|
|
1060
|
+
- **路径安全策略**:/full/ 路径安全改用黑名单,替代 HOME 白名单
|
|
1061
|
+
|
|
1062
|
+
### 🔧 重构
|
|
1063
|
+
|
|
1064
|
+
- **AgentCard 真实头像**:用 AgentAvatar 替换 Bot 图标,显示真实头像
|
|
1065
|
+
- **ChatHeaderBar 优化**:useMemo 缓存 isBrowserTransport 检测,清理 memberRow 移除后残留代码
|
|
1066
|
+
- **群聊成员行精简**:移除成员 chips 行,替换为计数 badge
|
|
1067
|
+
- **TaskBlock 视觉降噪**
|
|
1068
|
+
- **死代码清理**:删除死代码、垃圾文件与未使用的导出
|
|
1069
|
+
|
|
1070
|
+
---
|
|
1071
|
+
|
|
1072
|
+
## v1.5.0
|
|
1073
|
+
发布日期:`2026-04-23`
|
|
1074
|
+
> 对比 `v1.4.7` → `v1.5.0`,共 `67` 个提交
|
|
1075
|
+
|
|
1076
|
+
### 🆕 新功能
|
|
1077
|
+
|
|
1078
|
+
- **Supervisor 监督模式上线**:SwarmExecutor 支持监督者循环,可在执行过程中评估、继续推进并输出更稳定的结果
|
|
1079
|
+
- **Memory Growth P0 完整闭环**:新增成长配置、差异预览、无变更状态、真实文件变更跟踪与成长记录 UI
|
|
1080
|
+
- **群聊协作界面全面升级**:Broadcast 改为标签聚合,Task/Handoff/Supervisor 等协作块独立渲染,去掉全局气泡与重复状态信号
|
|
1081
|
+
- **Block 级渲染架构落地**:消息按原始 blocks 顺序统一渲染,协作组件获得更清晰的语义层级
|
|
1082
|
+
- **文件系统会话能力增强**:群组迁移到文件系统,并新增会话与文件系统对账能力(Phase 1)
|
|
1083
|
+
- **定时任务与调度体验增强**:恢复 scheduler tab,新增更紧凑的任务列表布局与更明确的错误反馈
|
|
1084
|
+
- **输入与导航体验增强**:消息输入下拉菜单 portal 化,最后一条消息新增「回到消息顶部」按钮
|
|
1085
|
+
- **文件路径操作增强**:Tool Call 卡片支持直接复制文件路径
|
|
1086
|
+
- **远程访问链接稳定化**:补强远程访问入口的可用性与稳定性
|
|
1087
|
+
- **记住监督者选择**:单聊中可记住上次 supervisor 选择,减少重复设置
|
|
1088
|
+
|
|
1089
|
+
### 🐛 修复
|
|
1090
|
+
|
|
1091
|
+
- **流式消息防崩溃丢失**:AI 回复在生成过程中先落骨架消息,之后按 block 增量保存,完成或异常时再做最终全量保存
|
|
1092
|
+
- **Swarm finish 门禁**:存在后台 task 运行中或未 `waitTask` 收口时,禁止 finish,必须显式 `waitTask` 或 `killTask`
|
|
1093
|
+
- **流式期间禁用 slash commands**:避免生成中插入命令造成语义混乱
|
|
1094
|
+
- **聊天草稿附件恢复**:修复草稿内容恢复时附件丢失问题
|
|
1095
|
+
- **Supervisor 执行流程修复**:解决 evaluate_result 前提前停止、plan 后跳过执行、评估逻辑不稳等问题
|
|
1096
|
+
- **群聊/单聊消息状态统一**:修复 loading 动画、footer 与状态展示不一致问题
|
|
1097
|
+
- **流式 metrics 收敛到 AgentBlockMessage**:消除 MessageBubble embedded 模式重复计算,streaming duration 每 200ms 平滑刷新
|
|
1098
|
+
- **记忆更新与临时任务持久化修复**:手动触发或临时任务成功时避免错误写库与外键失败
|
|
1099
|
+
- **Scheduler 可用性修复**:修复定时任务触发后无响应、面板缺失 i18n、错误任务过滤异常等问题
|
|
1100
|
+
- **模型与任务执行稳定性提升**:修复 Qwen `maxOutputTokens` 超限、任务结果提取不准、技能筛选失效等问题
|
|
1101
|
+
- **总结消息意图判断修复**:由字符串匹配改为 `metadata.intent` 标记,避免误判
|
|
1102
|
+
- **嵌入式气泡布局修复**:限制最大宽度、fit-content 收缩,避免短内容撑满整行
|
|
1103
|
+
|
|
1104
|
+
### 🔧 重构
|
|
1105
|
+
|
|
1106
|
+
- **监督链路重构**:引入单轮 snapshot 模型与可展开的 Supervisor 执行过程 blocks,提升可解释性
|
|
1107
|
+
- **群聊消息壳层重构**:统一 embedded 布局,消息头像移动到顶部,释放正文宽度
|
|
1108
|
+
- **夜间记忆更新重建为 Growth 配置**:从自动任务导向切回可配置、可审查的成长机制
|
|
1109
|
+
- **协作组件层级与结果展示重构**:TaskBlock、Broadcast、Handoff 的层次、边界与结果展示方式全面梳理
|
|
1110
|
+
- **数据库与死代码清理**:移除未使用的 `conversation_context_cache` 表及相关死代码
|
|
1111
|
+
- **渲染与样式清理**:去掉 `cn` 包装、统一使用 `clsx`,并持续清除坏味道、重复逻辑与无用导入
|
|
1112
|
+
- **文档体系重组**:docs 目录重构,并同步更新 supervisor 架构文档与协作设计决策
|
|
1113
|
+
|
|
1114
|
+
---
|
|
1115
|
+
|
|
1116
|
+
## v1.4.7 (2026-04-21)
|
|
1117
|
+
|
|
1118
|
+
> 对比 `v1.4.5` → `v1.4.7`,共 5 个提交
|
|
1119
|
+
|
|
1120
|
+
### 🐛 修复
|
|
1121
|
+
|
|
1122
|
+
- **消息完成后时间戳不再跳动**:`activeRunId` 匹配 + `isStreaming` 双重守卫,已完成消息的耗时冻结不变
|
|
1123
|
+
- **定时任务面板显示全部任务**:不再按 conversationId 过滤,始终展示所有任务
|
|
1124
|
+
- **useScrollAnchor 内存泄漏**:`requestAnimationFrame` 返回值未清理,组件卸载后仍执行回调
|
|
1125
|
+
|
|
1126
|
+
### 🆕 新功能
|
|
1127
|
+
|
|
1128
|
+
- **analyzeImage 图片最大尺寸可配置**:多模态设置面板新增 `maxImageSize`(512-8192px),`analyze-image` 和 `MultimodalTransformer` 共享同一套缩放逻辑
|
|
1129
|
+
|
|
1130
|
+
### 🔧 重构
|
|
1131
|
+
|
|
1132
|
+
- **WelcomeState 简化为品牌符号+方向指引**:砍掉 Agent 卡片网格
|
|
1133
|
+
- **useEffectEvent 迁移**:`useChatActions`/`useScrollAnchor`/`useTheme` 的 `useRef` 模式统一迁移到 `useEffectEvent`
|
|
1134
|
+
- **共享图片缩放工具提取**:`resizeImageBuffer()` + `getMaxImageDimension()` 提取到 `multimodal.ts`,消除重复逻辑
|
|
1135
|
+
|
|
1136
|
+
---
|
|
1137
|
+
|
|
1138
|
+
## v1.4.5
|
|
1139
|
+
|
|
1140
|
+
> 对比 v1.4.4 → v1.4.5,共 11 个提交
|
|
1141
|
+
|
|
1142
|
+
### 🆕 新功能
|
|
1143
|
+
|
|
1144
|
+
- **多 Agent 身份识别系统**:assistant 消息注入 agentName + agentId,摘要时区分多 Agent 发言人
|
|
1145
|
+
- **历史消息身份标注(runOnce)**:给历史 assistant 消息注入 `[@name]` 标签,升级后首次启动自动执行
|
|
1146
|
+
- **交接消息标明发言人身份**:handoff/task/broadcast 交接消息显示发起人(fromAgent)而非目标人
|
|
1147
|
+
|
|
1148
|
+
### 🐛 修复
|
|
1149
|
+
|
|
1150
|
+
- **WebSocket 心跳容忍 + 重连后状态恢复**:心跳超时容忍度提升,断线重连后自动恢复会话状态
|
|
1151
|
+
- **交接消息标发起人而非目标人**:修复 handoff 消息显示错误 Agent 名称的问题
|
|
1152
|
+
- **Review 修复 — 增量遍历、覆盖盲区、DRY**:修复身份注入的重复计数和遍历盲区
|
|
1153
|
+
|
|
1154
|
+
### 🔧 重构
|
|
1155
|
+
|
|
1156
|
+
- **压缩摘要提示词重构**:9 章节合并为 5 正交章节,结构更清晰、Token 更省
|
|
1157
|
+
- **Speaker 上下文从 system prompt 移至 user 消息 reminder 标签**:减少 system prompt 膨胀
|
|
1158
|
+
- **Agent 身份注入提前到 onStepFinish**:executeInternal 作为兜底,双层保障
|
|
1159
|
+
- **删除冗余的 reminder 注入**:清理 handoff 交接消息格式
|
|
1160
|
+
|
|
1161
|
+
---
|
|
1162
|
+
|
|
1163
|
+
## v1.4.4
|
|
1164
|
+
|
|
1165
|
+
> 对比 v1.4.3 → v1.4.4,共 14 个提交
|
|
1166
|
+
|
|
1167
|
+
### 🆕 新功能
|
|
1168
|
+
|
|
1169
|
+
- **UX 重设计 — Welcome/Supervisor/Broadcast 卡片 + 6 项交互改进**:重新设计欢迎页、Supervisor 评价卡片和广播消息的视觉表现,优化 6 处交互细节
|
|
1170
|
+
|
|
1171
|
+
### 🐛 修复
|
|
1172
|
+
|
|
1173
|
+
- **流式 Token 显示改用 AI SDK finish-step usage**:替换字符数估算为 SDK 精确值,Token 计数更准确
|
|
1174
|
+
- **流式输出立即推送模型信息**:不再等待 3 秒定时器,首条消息即显示模型名
|
|
1175
|
+
- **消息 metrics 区域宽度抖动**:修复流式输出期间指标行宽度反复跳动
|
|
1176
|
+
- **流式 loading dots 合并到 metrics 行**:消除独立 loading 行导致的布局跳动
|
|
1177
|
+
- **Web 模式本地图片无法渲染**:修复 web 环境下本地路径图片不显示
|
|
1178
|
+
- **工具调用期间 abort 无法立即中断流式输出**:修复工具执行中点击停止按钮无响应
|
|
1179
|
+
- **Agent 响应出现在用户消息之前**:修复消息顺序错乱
|
|
1180
|
+
- **Input placeholder 文案升级**:贴合 KAi 思维伙伴品牌调性
|
|
1181
|
+
- **Mobile sidebar 入口 + 成员列表不限数量**:修复移动端 sidebar 打开问题和成员 chips 截断
|
|
1182
|
+
- **Mobile 设置页横向滚动标签栏**:替换垂直 sidebar 为水平滚动条,适配小屏
|
|
1183
|
+
- **Web 剪贴板 fallback + 移动端气泡宽度 100%**:修复 web 环境复制失败和移动端消息气泡过窄
|
|
1184
|
+
|
|
1185
|
+
### 🔧 重构
|
|
1186
|
+
|
|
1187
|
+
- **Emoji/Unicode 指示器替换为 Lucide 图标**:硬编码十六进制色值改为 CSS 变量,视觉统一
|
|
1188
|
+
- **流式指标代码质量改进**:增量更新、类型安全、消除 `as any`
|
|
1189
|
+
|
|
1190
|
+
---
|
|
1191
|
+
|
|
1192
|
+
## v1.4.3
|
|
1193
|
+
|
|
1194
|
+
> 对比 v1.4.2 → v1.4.3,共 2 个提交
|
|
1195
|
+
|
|
1196
|
+
### 🐛 修复
|
|
1197
|
+
|
|
1198
|
+
- **流式输出时指标不显示**:修复 `run.started` 投影未设置 `message.runId`,以及 `mergeProjectionUpdate` 缺少 `runMetricsMap` 合并,导致流式期间模型/Token/耗时无法实时显示
|
|
1199
|
+
|
|
1200
|
+
---
|
|
1201
|
+
|
|
1202
|
+
## v1.4.2
|
|
1203
|
+
|
|
1204
|
+
> 对比 v1.4.1 → v1.4.2,共 3 个提交
|
|
1205
|
+
|
|
1206
|
+
### 🆕 新功能
|
|
1207
|
+
|
|
1208
|
+
- **流式运行指标实时显示**:流式输出期间实时显示当前模型、Token 使用量、耗时
|
|
1209
|
+
- 新增 `run.progress` 事件类型,后端每 3 秒推送进度指标
|
|
1210
|
+
- 前端 `runMetricsMap` 投影层管理流式指标,本地计时器 200ms 刷新耗时
|
|
1211
|
+
- `onRunInfo` 回调链路打通:AgentExecutor → SoloExecutor → SoloChat → ConversationManager → MessageProcessor
|
|
1212
|
+
- 流式/终态指标无缝切换(`??` 回退),终态时 SDK 精确值静默覆盖估算值
|
|
1213
|
+
- Token 估算策略:CJK 约 1.5 字符/token,英文约 4 字符/token,取中间值 2.5
|
|
1214
|
+
|
|
1215
|
+
### 🐛 修复
|
|
1216
|
+
|
|
1217
|
+
- **Preload 脚本 `tBridge` 未定义导致启动崩溃**:移除 `src/preload/index.ts` 末尾多余的 `tBridge.exposeInMainWorld` 调用(`contextBridge` 笔误),修复 `ReferenceError: tBridge is not defined`
|
|
1218
|
+
- **FilePreviewDrawer 测试崩溃**:`transport.meta?.env` 增加可选链防御
|
|
1219
|
+
- **KAI_VERSION 更新**:migration 版本从 1.4.0 升级到 1.4.1
|
|
1220
|
+
- **ConversationManager 测试**:mock 对象补充 `onRunInfo` 方法
|
|
1221
|
+
|
|
1222
|
+
## v1.4.1
|
|
1223
|
+
|
|
1224
|
+
> 对比 v1.4.0 → v1.4.1,共 6 个提交
|
|
1225
|
+
|
|
1226
|
+
### 🐛 修复
|
|
1227
|
+
|
|
1228
|
+
- **消息 metadata 持久化**:修复 supervisor 标签不显示的问题——metadata(含 supervisorId)未写入数据库,导致前端渲染时永远读到 undefined
|
|
1229
|
+
- **附件上传**:修复附件以 binary payload 格式上传
|
|
1230
|
+
- **JSON 解析增强**:新增 jsonrepair 依赖,增强错误重试
|
|
1231
|
+
|
|
1232
|
+
### 🔧 重构
|
|
1233
|
+
|
|
1234
|
+
- **Supervisor 回退逻辑移除**:当 supervisor 未调用 evaluate_result 时,不再 fallback 到文本分析,直接以"未知结论"终止监督
|
|
1235
|
+
|
|
1236
|
+
## v1.4.0
|
|
1237
|
+
|
|
1238
|
+
> 对比 v1.3.0 → v1.4.0,共 31 个提交
|
|
1239
|
+
|
|
1240
|
+
### 🆕 新功能
|
|
1241
|
+
|
|
1242
|
+
- **多模态图片支持**:MultimodalTransformer + AgentExecutor 集成,支持图片分析和视觉理解
|
|
1243
|
+
- 输入框支持粘贴图片/文件作为附件
|
|
1244
|
+
- 图片附件渲染缩略图预览
|
|
1245
|
+
- 多模态设置面板,模型能力自动检测并持久化
|
|
1246
|
+
- sharp 依赖用于图片缩放处理
|
|
1247
|
+
- **Supervisor 模式 UX 升级**:身份识别、i18n、任意 Agent 可作为 Supervisor
|
|
1248
|
+
- **消息指标显示实际模型**:fallback 时提供视觉信号区分
|
|
1249
|
+
- **Markdown 块级复制**:Agent 文本块 > 3 行时 hover 显示复制按钮,与代码块体验一致
|
|
1250
|
+
- **waitTask 多任务支持**:Accordion 折叠渲染多个异步任务结果
|
|
1251
|
+
- **通道设置面板反馈优化**
|
|
1252
|
+
- **消息来源标记**:区分人类消息与合成 user 消息
|
|
1253
|
+
- **摘要生成规则连续性提升**
|
|
1254
|
+
- **确认对话框与通知体验优化**
|
|
1255
|
+
|
|
1256
|
+
### 🐛 修复
|
|
1257
|
+
|
|
1258
|
+
- autoFallback 配置备份通道时默认为 true
|
|
1259
|
+
- 锚点检测适配新的 ASCII 摘要标记
|
|
1260
|
+
- TaskBlock 自动滚动不再与用户手动滚动冲突
|
|
1261
|
+
- 清除上下文后聊天侧边栏稳定
|
|
1262
|
+
- 浏览器模式启用文件预览
|
|
1263
|
+
- normalize agent names for task metadata
|
|
1264
|
+
- findLastIndex 类型注解修复(strict mode 兼容)
|
|
1265
|
+
|
|
1266
|
+
### 🔧 重构
|
|
1267
|
+
|
|
1268
|
+
- **AgentConfig 值对象化**:引入 AgentConfig value object → adopt accessors → 移除 facade getters → Agent 文件成为主要运行时来源
|
|
1269
|
+
- 移除已废弃的 agent 兼容性辅助函数
|
|
1270
|
+
- 移除 scheduler database facade 使用
|
|
1271
|
+
- 移除遗留 attachment DSL 转换
|
|
1272
|
+
- SwarmContext 封装 + TaskResultAccordion DRY
|
|
1273
|
+
- 消除 chat sidebar/header 代码异味
|
|
1274
|
+
- 模型能力检测重构
|
|
1275
|
+
|
|
1276
|
+
### 🎨 样式
|
|
1277
|
+
|
|
1278
|
+
- Task panel 视觉强调度降低
|
|
1279
|
+
- Chat sidebar 副标题布局优化
|
|
1280
|
+
|
|
1281
|
+
## v1.3.0
|
|
1282
|
+
|
|
1283
|
+
> 对比 v1.2.3 → v1.3.0,共 13 个提交
|
|
1284
|
+
|
|
1285
|
+
### 🆕 新功能
|
|
1286
|
+
|
|
1287
|
+
- **KAi Web 化(Phase 1 + Phase 2)**:支持浏览器/手机远程访问,Transport 抽象层解耦 Electron IPC 依赖
|
|
1288
|
+
- HTTP Server 绑定 0.0.0.0 + 返回局域网 IP,可在手机等设备访问
|
|
1289
|
+
- 响应式布局,小屏幕自适应(mobile sidebar、ARIA 无障碍、Escape 关闭)
|
|
1290
|
+
- 远程访问面板:多地址列表(⭐推荐)、已连接设备展示、QR 码一键扫码
|
|
1291
|
+
- Token 认证:24h TTL 自动过期、不可变导出、操作日志
|
|
1292
|
+
- RPC 安全:DESKTOP_ONLY_CHANNELS 白名单阻止浏览器调用 Electron 专属 API
|
|
1293
|
+
- `window.api` → `getTransport()` 116 处收敛,零残留
|
|
1294
|
+
|
|
1295
|
+
### 🐛 修复
|
|
1296
|
+
|
|
1297
|
+
- migration executor_id 清理失败不再阻塞应用启动
|
|
1298
|
+
- ipc-transport 不再修改 frozen 的 window.api,改用 Proxy adapter
|
|
1299
|
+
- 浏览器模式正确注入 transport 到 window.api
|
|
1300
|
+
- 移动端无对话时默认展示 sidebar,切回桌面时自动重开
|
|
1301
|
+
- crypto.randomUUID fallback — HTTP 非安全上下文兼容
|
|
1302
|
+
- 远程访问面板二次打开时恢复 token,URL 和 QR 码正常显示
|
|
1303
|
+
- Review 修复:uuid fallback、虚拟网卡过滤、useCallback deps、并发安全等
|
|
1304
|
+
|
|
1305
|
+
### 🎨 样式
|
|
1306
|
+
|
|
1307
|
+
- 消息气泡最大宽度从 75%/80% 统一增加到 90%,小屏幕内容不再过窄
|
|
1308
|
+
|
|
1309
|
+
## v1.2.3
|
|
1310
|
+
|
|
1311
|
+
> 对比 v1.2.2 → v1.2.3,共 6 个提交
|
|
1312
|
+
|
|
1313
|
+
### 新功能
|
|
1314
|
+
|
|
1315
|
+
- Agent 列表固定排序 + 搜索过滤
|
|
1316
|
+
|
|
1317
|
+
### 修复
|
|
1318
|
+
|
|
1319
|
+
- 群聊新增成员后 mentions 下拉列表不更新(本地 state 未同步 store)
|
|
1320
|
+
- 重试路径 sending 状态闪烁(finally 无条件清 processingSet 导致误发 running=false)
|
|
1321
|
+
- 复盘查询改用 conversation 联查替代 executorId
|
|
1322
|
+
|
|
1323
|
+
### 重构
|
|
1324
|
+
|
|
1325
|
+
- 清理消息模型中的 executorId 死字段
|
|
1326
|
+
- 数据库 migration 清理 messages 表残留的 executor_id 列和索引
|
|
1327
|
+
|
|
1328
|
+
## v1.2.2
|
|
1329
|
+
|
|
1330
|
+
> 对比 v1.2.1 → v1.2.2,共 7 个提交
|
|
1331
|
+
|
|
1332
|
+
### 新功能
|
|
1333
|
+
|
|
1334
|
+
- TaskBlock 三层结构重设计:突出显示任务描述
|
|
1335
|
+
- `/compact {tips}` 支持用户引导摘要方向
|
|
1336
|
+
- Settings 新增 About 面板(版本信息 + Release Notes)
|
|
1337
|
+
|
|
1338
|
+
### 修复
|
|
1339
|
+
|
|
1340
|
+
- 发送消息无响应:agent lookup 失败不再被静默吞掉
|
|
1341
|
+
- review summary 现在走正常消息管道,agent 回复正确显示在聊天中
|
|
1342
|
+
|
|
1343
|
+
### 重构
|
|
1344
|
+
|
|
1345
|
+
- `current_time` 从 system prompt 移至 user message,优化 prefix cache 命中
|
|
1346
|
+
- 语法高亮语言注册集中到 highlight 模块
|
|
1347
|
+
|
|
1348
|
+
## v1.2.1
|
|
1349
|
+
|
|
1350
|
+
> 对比 v1.2.0 → v1.2.1,共 5 个提交
|
|
1351
|
+
|
|
1352
|
+
### 新功能
|
|
1353
|
+
|
|
1354
|
+
- 群聊 system prompt 重构:team_collaboration 前置,为 prefix caching 做准备
|
|
1355
|
+
- 协作文案精简:Agent 列表改为表格格式,协作规则从 5 条空泛规则精简为 4 条精准规则
|
|
1356
|
+
|
|
1357
|
+
### 修复
|
|
1358
|
+
|
|
1359
|
+
- Agent 切换时身份混乱:在 handoff、task、broadcast、supervisor 四个路径注入身份锚点(SOUL 摘要 + description)
|
|
1360
|
+
- 停止按钮无响应:所有 tool execute 函数支持 abortSignal(shell 用进程组终止,web-fetch/search 合并 signal)
|
|
1361
|
+
- 发送消息时不自动滚动到底部
|
|
1362
|
+
- abort 异常误触发 fallback 和健康记录
|
|
1363
|
+
|
|
1364
|
+
### 重构
|
|
1365
|
+
|
|
1366
|
+
- SyntaxHighlighter 统一从 highlight 模块导入
|
|
1367
|
+
|
|
1368
|
+
## v1.2.0
|
|
1369
|
+
|
|
1370
|
+
> 对比 v1.1.3 → v1.2.0,共 18 个提交
|
|
1371
|
+
|
|
1372
|
+
### ✨ 新功能
|
|
1373
|
+
|
|
1374
|
+
- **FilePreviewDrawer — 右侧抽屉文件预览**:点击 ToolCallCard 中的文件路径或 Markdown 行内代码路径,打开右侧抽屉预览文件内容。支持语法高亮+行号(代码)、Markdown 预览/源码切换、HTML iframe 预览(沙箱无脚本)。非文本文件和大文件(>512KB)有专用提示。Header 含「在文件夹中显示」按钮(FolderOpen)。完整 IPC 链(IPC_READ_FILE_CONTENT + IPC_SHOW_ITEM_IN_FOLDER)
|
|
1375
|
+
- **快捷键**:`Cmd+K` 触发 /compact,`Cmd+Shift+Backspace` 触发 /clear
|
|
1376
|
+
|
|
1377
|
+
### 🐛 修复
|
|
1378
|
+
|
|
1379
|
+
- **广播 ResponseCard 默认折叠**:广播消息不再自动展开,手动点击才展开
|
|
1380
|
+
- **fix-path ESM/CJS 互操作**:改用动态 import 解决模块兼容问题
|
|
1381
|
+
- **PATH 修复**:使用 fix-path 修复 Electron GUI 启动时的 PATH,shell-env 去掉 -i 避免交互式 shell 污染
|
|
1382
|
+
- **工具描述优化**:优化工具描述以提供更好的模型引导
|
|
1383
|
+
- **fallback 类型安全**:移除 `as any`,提供完整 LLMChannel 字段
|
|
1384
|
+
- **无效 channelId 引用**:移除 AgentConfig 类型中的无效 channelId 引用
|
|
1385
|
+
- **channel_config migration**:补充缺失的 agent_configs.channel_config 列迁移
|
|
1386
|
+
- **argSummary 截断**:修复 flex-grow 优先级导致 spacer 被压缩的问题
|
|
1387
|
+
- **stop 按钮不响应**:修复 stop 按钮和单聊 mention 泄露问题
|
|
1388
|
+
- **stream 滚动时机**:用 double rAF 等待 Collapse 布局完成后再滚动
|
|
1389
|
+
|
|
1390
|
+
### 🔧 重构
|
|
1391
|
+
|
|
1392
|
+
- **多通道智能回退升级**:fallback 从通道级升级为通道+模型级,语义全面重构
|
|
1393
|
+
- **shell-env 包替换**:用 shell-env 包替换自写的 shell-env.ts,支持 Oh My Zsh 干扰处理和 fallback shell
|
|
1394
|
+
- **availableAgents 过滤简化**:单聊模式返回空数组
|
|
1395
|
+
|
|
1396
|
+
---
|
|
1397
|
+
|
|
1398
|
+
## v1.1.3
|
|
1399
|
+
|
|
1400
|
+
> 对比 v1.1.2 → v1.1.3,共 14 个提交
|
|
1401
|
+
|
|
1402
|
+
### ✨ 新功能
|
|
1403
|
+
|
|
1404
|
+
- **writeFile 覆写保护(FileAccessTracker)**:Agent 覆写已有文件前必须先 readFile,防止盲目覆写。新建文件不受限制,同一会话内创建-覆写也正常通过。新增 `FileAccessTracker` 类追踪已知路径,readFile/writeFile 共享实例
|
|
1405
|
+
- **监督迭代次数可配置化**:全栈支持——DB schema、repository、设置面板 UI、i18n,supervisor 迭代次数不再硬编码
|
|
1406
|
+
|
|
1407
|
+
### 🐛 修复
|
|
1408
|
+
|
|
1409
|
+
- **HealthMonitor 成功请求不重置错误计数**:通道一旦触发 unhealthy 就永久不恢复。现每次成功请求重置错误计数,通道可自动恢复 healthy
|
|
1410
|
+
- **SwarmContext.waitTask 拒绝已完成任务**:移除 running 状态检查,已完成任务直接返回结果而非报错
|
|
1411
|
+
- **SwarmExecutor 广播使用包装消息**:广播现在使用真实用户消息而非 supervisor 包装后的内容,supervisor 迭代次数可配置
|
|
1412
|
+
- **SupervisorLoop 脆弱的中文正则 fallback**:移除对中文关键词的脆弱正则匹配,改用保守评估策略
|
|
1413
|
+
- **AgentExecutor fallback 消息丢失**:fallback 改为内存切换不持久化,修复消息丢失和 `as any` 类型安全问题
|
|
1414
|
+
|
|
1415
|
+
### 🔧 重构
|
|
1416
|
+
|
|
1417
|
+
- **协作协议升级**:`createSwarmPrompt` 从静态数据注入升级为协作协议模式
|
|
1418
|
+
- **工具描述统一英文**:所有内置工具 description 统一为英文
|
|
1419
|
+
- **协作提示词中文化**:协作提示词从英文切换为中文
|
|
1420
|
+
- **工作空间模板优化**:多 Agent 专家场景模板改进
|
|
1421
|
+
- **SOUL.md 模板精简**:去掉性格描述,聚焦边界和原则
|
|
1422
|
+
- **消息摘要器优化**:移除 analysis 思考链提示,改用 provider 原生 thinking
|
|
1423
|
+
|
|
1424
|
+
---
|
|
1425
|
+
|
|
1426
|
+
## v1.1.2
|
|
1427
|
+
|
|
1428
|
+
> 对比 v1.1.1 → v1.1.2
|
|
1429
|
+
|
|
1430
|
+
### 🐛 修复
|
|
1431
|
+
|
|
1432
|
+
- **compact 期间可发送消息(竞态风险)**:前端 `/compact` 执行期间未禁用输入框,后端也未拦截。现已前后端双重保护——前端设置 `sendingMap` 禁用输入,后端用 `compactingConversations` Set 拒绝新消息和重复 compact 请求
|
|
1433
|
+
- **ToolCallCard 流式场景 diff 不自动展开**:`writeFile`/`editFile` 工具卡片在流式完成(pending → success)后不走 remount,`defaultExpanded` 失效。改为受控模式 + `useEffect` 触发自动展开
|
|
1434
|
+
|
|
1435
|
+
---
|
|
1436
|
+
|
|
1437
|
+
## v1.1.1
|
|
1438
|
+
|
|
1439
|
+
> 对比 v1.1.0 → v1.1.1
|
|
1440
|
+
|
|
1441
|
+
### 🐛 修复
|
|
1442
|
+
|
|
1443
|
+
- **命令下拉方向键不响应**:修复 `filteredCommands` 过滤 + `activeIndex` 重置竞态,方向键/Tab 补全正常工作
|
|
1444
|
+
- **`/compact` 发送后无界面反馈**:新增 CompactBanner 组件,显示 loading spinner → 成功/失败状态
|
|
1445
|
+
- **斜杠命令显示为用户消息**:`/compact` 和 `/clear` 执行前先插入本地用户消息到消息列表
|
|
1446
|
+
- **`@` 弹窗选中后不关闭**:`suppressMentionRef` 阻止选中 agent 后 useEffect 重新检测 `@name` 并打开弹窗
|
|
1447
|
+
- **头像编辑点击崩溃 (React is not defined)**:`Select.tsx` 补 `import React`
|
|
1448
|
+
- **ScheduledTaskPanel TS2322**:`SelectProps` 补 `required` 属性
|
|
1449
|
+
|
|
1450
|
+
---
|
|
1451
|
+
|
|
1452
|
+
## v1.1.0
|
|
1453
|
+
|
|
1454
|
+
> 对比 v1.0.1 → v1.1.0,共 60 个提交
|
|
1455
|
+
|
|
1456
|
+
## ✨ 新功能
|
|
1457
|
+
|
|
1458
|
+
### /compact 命令 — 手动压缩对话上下文
|
|
1459
|
+
- 新增 `/compact` 命令,对当前对话所有历史消息强制生成 LLM 摘要
|
|
1460
|
+
- 摘要替换原始消息,大幅释放 context window,同时保留关键上下文
|
|
1461
|
+
- 运行时保护:Agent 执行中自动拒绝 compact,避免数据竞态
|
|
1462
|
+
- 命令下拉菜单自动补全,支持 `/clear` 和 `/compact`
|
|
1463
|
+
|
|
1464
|
+
### 健康监控系统
|
|
1465
|
+
- 新增 LLM 渠道健康监控,追踪延迟和错误率
|
|
1466
|
+
- ChatHeaderBar 重构,展示渠道健康状态
|
|
1467
|
+
|
|
1468
|
+
### 多 Agent 广播(Broadcast)
|
|
1469
|
+
- 全栈广播支持:前端 @all / 多人 @mention → 主进程路由 → Agent 并行响应
|
|
1470
|
+
- AgentRosterBar 展示群成员状态
|
|
1471
|
+
- Handoff Ribbon 展示任务交接
|
|
1472
|
+
|
|
1473
|
+
### Agent 多渠道 + Fallback 模型配置
|
|
1474
|
+
- 每个 Agent 可独立配置 LLM 渠道列表和 fallback 模型
|
|
1475
|
+
- 支持同一渠道不同模型作为 fallback
|
|
1476
|
+
- 设置面板重组到子目录,结构更清晰
|
|
1477
|
+
|
|
1478
|
+
### 流式工具调用实时展示
|
|
1479
|
+
- 处理 `tool-input-delta` 流式事件,实时更新工具调用参数
|
|
1480
|
+
- Tool call 生命周期:`startedAt / endedAt / durationMs`
|
|
1481
|
+
|
|
1482
|
+
### Welcome 页面重设计
|
|
1483
|
+
- Agent 卡片网格 + 群聊 CTA + 品牌英雄区
|
|
1484
|
+
|
|
1485
|
+
### 多平台打包
|
|
1486
|
+
- Mac ARM64 / x64 + Windows x64 打包脚本
|
|
1487
|
+
- Windows 支持 signAndEditExecutable 配置
|
|
1488
|
+
|
|
1489
|
+
## 🐛 修复
|
|
1490
|
+
|
|
1491
|
+
- **数据库原子性/竞态**:修复 allowedTools TypeError 和事务竞态问题
|
|
1492
|
+
- **channelConfig 双重 JSON 编码**:save/load 时 double stringify/parse
|
|
1493
|
+
- **AgentExecutor 类型安全**:消除 `handleXxxChunk` 的 `any` 类型,使用 `TextStreamPart` 精确类型
|
|
1494
|
+
- **UI 修复**:checkbox 勾号居中、发送后滚动到底部、切换对话重置草稿、contentKey 重挂载导致动画重播
|
|
1495
|
+
- **inline code 点击打开本地路径**
|
|
1496
|
+
- **Duration 组件防御 undefined/NaN**
|
|
1497
|
+
- **ModelSelect 加载抖动**
|
|
1498
|
+
- **update_team_memory 注册为 swarm tool**
|
|
1499
|
+
- **侧边栏创建菜单重命名 + 图标**
|
|
1500
|
+
- **应用图标**:installer / taskbar / tray 正确设置
|
|
1501
|
+
- **i18n**:提取 MessageInput 中 3 个硬编码中文字符串
|
|
1502
|
+
|
|
1503
|
+
## 🔧 重构
|
|
1504
|
+
|
|
1505
|
+
- **Select 组件**:设计系统统一 Select(portal dropdown + keyboard nav + ARIA)
|
|
1506
|
+
- **processStreamChunks 拆分**:独立 handler(text / reasoning / tool)
|
|
1507
|
+
- **流事件流重构**:在 fullStream 中处理 tool call 生命周期
|
|
1508
|
+
- **AgentPanel / AgentList / Workspace Tab / MemoryTab**:原生 button → Button 通用组件
|
|
1509
|
+
- **ToolCall 字段重命名**:`timestamp/startTime` → `startedAt/endedAt/durationMs`
|
|
1510
|
+
- **设置面板**:重组到 `settings/` 子目录
|
|
1511
|
+
|
|
1512
|
+
---
|
|
1513
|
+
|
|
1514
|
+
**完整提交列表**:`git log v1.0.1..v1.1.0 --oneline`
|