本项目变更记录遵循以下约定:
- 参考 Keep a Changelog 结构
- 版本号遵循 Semantic Versioning(SemVer)
- 每次更新优先记录到
Unreleased,发布时再归档到具体版本
- 暂无(下一个版本迭代中)
- 暂无(下一个版本迭代中)
- 新增上下文使用进度条与百分比文本,支持点击触发压缩并提示估算占比。
- 新增 Token 估算与模型上下文窗口映射工具。
- 新增 Token 估算与模型上下文映射单元测试用例。
- 模型 registry 更新时同步刷新上下文占用显示。
- 会话仅包含系统消息时隐藏上下文占用条,避免误触。
- 序列化消息时剔除
estimatedTokens缓存字段,避免持久化噪音。
- 流式追加消息时失效 Token 缓存,避免上下文占用低估。
- 新增发送快捷键设置,支持在
Enter与⌘+Enter/Ctrl+Enter之间切换,适配不同用户习惯。 - 优化 IME 输入法组合状态检测,避免中文输入时误触发发送。
- 新增 Vitest 测试基础与
npm test脚本,补齐最小单测运行能力。 - 新增自动重连与模型归一化相关测试用例,覆盖核心逻辑。
- 自动重连模式归一化逻辑统一为单一来源,避免重复实现。
- 模型选项归一化逻辑增强,兼容非字符串 payload 并统一入口。
- Agent 离线时输入区禁用,提示需先连接后输入。
- 重连成功后刷新输入框状态,避免连接恢复后仍显示旧态。
- 新增“对话完成提示音”能力:在会话
task-finish后自动播放提醒。 - 新增顶部铃声选择器,支持多铃声切换与“关闭铃声”选项。
- 新增项目内铃声素材目录
public/audio/bell,用于前端静态资源播放。
- 铃声素材文件名统一为简洁命名(如
bell-happy.wav、chime-quick.wav),便于维护与引用。 - 优化应用图标视觉体积,调整到更接近系统图标的 Dock 显示比例。
- 更新版本号到
v0.3.6,同步前端、Rust、Tauri 配置与项目文档版本信息。
- 新增 Agent 思考模式开关,支持在会话运行时一键开启或关闭。
- 新增创建 Agent 时的工作目录文件夹选择能力,减少手动输入路径错误。
- 思考模式交互优化为“首次允许切换,若模型拒绝则标记为不支持并禁用后续点击”。
- 思考开关在不支持场景显示为
思考:不支持,并提供明确提示信息。 - 更新版本号到
v0.3.5,同步前端、Rust、Tauri 配置与项目文档版本信息。
- 修复思考开关切换过程中的文字闪动问题,提升按钮状态稳定性。
- 新增“文件变更”面板,支持按 Agent 查看工作区 Git 变更文件列表。
- 新增单文件 Diff 弹窗与 +/- 行高亮展示,支持从文件列表点击查看具体 diff。
- 工具调用与文件变更面板支持关闭后通过顶部按钮再次打开。
- 文件 Diff 弹窗标题改为单行
文件 <path> Diff,并增大弹窗宽度以提升可读性。 - 文件变更刷新体验优化:增加最后刷新时间,并在 Agent 忙碌时禁用刷新按钮。
- 更新版本号到
v0.3.4,同步前端、Rust、Tauri 配置与项目文档版本信息。
- 修复文件 Diff 弹窗宽度未按预期生效的问题。
- 修复刷新文件变更时 Agent 不存在场景的静默失败问题,改为输出 warning 便于排查。
- 新增开发环境清理脚本
scripts/clean-dev.sh,用于启动前清理 1420 端口监听与当前项目调试残留进程。
tauri:dev启动链路调整为先执行npm run clean再启动 Tauri,减少开发阶段端口冲突。- Agent 进程销毁链路统一,
disconnect/switch与应用退出事件都复用同一套回收逻辑。 - 更新版本号到
v0.3.3,同步前端、Rust、Tauri 配置与项目文档版本信息。
- 修复开发阶段关闭后再次运行偶发提示
1420端口占用的问题。 - 修复应用退出时当前实例 Agent 子进程可能残留的问题。
- 新增应用图标资源(基于
src-tauri/icons/Subject.png生成),补齐 Tauri 打包所需图标集。 - README 新增 Icon 标识与图标展示,便于快速识别当前应用图标。
- 更新版本号到
v0.3.2,同步前端、Rust、Tauri 配置与项目文档版本信息。
- 修复 Agent 列表删除按钮在桌面端偶发无响应的问题,增强点击命中与删除流程稳定性。
- 修复左下角“清除当前 Agent 会话”按钮点击无效的问题,恢复会话与磁盘历史清理能力。
- 更新版本号到
v0.3.1,同步前端、Rust、Tauri 配置与项目文档版本信息。
- 修复窗口缩放时主界面布局不自适应导致内容显示不全的问题,增强中小尺寸窗口可用性。
- 更新版本号到
v0.3.0,同步前端、Rust、Tauri 配置与项目文档版本信息。
- 优化浅色主题下的弹窗遮罩层对比度,统一通过主题变量控制遮罩透明度。
- 优化 Markdown 链接在浅色主题下的颜色对比度,提高可读性。
- 更新版本号到
v0.2.2,同步前端、Rust 与 Tauri 配置版本。
- 新增应用亮/暗色主题功能,支持在界面中切换主题模式。
- 更新版本号到
v0.2.1,同步前端、Rust 与 Tauri 配置版本。
- 顶部工具栏新增模型选择器,支持显示当前模型、展开模型列表、点击切换模型。
- 新增 ACP 模型元数据事件同步:后端解析
session/new/session/load返回的_meta.models并推送到前端。 - 新增 iFlow 历史会话导入能力:
- 后端读取
~/.iflow/projects/<workspace-key>/session-*.jsonl; - 前端在 Agent 视图中合并展示历史会话列表,并按需加载历史消息正文。
- 后端读取
- 对话区新增快捷交互按钮:
- 助手最后一条消息下显示“继续 / 好的 / 重试上一问”;
- 用户最后一条消息下显示“重试发送”。
- Agent 列表新增“编辑名称”按钮,支持直接重命名 Agent(保持工作路径不变)。
- 消息内容新增基础 Markdown 渲染能力,支持标题、列表、引用、行内代码、代码块、链接与图片展示。
- 新增 HTML Artifact 预览能力:
- 自动从消息/工具输出中识别
.html/.htm路径并显示“预览 HTML”按钮; - 点击后通过弹窗内
iframe直接预览生成的 HTML 文件。
- 自动从消息/工具输出中识别
- 左侧底部新增版本号展示(
vX.Y.Z)。 - 新增“清除当前 Agent 会话”能力:可删除当前 Agent 对应路径下的 iFlow 历史会话文件。
- 模型切换链路改为“ACP 优先 + 重启兜底”:
- 优先调用
session/set_model,减少切换中断; - ACP 不可用时自动回退到重启进程并通过
--model切换。
- 优先调用
- 模型列表获取兼容增强:后端支持从
iflow.js/entry.js解析模型常量。 - 工具调用面板改为按
toolCallId增量合并,不再每条事件全量覆盖。 - 输入区发送态交互调整为“发送按钮切换停止按钮”:
- 回复进行中可点击停止,不必等待自然返回;
- 前端点击后立即结束等待动画,并异步发送 ACP
session/cancel请求。
- 新增后端受限文件读取命令
read_html_artifact:- 仅允许读取当前 Agent 工作目录内的
.html/.htm文件; - 增加路径越界校验与文件大小限制,避免任意文件读取。
- 仅允许读取当前 Agent 工作目录内的
- HTML Artifact 预览性能优化:
- 预热预览容器,降低首次打开卡顿感;
- 引入基于
Agent + 文件路径的内存缓存,重复打开同一文件更快; - 后端 HTML 读取链路改为
tokio::fs异步 I/O,降低阻塞风险。
- ACP 消息发送链路支持会话绑定:
send_message支持传入sessionId;- listener 在发送 prompt 前会根据目标
sessionId执行session/load,失败时回退session/new(sessionId=...)。
- 会话存储结构升级为“轻量索引”:
- Session 新增
acpSessionId/source; source=iflow-log的消息正文不再写入本地快照,避免与 iFlow 日志重复存储。
- Session 新增
- 修复工具调用在状态变为
completed后内容闪烁/丢失的问题(例如web_search查询内容被覆盖)。 - 修复工具调用面板只能显示最后一条的问题,改为支持同一轮显示多条调用记录。
- 修复输入
/后使用键盘上下键移动时,命令列表未自动滚动到高亮项的问题。 - 修复 Markdown 管道表格(
| a | b |)未渲染的问题,现已支持表格展示与横向滚动。 - 修复 Markdown 分割线(
---)后标题与分割线间距过小的问题,提升可读性。 - 修复 iFlow 历史会话重复与正文丢失问题:
- 会话快照持久化补充
acpSessionId/source,避免重启后关联信息丢失; - 读取旧快照时自动识别
iflowlog-<agent>-session-*历史会话并回填; - 历史同步阶段增加按
acpSessionId/id去重,避免重复导入同一会话。
- 会话快照持久化补充
- 修复历史会话列表消息计数长期显示
0的问题:优先展示 iFlow 历史返回的messageCount,加载正文后自动更新为实际条数。 - 修复历史内容渲染污染问题:
- 后端历史解析只提取文本条目,过滤
tool_use/tool_result等中间日志; - 前端识别
<Think>...</Think>并转换为“思考”消息,避免标签原样显示与 Markdown 被打断。
- 后端历史解析只提取文本条目,过滤
- 修复 HTML 预览“持续加载不结束/白屏”问题:
- 增加超时兜底并显示错误,不再无限等待;
- 路径提取增强(支持 JSON 片段、绝对路径、中文文件名与中文标点清洗);
- 优先使用
srcdoc展示,避免 URL 覆盖导致的空白。
- 修复 iFlow 历史会话
acpSessionId被运行时会话覆盖导致“卡在正在加载历史内容”的问题:iflow-log会话不再被 ACP 绑定覆盖;- 已污染会话可自动回退到
session-...文件 ID。
- 修复会话删除仅前端隐藏的问题:删除单条会话与批量清理当前 Agent 会话都会真实删除磁盘
session-*.jsonl。
- 初始版本:Tauri + TypeScript 的 iFlow Workspace 基础能力。