# MCode TUI 更新日志

这里记录 MCode
TUI 正式版中用户能直接感知的重要变化。收录范围以 TUI 用户影响为准，而不是以代码目录为准：

- TUI 本身的功能、交互、显示、兼容性、安装和更新变化；
- Runtime、Agent、Tool、Skill 等共享层中会改变 TUI 行为的变化。

仅内部重构、测试调整，或只影响其他产品界面且不改变 TUI 行为的变化不记录。

## 0.5.1 · 2026-09-21

### 体验改进

- 进一步减少长对话中重复的历史处理和 Token 估算。
- Provider 配置显示 Base URL，支持通过 `ctrl+e` 在连接测试前修改；测试失败时明确提示配置尚未保存。

### 问题修复

- 修复工具执行期间 `/btw` 侧会话创建失败的问题。
- 修复部分终端粘贴多行文本时逐行意外提交的问题。
- 修复重绘时输入法候选框偏离输入框，以及历史内容变化后残留旧行的问题。
- 使用自定义 Provider 或 API Key 的本地会话处理标题时，不再依赖托管账号登录。

## 0.5.0 · 2026-09-20

### 新增

- 交互模式支持 `mcode -m <provider/model>`，为当前会话指定模型。
- Provider 配置支持显式声明上下文和输出上限、图片输入能力，并通过 `--use` 在保存前测试模型。
- ACP 客户端可在原生命令之外，发现当前会话 Agent 和工作区中已启用的 Skill。
- 全屏对话记录支持点击和拖动滚动条；状态栏可选 `context-meter`，显示剩余上下文刻度。

### 体验改进

- 减少长对话中重复的历史处理和 Token 估算。

### 问题修复

- 改善重绘时的终端滚动历史保留，并确保内容收起后思考摘要和输入框仍然可见。
- 设置更新遇到格式错误的配置文件时会拒绝写入，保留原文件内容。
- 回复中的无效附件标记会被清理，即使没有有效附件也不会残留。

## 0.4.12 · 2026-09-18

### 体验改进

- 默认状态栏在尚无用量时显示上下文容量，获得用量后自动切换为剩余百分比，避免重复展示上下文信息。

### 问题修复

- 修复会话状态刷新触发重绘时清空终端滚动历史，或导致 Windows Terminal 跳到历史开头的问题。

## 0.4.11 · 2026-09-17

### 问题修复

- 修复 macOS 和 Linux 终端粘贴带转义空格的图片路径时添加失败的问题，兼容长文件名及同时包含反斜杠和空格的文件名。
- 修复登录或退出登录后，顶部登录状态未及时刷新的问题。

## 0.4.10 · 2026-09-17

### 体验改进

- 默认状态栏显示当前上下文总容量，例如 `Context 1M` 或 `Context 512K`；已自定义状态栏的用户可在 `/statusline` 中启用 `context-window`。

### 问题修复

- 新会话及默认模型更新会正确继承所选上下文容量。
- 压缩上下文期间提交的消息会进入等待队列，避免发送失败。
- 已完成的 Shell 命令结果不再在后续对话中重复显示。

## 0.4.9 · 2026-09-16

### 新增

- `mcode exec` 和 `mcode exec review` 支持通过 `--effort` 指定本次运行的思考强度；不支持的档位会在执行前报错，且不会改写会话已保存的强度。

### 修复

- 修复默认思考强度的保存与恢复，使新会话和实际请求使用的强度与模型选择器、状态栏显示一致。
- 模型选择尊重已配置的默认强度和固定档位，并保留关闭思考的设置。

## 0.4.8 · 2026-09-16

### 新增

- Explore 子代理支持使用前台 Bash 检查代码与 Git 状态；沙箱可用时使用只读文件系统策略。

### 改进

- 改善内容审核后的响应处理，支持按审核引导重新生成或返回适用的固定回复，并撤回被拦截的草稿。
- 改善超长思考内容预览时的响应速度，展开详情仍可查看完整内容。
- 运行状态、单轮结束摘要和 Goal 统一使用 `s`、`min`、`h` 显示耗时，超过一小时仍保留秒数。

### 修复

- 恢复支持思考的自定义 Provider 模型的思考开关，保留已有的实际默认行为。
- 修复自定义 Agent 与内置 Agent 同名时的启动失败，并在迁移时保留自定义配置。
- 改善 兼容接口的流式响应取消，避免中断后仍等待数据读取。
- 双击 Esc 或使用 `/edit` 编辑上一条消息时，恢复可操作的图片标签，支持删除、撤销和重新发送；有可读本地文件时可再次预览。
- 修复运行中追加图片或文件时的附件校验失败，并避免已接收的附件随草稿临时文件清理而丢失。

## 0.4.7 · 2026-09-15

### 新增

- 非交互执行支持通过 `mcode exec --prompt-mode tui|coding|work`
  选择终端、编程或通用工作指令，默认仍为终端模式。

### 改进

- 新添加的自定义 Provider 模型在支持时默认开启可切换的思考模式；保留已有模型设置和显式选择。
- 改善提供 OpenAI 风格模型列表的网关兼容性；连接测试使用模型配置的输出上限。

### 修复

- 改善 MCP 服务名与工具名兼容性、会话间连接隔离，并避免连接测试超时后继续发现工具。
- 修复子任务中后台 Shell 结果未回传的问题，并在子任务结束时清理剩余后台工作。
- 避免自定义 Provider 已开始输出可见内容后重试，导致响应被重复播放。
- 执行异常结束时保留运行中发送的消息，保持会话历史一致。

## 0.4.6 · 2026-09-14

### 改进

- 粘贴图片后可在输入框上方预览，并查看格式、尺寸、文件大小和文件名；光标移回图片标签时可再次查看。不支持显示图片的终端仍会显示图片信息。
- 按 Esc 收起图片预览，Enter 保持发送行为；预览失败不影响原图发送。

### 修复

- 修复 iTerm2 等终端在每条消息旁显示多余箭头、命令高亮条，以及重绘时可能干扰光标位置的问题。

## 0.4.5 · 2026-09-14

### 改进

- 联网搜索改用内置工具，无需等待额外的搜索 MCP 服务启动；用户自行配置的 MCP 服务继续正常使用。
- 移除安装包中不再需要的搜索服务组件。

## 0.4.3 · 2026-09-13

### 改进

- 支持在 `config.yaml` 为自定义 Provider 的模型声明
  `compat`，指定上游支持的消息角色、Token 参数和思考格式，改善网关转发场景的协议兼容性；需要显式配置后生效。

### 修复

- 修复会话重命名面板重复显示原标题、长标题被截断的问题；输入框保留完整标题，可移动光标滚动编辑。

## 0.4.2 · 2026-09-11

### 新增

- 自动加载会话主工作目录 `.mcp.json` 中的项目 MCP 服务，可在 `/mcp` 查看配置来源与连接状态。
- 在 `/model` 中通过 Tab / Shift+Tab 切换模型支持的上下文档位，包括 M3 的 512K /
  1M，并应用到当前会话、保存为默认值。
- 已提供 OpenAI
  Codex 登录入口的版本支持选择浏览器登录或设备码登录，可取消授权，并在验证码过期后重试。

### 改进

- 在 `/provider` 按 `r` 刷新第三方连接的模型列表，按 `e` 编辑 API Key、Base URL、模型或别名。
- 添加模型时可复用已有 Provider 连接，无需重新输入 API Key；需要多个账号时可明确添加另一连接。

### 修复

- 修复 OpenAI Responses 多个工具调用交错流式返回时，工具参数错配的问题。
- 尚未创建侧会话时，切换快捷键会明确提示先运行 `/btw`，避免误以为快捷键会创建侧会话。

## 0.4.1 · 2026-09-11

### 改进

- 在已有会话中切换模型时，提示可能无法复用提示词缓存并产生额外费用。
- Goal 展示具体等待原因，包括正在验证结果的状态。
- Goal 连续三轮未调用工具时自动暂停，避免持续空转。

### 修复

- 恢复终端专用系统提示词，能力指令随功能开关生效。
- 修复 Goal 被用户消息打断后停止续跑、延迟用量结算干扰执行，以及等待依赖时阻塞排队消息的问题。
- 快捷键提示跟随自定义绑定，正确展示别名和已禁用的按键。
- 后台任务详情显示完整命令和错误信息，长文本及多行内容自动换行。

## 0.4.0 · 2026-09-11

### 新增

- 支持通过 `/review` 或 `mcode exec review` 审查本地代码变更，审查结果附带文件位置。
- 支持以 `!` 执行 Shell 命令、以 `!!` 将结果保留在本地，并通过 Tab 补全命令和路径。
- 支持通过 `/statusline` 交互配置状态栏并即时生效，也可展示自定义命令输出。

### 改进

- 斜杠命令支持参数提示和连续补全；命令面板统一标题、边框与底部操作栏。
- 无界面任务支持结构化输出校验，并提供更清晰的进度和失败诊断。

### 修复

- 改善上下文压缩遇到超大输入时的恢复，并修复分叉会话时的历史一致性问题。
- 诊断报告在部分文件收集失败时保留其余可用内容。

## 0.3.11 · 2026-09-09

### 问题修复

- 修复长任务中登录凭据多次续期后，模型请求仍使用旧凭据而以 401 中断的问题。

## 0.3.10 · 2026-09-08

### 体验改进

- TUI 菜单和选择器中的选中项统一使用蓝色高亮。
- 命令菜单中的命令说明统一使用英文。

## 0.3.9 · 2026-09-07

### 问题修复

- `/btw` 和 `/side` 侧会话沿用主会话的当前权限模式，不再追加独立确认；Full
  access 下无需额外确认，其他模式仍按正常权限规则处理。
- 草稿恢复清理会跳过不存在的文件，避免反复无效删除耗尽安全预算、干扰后续操作。

## 0.3.8 · 2026-09-07

### 体验改进

- `/status`
  补齐运行版本、账号与套餐、指令文件来源、Default/Plan 切换状态，以及 5 小时和每周额度的剩余比例与重置倒计时。
- 状态面板采用紧凑布局，长路径自动换行；账号信息加载中或查询失败时，仍可查看本地配置。
- `/logout` 和 `mcode logout`
  会打印完整的浏览器登出链接，并打开当前地区和环境对应的登出页。开发机或无图形界面环境可复制链接手动打开，命令完成无需等待浏览器或页面结果。

### 问题修复

- 修复已登录账号自动上报错误报告时的鉴权问题。

## 0.3.7 · 2026-09-07

### 改进

- 长会话搜索和渲染更流畅：缓存搜索索引和稳定的 Markdown 内容，减少调整终端尺寸时的历史重绘，并更清晰地展示工具重试摘要。
- 默认状态栏在剩余上下文不超过 25% 时提示；显式配置 `context-remaining`
  可持续显示有效用量，窄屏优先保留关键状态。
- 终端通知支持按焦点状态和发送方式配置，改善 cmux 兼容性；输入框快捷键提示适配当前平台。

### 修复

- 改善切换账号、取消登录和离线启动时的共享登录恢复，处理并发凭据续期与延迟登出同步。
- 安装和修复指引保留选定的包名、版本和 registry，并说明 npm
  12 阻止安装脚本时如何恢复原生 SQLite 依赖。

## 0.3.6 · 2026-09-07

### 问题修复

- 与 MiniMax 桌面端共用数据目录时，官方模型地址改为在 TUI 内按当前环境解析：读取配置和首次初始化不再向共享配置文件写入新的官方地址，避免影响旧版桌面端；自定义（BYOK）服务地址行为不变。
- 遗留模型自动恢复扩展到编号模型别名和已下线的默认模型，并统一覆盖模型列表、Goal模型校验和登录检查：指向旧官方网关的模型选择依次解析为官方同名模型、配置默认模型和当前官方默认模型；共享默认模型、会话模型引用和迁移记录保持不变，仅用户主动选择模型才会写回配置。
- 修复 npm 12 下安装或更新导致 SQLite 原生模块损坏的问题：安装和更新会授权 MCode 与 `better-sqlite3`
  的安装脚本并保留可选原生依赖；原生模块加载失败时，启动会按安装来源给出对应的修复命令，启动早期错误也会如实报告而不是静默失败。

## 0.3.5 · 2026-09-07

### 问题修复

- 旧版自定义渠道模型的自动修复从启动时扩展到恢复会话和排队消息:遗留模型选择会切换为官方渠道同名模型,同名模型不可用时使用官方默认模型,并保存到对应会话或默认配置;模型列表不再显示遗留渠道入口。
- 响应失败或被停止后,尚未执行的排队消息会保留并显示暂停状态。运行 `/queue` 后按 `c`
  可从队首继续,也可以编辑、恢复或删除待发送消息;暂停期间发送新消息时,可选择先发送新消息再继续原队列,或先清空待发送消息,取消则保留草稿。重新打开会话会显示暂停队列,等待主动继续。
- TUI 内更新改用 MCode 自带的 Node 运行 npm,并在激活前用同一运行时校验新版本的原生模块,修复系统 Node 版本不同导致更新后无法启动的问题;校验失败时保持旧版本可用。
- macOS/Linux 安装器将所选 Node 解析为真实路径,统一用于安装、启动器和安装回执,重跑时按该运行时检查原生模块;同版本安装损坏时自动进入修复安装,无需手动清理安装目录。

## 0.3.4 · 2026-09-06

### 体验改进

- 启动时检测到当前选中的是旧版自定义渠道中的模型时，自动切换到官方渠道的同名模型。

### 问题修复

- `/login` 和 `/logout` 命令始终可用：`/login`
  在已登录时也会向服务端换取新凭据，瞬时刷新失败则保持已登录状态；`/logout` 在已登出时安全跳过。
- 登录凭据被服务端永久拒绝时，自动清除失效凭据并回退到设备授权流程重新登录，修复 `/login`
  反复报错的死循环；临时错误或配置错误不再误清除有效凭据。
- 服务或资源故障时如实报告失败原因，仅在确实需要登录时才提示重新登录。
- 国内账号登录切换到新的认证服务地址。
- 输入草稿恢复失败不再影响正常输入和其他操作。
- 会话历史清单出现重复时自动恢复，避免会话历史加载失败。

## 0.3.3 · 2026-09-05

### 体验改进

- 侧会话页脚明确提示切换快捷键将打开哪个视图；macOS Terminal.app 中显示实际支持的 `Ctrl+-` 快捷键。

### 问题修复

- 登录、退出及重复退出时，立即同步当前运行会话的凭据，不再等待后台凭据通知。
- 内容审核遇到凭据过期时，尝试恢复凭据并使用新凭据重试一次；恢复失败仍阻止请求并提示重新登录。

## 0.3.2 · 2026-09-04

### 新增功能

- 新增 `/btw [问题]` 和 `/side [问题]`，可在主任务继续运行时开启临时侧会话提问。按 `Ctrl+/`
  切换视图，使用 `/parent` 返回主视图，或在侧会话的空 Composer 中按 `Ctrl+C` 丢弃侧会话。
- 侧会话继承主会话已提交的上下文，并显示主任务当前状态；具备修改能力的工具在任何权限模式下都需明确确认后执行。
- 内网包支持全局参数 `--env test|staging|prod` 覆盖本次启动环境，`pre` 是 `staging`
  的别名。登录和更新重启后保留本次选择，不修改已保存配置或包的更新通道；公网包不提供该参数。

### 体验改进

- Markdown 标题、行内代码和链接的视觉区分更加清晰，16 色终端中的代码语法高亮更易阅读。

### 问题修复

- 修复侧会话中输入法候选窗的位置偏移。
- 排队提示现在跟随自定义快捷键同步更新，支持多组绑定和未绑定状态。
- Markdown 链接正确保留嵌套格式，并在链接结束后恢复周围正文样式。
- PR 和 MR 链接按 Session 实际工作目录记录，避免关联到其他 checkout。

## 0.3.1 · 2026-09-04

### 新增功能

- TUI 与 Desktop 统一使用 Shared OAuth Core 管理同一账号登录态；Runtime 与内嵌 `mcode-tools`
  只消费短期 Access Token lease，不读取 Refresh Token。
- 受管 `mcode-tools` launcher 启用前会校验 version lock、package identity、lease protocol 和 CLI
  SHA-256；任一校验失败都保持 fail-closed。
- 新增统一 `/tasks` 任务中心，集中展示 Agent
  Team 和 Runtime 后台任务；Composer 上方使用按严重程度排序的紧凑摘要，并可进一步查看子 Session
  Transcript。
- 新增可选的 `[V]` 机读状态栏和终端结果记录，便于自动化集成；普通状态栏也可展示当前分支对应的 GitHub
  PR 或 GitLab MR。
- 内置 Subagent 可在 Runtime 启动和恢复后保留显式启用的 Web Search 能力。

### 体验改进

- 内部 test / staging 构建支持显式全局参数 `--lane <name>`
  进行 OAuth 联调；prod 构建拒绝该参数，MCode 也不会从环境变量隐式读取 lane。
- Composer 会在提交前区分 Prompt、Command 和 Skill 输入，展示本地化空状态提示，并将无参数 slash 命令后跟随正文的整句按普通提示词发送。
- Provider 配置支持更完整的 models.dev 搜索、更清晰的模型浏览和更安全的 API Key 编辑。
- Queue 和 Steer 在暂停、取消、恢复和后续消息交付期间会持续与当前 Turn 对齐。
- 模型重试、Goal 完成和上下文压缩会展示更清晰的进度与实际 Provider token 用量；Plan
  Review 正文保持在 Transcript 中可滚动查看。
- 安装 MCode 后无需启动 TUI 即可使用受管 `mcode-tools` 命令，更新时会保持包自有 launcher 干净。

### 问题修复

- 非法 grep 正则现在会返回结构化、可操作的 Search 失败信息，并给出按字面匹配的建议，不再直接暴露 ripgrep 原始解析错误。
- 编辑 Custom
  Provider 后会作废旧的连接测试状态，URL、凭证、header 或 API 格式变更后不再展示过期结果。
- 修复 Plugin Manager 搜索结果中 Space 无法切换选中状态的问题，同时保留通过 `Shift+Space`
  输入字面搜索空格的能力。
- 修复暂停后的 Queue 拒绝后续输入、Steer 清理失败覆盖已启动 Turn，以及待生效 Steer 消息展示时机错乱的问题。
- 修复 Session 创建后 `/compact`
  联想偶发消失、模型重试进度不可见，以及 Goal 完成或安审错误指引不完整的问题。
- 修复新安装将包内私有 Node runtime 暴露到 `PATH` 的问题，并收紧 Windows
  shell 重定向场景下的删除命令检查。

## 0.2.7 · 2026-08-28

### 体验改进

- 由安装器管理的更新会先发布完整的版本化目录，再原子切换新 Session 使用的版本；正在运行的 Session 可以继续使用旧版本，不再阻塞激活。更新过程也会展示各阶段，并在包管理器仍在运行时持续输出心跳。
- 回复运行期间改用 `Alt+Enter` 将后续任务放入 Queue，`Tab` 只负责 Composer 补全；`Enter`
  继续用于 steer 当前 Turn。
- Welcome 版本亮点与 `/changelog`
  会按系统语言选择安装包内的英文或简体中文更新日志，中文文件缺失时稳定回退英文。
- TUI Session 改用独立的终端 Prompt Profile，不再加载 Desktop `user.md`
  内容，避免 Desktop 专属个人指令影响终端行为。

### 问题修复

- 修复 Regular 与 Fullscreen 在临时行收起、历史重新测量或交互区域变化时可能清空原生 scrollback、产生大段空白、重复历史行或重复 footer 帧的问题，并保持原有滚动位置。
- 修复 Goal 与后台任务活跃时 Permission、Questionnaire 等阻塞交互可能被挤出可见区域的问题；长历史全部展开时只格式化 viewport 与 overscan 范围。
- 修复用户输入的整行高亮、首条消息紧凑间距和终端语义标记不一致，导致首行偏移或样式丢失的问题。

## 0.2.6 · 2026-08-27

### 体验改进

- Bash 审批框和 Transcript 会统一提取并高亮真实命令，不再把 JSON 外壳与转义字符当作 Shell 脚本展示。
- Welcome 页的 `/checkin` 提示改为纳入启动 Tips 轮播，不再错放到版本变化区域。
- 后台任务会在 Composer 上方显示摘要和最多三条任务行，其余任务收为 `… N more`。

### 问题修复

- 修复剩余使用额度显示小数的问题，按实际积分单位统一显示为整数。
- 修复启动首帧保留旧 Shell 提示符的问题，进入 MCode 时会先刷新当前终端画面。

## 0.2.5 · 2026-08-27

### 新增功能

- `/sessions` 升级为 Session
  Center，可以在当前 workspace 或全部范围中搜索、切换、重命名、归档和恢复 Session，并支持
  `id:`、`path:`、`type:`、`status:`、`model:` 等筛选。
- 新增
  `/history`，可以浏览当前 Session 的输入历史，预览后创建分支、编辑历史输入、仅回退会话，或同时回退会话与文件；回复运行期间保持只读浏览。
- Welcome 会从当前版本更新记录中随机展示三条变化；新增
  `/changelog`，可通过只读面板查看安装包内的完整历史记录。
- Composer 上方新增任务面板，在不改写 Transcript 历史的前提下展示 Agent
  Team 和 Runtime 后台任务的实时状态。
- 新增 `/checkin`，可以在 TUI 中完成每日签到并查看连续签到、累计天数和奖励结果。
- `/model` 支持展示和选择第三方 Provider 提供的模型，并在需要时引导完成 Provider 配置。

### 体验改进

- `/context`、`/usage` 与 `/status`
  改为可关闭的当前交互面板，查看结束后不会在 Transcript 或 Session 历史中留下记录。
- 状态栏与用量面板可以展示当前 Session 的 Cache Read 比例，并在统计信息不足时避免显示误导性的比率。
- Queue 与 Steer 的状态、目标和恢复反馈更清晰；运行中可以选择已排队消息作为 Steer 目标，切换 Session、取消或恢复运行时会保持当前队列归属一致。
- 回复运行期间会隐藏并拒绝创建、切换、重命名、归档、分支、回退、编辑历史和压缩 Session 的命令；只读历史、Queue、Steer 与 Stop 等安全操作保持可用。
- 审批框与 Tool 执行摘要会按 Shell 语义统一高亮命令，长命令更容易阅读。
- Coding 与 Work 模式会保持 Markdown 链接的标签和目标为可点击格式，避免链接被错误渲染为行内代码。
- Regular 模式的流式更新、主题变化和 Surface 切换减少了完整重绘；长 Session 的 Inspector 只格式化当前 viewport 附近内容，降低持续输出和滚动时的额外开销。
- 正式包按启动路径拆分并延迟加载非必要资源，缩短版本查询、首帧显示和可提交消息前的等待时间。
- 长 Session 会对累计 ToolResult 统一压缩，并保留可恢复的原始输出，减少上下文占用和重复裁剪。
- TUI 会在本地有界保存经过脱敏的异常退出与生命周期故障信息，并在登录后自动上报；采集或上报失败不会阻塞启动、退出或正常交互。

### 问题修复

- 修复 Regular 模式在实时更新时重放完整 Transcript、破坏终端原生 scrollback 或造成历史内容跳动的问题。
- 修复退出、更新、外部编辑器返回和终端恢复过程中重复刷新或过早结束清理的问题。
- 修复终端或自动补全子进程发生 EOF 时错误终止 TUI，或无法保留首个停止原因的问题。
- 修复 Session 历史操作、Queue 消息与后台任务在异步返回、恢复或 Session 切换时可能投影到错误上下文的问题。
- 修复未显式指定模型的内置 Agent 未继承当前会话模型，以及 Goal
  verifier 等子任务的显式模型路由被 Agent 配置覆盖的问题。
- 修复旧版本遗留的 `main` / `mavis` Agent 数据可能导致 Runtime 启动失败的问题。
- 修复 `/fork` 在当前仓库无法安全创建隔离 worktree 时仍展示该选项、选择后才失败的问题。
- 修复 MiniMax Plugin Hook 收到错误的 Tool 名称或输入结构，导致 Hook 匹配和输入改写失效的问题。
- 修复内置 Matrix 工具访问受管服务时使用错误鉴权方式的问题。
- 修复安装或更新重复执行、下载中断或激活失败时可能留下不完整版本的问题，并支持从事务记录恢复。

## 0.2.4 · 2026-08-24

### 新增功能

- `mcode acp` 扩展 Session 控制面，支持 Session
  fork、模式与配置切换、队列/Steer、Goal 和 delegation，并在连接重绑、取消和权限/问卷交互中保持状态归属一致。
- 安装后的 Plugin Skills 可以直接通过 `/` 搜索和调用。
- 支持兼容 Plugin 格式的生命周期 Hooks，并补齐 Runtime 侧的兼容性处理。
- Goal 支持运行时预算、自动结算和独立验证；Ask 等待自动继续时会展示倒计时。
- `mcode exec` 补齐自动化场景的结构化事件与输出。
- 可以按 Ctrl+U 接续最近一个 Codex Session。

### 体验改进

- 启动阶段会展示 Server
  loading 状态，Runtime 就绪前不会提交消息；启动动画和功能页面会跟随当前 TUI 模式正确布局。
- Composer 空闲时会展示操作 Tips。
- 图片绝对路径粘贴后改为简短占位符，Agent
  Team 子任务行在状态更新时保持稳定，长时间 Bash 和后台任务的进度提示更清晰。
- 长会话上下文压缩会优先采用至少节省 70% 上下文的工具结果裁剪，减少低收益裁剪；后台任务提醒的去重与读取计数更稳定。

### 问题修复

- 限制 Tool Transcript 对单个 Tool
  input/detail 的保留上限，超限时保留首尾内容并显示原始字节数，避免大 payload 长时间占用内存。
- 修复旧 BYOK Provider、Session 和历史 Custom
  Agent 配置在 TUI 启动阶段干扰迁移或阻塞 Runtime 的问题。
- Permission
  Core 收口为确定性的权限策略 owner；命令级拒绝保持 fail-closed，Windows 可安全回收的字面删除命令按固定目标执行，复杂或无法证明的命令继续拒绝。
- 修复 npm-prefix 中 pending 更新无法继续的问题。
- 修复本地时区变化导致 Session canonical
  history 路径变化，以及 Host 失败、Fork 时的历史保留边界问题。
- 修复模型上下文变化后压缩失败、Compact checkpoint 丢失 Subagent 状态的问题。

## 0.2.3 · 2026-08-22

### 新增功能

- 新增
  `/export [path.md]`，可将当前 Session 的完整历史导出为 Markdown；支持 workspace 相对路径、冲突文件自动加后缀、凭据脱敏、0600 文件权限和可点击的本地文件链接。
- 模型选择器按 Provider 分组，支持实时搜索 Provider、模型名、显示名、variant 和
  `provider/model`，并支持退格、删除、左右移动光标及保留完整模型目录。

### 体验改进

- `/rename` 支持无参数打开 Session Manager 并预选当前 Session；Permission、Plan
  Review、Questionnaire 等交互统一了嵌套输入 focus、取消、失败反馈和恢复路径。
- Ctrl+C 退出确认改为“再次按键即退出”的 armed 状态，清空 Draft 后可用 Ctrl+Z 恢复，不再受固定 500ms 窗口限制。
- 优化了启动性能，非启动项依赖滞后启动

- MiniMax
  Code 产品知识 Skill 改为首层路由，携带可信 region 上下文并按 account、Agent、extension、workflow 等主题加载对应参考资料。

### 问题修复

- 修复 Turn 内发生压缩后历史收口仍引用过期身份的问题，避免长会话继续执行时状态对账错误。
- 修复 `tool_trim` 持久化改写用户消息导致 Turn 失败的问题，保留原始用户 payload。
- 修复 `mcode update` 在 npm 返回单元素版本数组时的解析问题。
- 修复运行结果、Agent Team 和 Runtime 事件在重连、重复或乱序到达时的结算一致性问题。

## 0.2.2 · 2026-08-21

### 新增功能

- 新增 `/rewind` 与
  `/edit`，可以从历史消息选择回退范围、预览变更并编辑后重新提交；`/fork`、附件和 Draft 恢复统一复用 Runtime 会话契约。

### 体验改进

- `/update` 在有多个 MCode
  session 运行时会显示实际阻塞数量，并持续等待旧进程安全退出后再激活，避免更新因固定超时停在中间状态。
- Slash
  Review 在上下文预算不足时自动切换到紧凑的 Git 自发现 Prompt，保留 Review 结果和恢复路径，长会话更不容易因输入过大失败。

### 问题修复

- 修复 Agent Team 从历史 Session 恢复后将已完成子任务继续累计耗时的问题。
- 修复终端以 EOF 结束时被误报为异常，以及多个 cleanup 步骤共享超时导致后续资源未关闭的问题。
- 修复旧版 turn lease 在进程重启后可能长期占用 Session、阻塞后续操作的问题。

## 0.2.1 · 2026-08-20

### 体验改进

- `/settings`
  会同时展示 Regular 与 Fullscreen 的实际布局差异；方向键只移动焦点，确认后才应用所选模式。

### 问题修复

- 修复 Fullscreen 输入框总是滞后一帧，必须再按一次键才显示上一个字符的问题。

## 0.2.0 · 2026-08-20

### 新增功能

- 重建终端渲染与输入基建，统一 regular/fullscreen、Markdown、Unicode、图片、键盘、鼠标、搜索和窗口 resize 行为。
- Permission 请求改为完整的审批卡片，清晰展示命令、文件、匹配规则和风险，并区分单次允许、会话允许与拒绝；审批会保持打开，直到 Runtime 确认结果。
- SSH 会话中的 `/copy` 支持通过终端协议写入本地剪贴板；任务完成通知也会按终端能力去重发送。
- 新增 `sessionTitle.enabled` 配置，可以关闭 Runtime 的 Session 标题模型请求。

### 体验改进

- 重新设计 `/context`、`/usage` 与
  `/status`，用容量、比例和状态层级展示上下文构成、Token 用量、模型、推理强度、Compaction 与运行状态。
- Runtime 会根据剩余上下文动态调整输出预算和 Compact 水位，长会话不再因为模型的完整输出上限过早压缩，同时保留安全的单轮输出空间。
- 长任务存在未完成 Todo 时，Agent 会按 assistant
  iteration 节奏重新检查任务进度，减少长时间执行后遗漏剩余步骤。
- Project 级 Skill 会正确进入 TUI Slash Command 补全；MCP
  Server 冷启动期间保持启动中状态，不再因首次查询超时误报失败。
- fullscreen 中滚动、搜索、选择和 tail
  follow 由同一 viewport 管理；regular 与 fullscreen 切换不会重建 Runtime，也不会丢失 Session、Draft、附件或阻塞交互。

### 问题修复

- 修复 fullscreen 中 Slash
  Command 补全或功能列表展开时输入框被裁掉、退出后需要额外按键才恢复的问题。
- 修复 fullscreen AskUser 覆盖最近消息，以及 namespaced AskUser
  Tool 完成态泄漏到 Transcript 的问题。
- 修复流式返回时切换 Tool details 导致 viewport 闪回顶部；Windows 图片粘贴改为优先提示
  `Alt+V`，并以`Ctrl+Z` 提供不与 Windows Terminal 缩放冲突的 Editor/Draft undo。
- 修复 PowerShell 中通过 `Ctrl+G` 编辑 Draft 后，外部编辑器退出但 Composer 无法继续输入的问题。
- 修复 regular 模式下 Runtime 状态刷新会打断 Slash Command 候选，导致第一次 `/`
  不显示、后续输入与候选慢一拍的问题。
- 修复 regular 模式下长 AskUser、Queue 和 Plan
  viewer 被直接裁掉，导致问题、当前选项或文档内容不可见的问题。
- 将 Settings、AskUser 等交互对 Composer 的替换逻辑统一为 Pi 的挂载状态语义，避免切换空帧中输入框闪现但无法输入，或交互结束后旧内容残留。
- 修复后台 Subagent 完成后复用上一条 Query 的折叠状态和计时，以及 `/review`
  排队消息来源与气泡无法正确对账的问题。
- 修复开启加速索引时，已经失效的 Workspace 阻断当前 Session 继续发送的问题。
- 修复 Windows 本地文件工具的 Read-Before-Write 路径身份不一致，以及 PowerShell 将 `mcode.ps1`
  解析为启动器时被安装器误判失败的问题。
- 修复 `/update` 在 npm prefix 内原地覆盖导致 native
  module 锁冲突的问题，更新改为隔离 staging 后原子切换。

## 0.1.6 · 2026-08-19

### 问题修复

- 修复 Node.js
  26 环境下图片生成、图片搜索与下载、反向搜图、视频和音频等 Matrix 长耗时工具调用失败并提示
  `fetch failed` 的问题。

## 0.1.5 · 2026-08-19

### 新增功能

- 新增
  `/retry`，可在 Provider 或网络故障后重新发送保留的消息；恢复历史 Session 时也能继续未完成的请求，Goal 被阻塞后可以直接恢复。
- 状态栏支持按配置选择和排列目录、Session、Git、模型、推理强度、上下文等信息，并可显示当前运行状态。

### 体验改进

- Provider、网络、鉴权和限流错误会给出更清晰的原因与下一步操作；自动重试期间会展示重试进度，失败上下文不会因切换或恢复 Session 丢失。
- MCP Server 冷启动期间保持启动中状态，不再因首次状态查询超时而误报失败。
- 模型与推理强度会在首轮请求前正确生效；BYOK 连通性测试和 Codex OAuth 代理行为更准确。
- 安装器优先安全复用兼容的系统 Node.js，保留已有 PATH，并支持显式选择经过校验的中国大陆下载镜像。

### 问题修复

- 修复 PowerShell 和 Windows Terminal 中拖选消息并复制时输入框 Draft 被清空的问题。
- 修复 `/quit` 被恢复为输入框 Draft，以及恢复 Session 时误触发 Queue 发送的问题。
- 修复图片粘贴后消息重复显示、Goal 内联附件无法启动和历史分页后执行耗时丢失的问题。
- 修复 Windows launcher 路径转义与部分安装、更新场景的兼容性问题。

## 0.1.4 · 2026-08-18

### 新增功能

- 新增 `/goal`，可以在 TUI 中创建、查看和管理当前 Session
  Goal，并查看目标状态、进度和耗时；Goal 语义与 Desktop 和 Runtime 保持一致。
- 新增 Plugin 管理：`mcode plugin` 和交互式 Plugin
  manager 支持浏览官方与本地来源、安装、启用、停用和移除 Plugin。
- 完善 `/provider` 与 `/model`：可以查看和测试 Provider，在 MiniMax OAuth 与 API
  Key 之间切换，并选择模型和推理强度；当前模型与推理档位会同步显示在状态栏和 `/status` 中。
- 完善 ACP 与持续协作：支持持久化 Session 的列举、加载、恢复和关闭；运行中可以 Queue 后续消息并 steer 当前 Draft 或下一条排队消息，`/new`
  不再破坏 Session 的对应关系。

### 体验改进

- 鼠标滚动、`PgUp` /
  `PgDn`、拖拽选区和复制体验统一优化；选区会随内容滚动保持定位，并支持拖拽选区自动滚动，非 TTY 和兼容终端继续使用终端原生 scrollback。
- 新增 `/context` 与 `/usage` 的可视化信息，展示上下文窗口、Token 构成、会话用量和 Compaction 状态。
- 工具调用、Skill 补全和 Queue 消息展示更及时；生成文件回执改为清晰的可点击路径，点击即可打开对应文件或目录。
- Permission、Questionnaire 和 Compaction 请求统一按 Runtime 合同处理，减少等待中的请求状态丢失或重复展示。

### 问题修复

- 修复拖拽选区滚动时的复制错位，以及 Queue 消息延迟上屏的问题。
- 修复启用 `mcode-tools` 开关后内置 Matrix 工具被错误裁剪的问题。
- 修复 Windows 与 WSL 图片粘贴，以及 TUI 生成文件路径展示中的兼容性问题。

## 0.1.3 · 2026-08-17

### 新增功能

- 通过 ACP 接入编辑器时，可以在重启后重新打开或继续之前的 Session，并修复 `/new`
  可能导致的 Session 错乱。
- `mcode exec` 的 JSON 输出会携带实际使用的模型信息，方便统计用量。
- 新增 `/copy`
  命令，将最近一条 Assistant 回复复制到系统剪贴板并保留 Markdown 格式；没有可复制回复或剪贴板不可用时，会给出明确提示和手动复制路径。

### 体验改进

- Session 标题更准确，工具调用和 Skill 补全也更清晰。
- macOS 滚动快捷键改为更符合实际键盘的 `Fn` 组合键提示。

### 问题修复

- 使用 MiniMax API Key 时，未登录状态也能正常开始对话。
- 修复交付文件路径后粘连额外文本，以及输入框光标和边框频繁闪烁的问题。
- 改进 WSL 登录和 Windows PowerShell 安装器的兼容性。
