Cordy Desktop

更新日志·预览版

本页同步产品仓库中的更新日志,不代表下载版本或公开发布记录。 阅读产品文档。

v0.4.0最新源码条目2026-09-12

这一版讲的是终端里的键盘与鼠标。Cordy 的终端现在同时讲 Windows CLI 依赖的两套键盘 协议,于是这些 CLI 在自己页脚里宣传的换行键——Claude Code 的 Shift+Enter、Codex 的 Shift+Enter 与 Ctrl+J——真的换行,而不是把消息发出去。请求鼠标的 TUI 重新拿回鼠标, 选文本改用 Shift+拖拽。启动之后新开的终端标签页,也不会再偶尔一上来就丢掉自己会话 最开头的那几个字节。围绕这些还有:CPU / 内存小标签重新带回一块紧凑总览,工具栏的 编辑器按钮一次点击就打开编辑器,应用升到 Electron 42.11.3 以带上当前的 Chromium 安全补丁。

新增

  • Windows CLI 依赖的两套键盘协议都开了——于是 Shift+Enter 就是换行。 Cordy 的 终端现在同时启用 win32-input-mode(Windows Terminal 一直在跑的那套,读 console 输入记录的 CLI 用它)与 kitty 键盘协议(读 VT 字节的 CLI 用它)。两个都不开时, 终端根本无法表达 Enter 上的修饰键:Shift+Enter 与 Ctrl+Enter 发出去都是一个 裸回车——与普通 Enter 逐字节相同——所以 Cordy 里的每个 CLI 都把它们读成「提交」。 现在每个 CLI 拿到的是它自己文档里承诺的那个键:Codex 里 Shift+Enter 与 Ctrl+J 插入换行,Claude Code 里 Shift+Enter 插入换行。Cordy 只忠实编码按键、不自作主张 做任何重映射——哪个键是什么意思仍由 CLI 决定——而换行这件事是拿真实的 Codex CLI 验的,不是模拟的。两套协议在程序主动索要之前都是惰性的,所以跑普通 shell 的 终端逐字节不变。中文输入法组词不受影响:一道按键释放护栏把输入法自己的内部按键 事件挡在 wire 之外。随应用捆绑的 Windows Terminal ConPTY 匹配对升到 1.25.2603.03002——与 VS Code 发给它自己用户的是同一对,出自 preview 线而非 Windows Terminal 的稳定发布——因为只有这条线会把按键再编码成 kitty 协议的形式 交给索要了它的 CLI。有一条后果值得知道:在一个开启了 kitty 协议的 CLI 里,Ctrl+C 以该协议的按键事件抵达,而不是原始的中断字节,由该 CLI 自己处理——这是每一台实现 该协议的终端的规定行为,Windows Terminal、kitty、ghostty 都一样。没有 CLI 索要的 地方,Ctrl+C 仍然是中断字节,与从前一致。
  • 紧凑的性能总览回到了小标签上。 点击工具栏的 CPU / 内存小标签重新弹出一块小 面板:2m / 10m / 1h 窗口的实时内存与 CPU 图、按内存排前六的应用进程(每行标明它 承载的是什么)、一行把 Rust runtime + shell + agent 合计起来的 Workload,以及选择 小标签本身显示哪些数字的按钮。View details 打开 0.3.0 引入的完整监控面板, 后者一字未改——总览是旧弹层里唯一值得留下的那部分。
  • 工具栏的编辑器按钮,一次点击就打开编辑器。 紧凑顶栏里它此前是一个只会展开 菜单的控件,于是启动编辑器永远要点两下。现在它一分为二:左半边立即用默认编辑器 打开当前工作区,并显示该编辑器自己的图标(tooltip 里写出它的名字);右侧的箭头 展开列表换一个。从列表里选中的那个会成为新的默认。

修复

  • 启动之后新开的终端标签页,可能丢掉自己会话最开头的那几个字节。 新标签页可能 从来没收到过会话已经发出的那些一次性终端设置——焦点上报,以及 上面那套键盘协议——因为那些字节广播出去时,该 pane 还在订阅途中。普通输出能熬过 这个窗口(终端会自行重绘),但一次性的模式不会重来,于是那一个标签页无声地退回 旧编码,界面上没有任何可见差别。现在每个新终端都会与 runtime 自己的快照对账一次, 与重新挂接的终端走的是同一条路,标签页来得及监听之前产生的东西不再丢失。
  • 退出确认填满它自己的窗口。 Cordy 收进托盘之后,退出确认会作为一个独立窗口 打开——但它画的是与应用内一样的悬浮描边卡片,于是看起来就是一个小方框对话框又被 框在另一个小窗口里。现在它填满自己拥有的那个窗口。
  • 从 CSV 导入密码时,选择器停在你的下载目录。 密码保险箱的 Import from CSV 文件选择器此前开在系统决定的位置;现在它开在 Cordy 配置的下载目录——密码管理器 导出的文件真正落地的地方。

变更

  • 请求鼠标的 TUI 现在真的拿到鼠标。 0.3.0 让普通拖拽在 TUI 开着鼠标上报时也能 选中文本,代价是应用永远拿不到鼠标:可点、可 hover 的 TUI——比如 Claude Code 的会话内 agent 列表——只有按住 Alt 才收得到点击,hover 更是完全收不到。这笔交易 已经翻转。点击、拖拽与 hover 都交给应用,在那里选文本改用 Shift+拖拽——其他 终端通用的手势,也正是 Claude Code 自己页脚告诉你的那个——再用 Ctrl+C 或 Ctrl+Shift+C 复制。macOS 上 Option 同样能强制选区(代价是该平台失去 Alt 列选; Windows 与 Linux 两样都保)。无选区的 Ctrl+C 仍然是中断,未变。
  • Electron 42.11.3,以及一次依赖刷新。 42.11 线带的是当前的 Chromium 安全修复 (Chromium 148、Node 24.19)——这对 Cordy 有实际意义,因为它的浏览器 pane 会加载 任意网页。同批还有:xterm 6.1 beta.304(Cordy 的输入法补丁原样重做、编辑面一字 未改)、React 19.3、tiptap 3.31,以及打包用的 electron-builder 26.16。
  • WebSQL 不再列为可清除的站点存储。 Chromium 已经移除 WebSQL,所以 设置 → Site data 里那个按站点清除的桶其实早就不存在了。按站点清除覆盖的其余部分—— cookies、local storage、IndexedDB、各类缓存、service worker——一切照旧。

已知限制

  • Windows 安装包未做代码签名。 首次运行时 SmartScreen 会弹「无法识别的应用」 拦截页,选择「更多信息 → 仍要运行」即可。证书是计划中的采购项,自签名解决不了 这个问题。
  • 监控面板的 Workload 半边仅限 Windows。 在 macOS 与 Linux 上它会如实说明, 只显示 App 半边;紧凑总览里的 Workload 一行遵循同一规则,在那两个平台上直接不 显示。
v0.3.02026-09-04

第一个附带安装包的版本:GitHub Release 附有 Windows 安装包 cordy-Setup-0.3.0.exe(macOS 与 Linux 包由同一条流水线构建,但实际使用少得多)。 打包之外,这是一个「日常主力」版本:导入仓库与新建工作区各只需一次按键;预设可以 直接在你所在的标签页里分屏启动 agent;右栏的 Files 与 Git 面板不再在 agent 写文件时 拖住整个应用;性能小标签打开的是一块真正的监控面板,终于能说清 Cordy 的内存到底被 哪一半占着。

新增

  • 用键盘导入仓库。 Ctrl+Shift+O 直接打开目录选择器——与侧边栏 Add repository 按钮跑的是同一条导入路径(首启页面上也一样),命令面板里也有这一项。 拖入目录、点按钮、按快捷键三条路的成败都从同一个地方反馈,被拒绝的导入不会静默。
  • Create Workspace 一步到位。 所有「新建工作区」入口现在都立即创建一个 project root 工作区;那个让你在 Project root 与 Worktree 之间二选一的对话框没有了,因为 Cordy 的工作区今天就跑在项目根上。已有的 worktree 工作区照常打开并显示其 worktree 路径,去掉的只是创建流程里的那个分叉。
  • 右键预设,分屏启动 agent。 终端预设栏的右键菜单新增 Split right with …Split down with …:当前标签页分屏,该预设的 agent 在新 pane 里启动,带着与 标签页启动同样的受监督状态。命令面板提供同样的 Split with 行。关闭一个 仍有 agent 或正在跑命令的 pane 会先询问,规则与关闭标签页完全一致。
  • 一块能回答「是哪一半」的性能监控面板。 顶栏的 CPU / 内存小标签现在打开的是 一个全尺寸、只读的监控对话框,而不是那个局促的弹层。它把 Cordy 分成两半,每一列 都标明量的名称:App(Chromium——GPU、主窗口、浏览器页面、utility 进程,每行带 pid 与它承载的界面)与 Workload(Rust runtime 和每个终端会话的进程树——shell、 控制台宿主、编码 agent——按工作区与会话分组),外加一行可与任务管理器「提交大小」 对账的合计。每进程的私有提交、工作集与 CPU%、主机内存、四个内部预算(常驻工作区、 WebGL 上下文、停泊的 runtime、保温的浏览器页面)以及最近二十次进程消亡都在同一屏。 Cordy 读不到的数显示为 ,绝不显示成 0。这里没有任何 kill 或驱逐动作。
  • 选择默认 shell。 设置新增 Shell 标签页,列出本机实际安装的 shell—— PowerShell 7、Windows PowerShell、命令提示符、Git Bash 与每个 WSL 发行版——外加 一行自定义命令,新终端按你的选择打开。Cordy 用 Windows Terminal 的方式发现它们, 并把绝对路径交给终端,所以 PATH 坏掉的机器(正是它让打包版的终端一启动就死) 不再是问题。
  • Windows 安装包,三个通道。 pnpm dist:win:prod 产出附在 Release 上的安装包; devtest 通道各有自己的产品名、开始菜单项与数据目录,可以并排安装,预览版 永远碰不到你日常依赖的那份数据。
  • 凡是列文件的地方,都有了文件图标。 文件树、工作区文件标签页、搜索结果、 Changes 列表、命令面板的 Go-to-File 行,以及 Graph 面板的提交文件行,现在都按 类型显示图标,而不再是清一色的通用纸片。图标编码的是类别而非品牌——源码、 配置、包清单、锁文件、文档、图媒、密钥、压缩包、数据库——所以一行扫一眼就能 读出来,也不会糊成一墙彩色。.d.ts.test.ts.tar.gz 会被识别为它们本来的 复合类型;.env*Dockerfile*Makefile* 的各种变体都归到各自的族图标。 设置 → Appearance 新增 File icons 一行用来选图标主题,带实时预览: Lucide(新默认)或 Minimal(保留 Cordy 从前那种通用外观)。图标本身 刻意保持中性色——Git 状态仍然只给文件名和状态字母着色,改动过的文件不会被 编码两遍。
  • 多了一套彩色图标主题。 设置 → Appearance 的 File icons 一行新增第三个 选项 Material——来自 Material Icon Theme 图标集(MIT)的品牌标,于是 TypeScript、Rust、Python、Docker、Git、npm 这些各自长回自己的样子。常见文件夹 也有了专属图标,并区分展开与折叠:srcnode_modulesdocstestsscriptsdistassetscomponentshooks.github.vscode 等等。 彩色集没覆盖到的类型会回落到 Lucide 字形而不是留空,所以不会有哪一行没图标。 图标文件只在真正画到时才去取,选这套主题不会拖慢启动。浅色主题下有少数黄色系 的标(JavaScript、数据库、锁文件)确实会显得发虚——这也是默认仍为 Lucide 的原因。
  • 文件标签页也能右键了。 工作区标签栏里的编辑器 / diff / commit-diff 标签页, 终于拥有了终端标签页早就有的右键菜单:CloseClose othersClose tabs to the rightClose tabs to the left,外加 Copy pathCopy relative path (相对工作区 code target,恒用正斜杠)和 Reveal in File Explorer。这些关闭命令 严格限定在文件标签页之内——「关闭右侧标签」永远碰不到同一条标签栏上的终端标签页。 批量关闭会保留任何有未保存修改的标签页:它关掉周围干净的那些,既不甩给你一叠 对话框,也不悄悄丢掉一份缓冲。单独关闭一个文件标签页时,仍旧给 Save / Don't save / Cancel 三个出口。
  • 在会毁掉东西的关闭之前,先问一句。 关闭一个还有事在跑的终端标签页时,现在会 先确认——而且分得清是什么:是任务进行中的 agent,还是仍在运行的命令(对话框会 点名,比如 "node.exe")。空闲的 shell 照旧秒关,不弹窗、不停顿。关闭有未保存 修改的文件标签页时给的是 Save / Don't save / Cancel 三个出口,而不是默默丢掉一份 从未落盘的缓冲;万一保存输给了「文件已被别处改动」的竞争,关闭会中止,改为 显示冲突提示。Escape 永远是取消,焦点永远落在安全的那个按钮上——一次误触的 Enter 不会成为杀掉一次构建的原因。批量关闭(「Close others」、关闭工作区、退出 应用)有意不问。两种确认都可以在新的 Settings → General 页里各自单独关掉。
  • 全项目搜索。 右侧 Project Tools 面板新增 Search 标签——那个从来点不动的放大镜 终于变成了真功能。底层是 ripgrep(VS Code 同款引擎),尊重 .gitignore,结果按文件 分组、逐条高亮命中片段并带计数;提供大小写 / 整词 / 正则开关和 include/exclude glob;点击任意结果即在编辑器中打开该文件并滚动到命中行——第一次点就生效,每次都生效。
  • 配得上这个应用的查找替换。 编辑器搜索面板不再是 CodeMirror 自带的浏览器原生 控件条:换成了悬浮在编辑器右上角的紧凑卡片(VS Code 风格),打开时不再把代码 顶下去。输入框内嵌大小写 / 整词 / 正则开关,带 "N of M" 计数,Enter / Shift+Enter 前后导航,替换行可展开,选中文本自动填充查询。Ctrl+F 现已可在设置里重绑, 终端内的 Ctrl+F 仍归终端。
  • 终端标签页的右键菜单。 向右 / 向下拆分终端;固定标签(固定的标签靠左停驻、 不再显示关闭钮、并在所有批量关闭中幸存);关闭其他 / 关闭右侧 / 关闭左侧; 行内改名;以及九种颜色的小圆点标记——固定、颜色与自定义标题都能在重启后保留。
  • 把一个终端标签页并到眼前这个里。 右键菜单新增**「Move into current split」** → Right / Down:被点的那个标签页不再是标签页,而是变成活动标签页旁边的一个分屏 面板——刚才还在来回切换的两个终端,现在并排摆着。什么都不会重启:shell 继续跑、 滚动历史一起搬过去、长时间运行的 agent 毫无中断。新的布局在重启后依然保留。
  • 能力大增的 Ctrl+K。 命令面板显示实时键位提示,可模糊跳转文件(当前工作区), 并获得 VSCode 式前缀模式:> 命令、: 跳转行号、% 项目内快速文本搜索、? 帮助 ——外加工作区切换与会话内"最近使用"分组。Escape 永远一次按下即关闭。

修复

  • agent 写文件时,文件树不再冻住整个应用。 过去每次 Git 状态刷新都会把整棵树 拆掉重建,而树自己的监视器又会触发下一次刷新,于是编码 agent 一口气改很多文件时, 界面能一卡好几秒。现在树保留节点,只重绘状态变了的行;按文件系统事件增量刷新而 不是重挂;并且记住你展开过哪些文件夹——切到别的工作区再回来,不会全部折叠。 agent 刚建的文件不用点 Refresh 就出现。

  • Git 面板显示每一个未追踪文件,并且跟得上。 状态刷新现在通过单一的在途运行 限流,而不是层层堆积;.git 目录按允许列表监视,锁文件与 index 抖动不再引发刷新 风暴;那个悄悄截断未追踪列表、把整个新目录折成一行的 25 000 文件上限已删除: Cordy 向 Git 要每一个未追踪文件,万一输出真的必须截断,也按文档化的顺序截, 而不是从中间丢掉条目。

  • Changes 列表在任何规模下都滚得动。 它已虚拟化,几千个改动文件的状态只渲染 屏幕上的那些行,而不是全部。

  • 托盘 Quit 一律在 Cordy 内确认。 托盘图标右键 → Quit,过去在没有终端运行时会 静默退出,在窗口已收进托盘时又会落到操作系统的对话框;这两种情况现在都显示 Cordy 自己的确认,不论会话数量。程序性退出(macOS 关掉最后一个窗口、脚本化 teardown)保留静默路径。

  • 终端程序画在自家深色底上的文字(比如 Codex 输入框)在浅色主题下也看得清了。 有些终端程序会先铺一条硬编码的深色带,再用终端的默认文字色往上写,默认你用的是 深色主题。而在 Cordy 的浅色主题下,这个默认色接近纯黑,于是黑字落在黑底上,Codex 的输入框看起来就是空的。现在 Cordy 在绘制时强制一个最低对比度(与 VS Code 终端的 做法一致),把任何在所处底色上读不出来的文字重新着色。程序实际发出的内容分毫未变, 因此复制的文本、保存的会话、恢复的终端都不受影响——只有你看到的画面被提亮到能读。

  • 编辑文件时,浏览器面板不再消失。 以前打开一个文件标签页,会把整片面板区 (终端、笔记、浏览器一起)藏到编辑器后面:你正在看的网页会在点开文件的一瞬间消失, 而在编辑状态下点「浏览器」开关,更是看起来毫无反应。现在编辑器只替换终端那一格, 浏览器和笔记面板留在屏幕上,网页就活在你的代码旁边,而不是被悄悄冻结、最终被回收。 如果分屏挤了,原有的「整行全屏」开关依然能把整个工作区让给编辑器。

  • 网页崩溃时给你一个重新加载,而不是一片空白。 以前浏览器页面的进程一旦崩掉, 面板就只剩一片空白——没有提示、没有退路,转圈图标有时还会一直停在那里。现在它会 显示和其他加载失败一样的那张安静的错误卡片,上面带一个能把页面拉回来的 Retry

  • 方向键能走完整条标签栏了。 终端标签栏的键盘漫游焦点过去一步即失效——激活 标签会把焦点交给它的终端,第二次 ArrowRight 就打进了 shell 而不是继续移动。 现在键盘激活让焦点留在标签栏;鼠标点击标签仍会把键盘交给终端。

  • 编辑器自己掌管滚动。 过去在新打开的文件上滚一下滚轮,整个工作区画布会被甩到 另一行(手势在编辑器滚动边界处链出去了);现在滚动留在编辑器内,工作区画布也不再 可能长出一段看不见的横向滚动区。

  • 停掉编码 agent,终端会还给你。 用预设或快捷方式启动 agent 的那个标签页,过去会跟着 agent 一起死:agent 进程就是那个终端里唯一的进程,停它必然连会话一起停,标签页就停在 [process exited] 上——连同 agent 最后那一屏画面一起留着,直到你手动关掉它。现在停掉 agent 会把该标签页还原成一个可用的 shell,目录不变,死掉的 agent 那一屏也被清干净。此外 Cordy 会 先请 agent 自己退出:发一个 Ctrl+C,并等一小段有界的时间,让懂得收尾的 agent 有机会收尾。 已停止的 agent,其标签页上的状态点也会一直保留到你关掉标签页为止——这本来就是它该有的行为。

变更

  • Windows 安装包只带产品真正渲染的两种语言(英文与简体中文),不再带 Chromium 全套 55 种,解压后的安装体积从约 390 MB 降到约 344 MB。
  • 监控面板取代了旧的诊断弹层。 它的 Runtime & Store、Activity、Terminal I/O 计数与 Refresh 按钮都没了——它们与内存无关,却占了面板一半。Export 仍在, 移到了对话框页脚。

已知限制

  • Windows 安装包未做代码签名。 首次运行时 SmartScreen 会弹「无法识别的应用」 拦截页,选择「更多信息 → 仍要运行」即可。证书是计划中的采购项,自签名解决不了 这个问题。
  • 监控面板的 Workload 半边仅限 Windows。 在 macOS 与 Linux 上它会如实说明, 只显示 App 半边。
v0.2.02026-08-12

与 0.1.3 相同的纯源码发布(检出后以 pnpm install && pnpm build 构建)。这是 一个功能版本:每个工作区获得一块 agent 可以直接对着干活的内置浏览器 pane; 编码 agent 启动即进入受监督、可见的终端标签页并带真实状态;提交图长成可展开、 无限滚动的历史视图并配上语法高亮 diff;终端分屏按 VS Code 的模型重建—— 分屏属于标签页

新增

  • 每个工作区一块浏览器 pane。 在终端旁边打开浏览器——左边 agent、右边看 效果——自带标签条、工具栏(后退 / 前进 / 可停止的刷新、可编辑地址栏)、全局 书签栏,加载失败有清晰的错误覆盖层。页面在被遮住时继续运行:小额保活预算配 空闲回收控住内存,Zen 模式下 pane 依然可用。嵌入面已加固——锁死的 webview 参数、权限请求默认拒绝、嵌入页导航兜底。
  • agent 用得上的浏览器。 新的 Browser Gateway 是浏览器能力的单一策略化接 缝,带两个后端:内置 pane,以及经 cordy-chrome 扩展接入的真实 Chrome 会话。 配对零输入——Cordy 在本机发现扩展,你在原生对话框里批准;通道仅走环回地址、 token 鉴权、origin 过滤,凭持久化 token 自动重连,配对滥发会被锁定。
  • agent 启动即进入受监督的可见标签页。 preset 栏与命令面板收敛为同一条启动 路径:受监督的 agent run 直接落在你看得见的终端标签页上,标签内联状态徽章 (工作中 / 等待输入 / 已退出 / 失败)与提醒色条。toast 与侧边栏状态点一键跳到 agent 标签页,命令面板里有 Stop agent,关闭 agent 标签页会拆掉它整棵进程树—— 不留僵尸进程。
  • 提交图里的提交可以展开。 Graph 面板中每个提交可展开为其变更文件列表, 点击文件在中间画布打开只读 diff 标签页(文件 @ 短 sha)——与工作树 diff 同 一个界面。时间线滚动到底会无感知续载历史,不再停在固定条数。
  • 语法高亮 diff。 diff 渲染采用 @pierre/diffs + Shiki 高亮——语法按需 加载、渲染器隔离在懒加载 chunk 后面,应用启动不受影响。hunk 的暂存 / 取消 暂存 / 丢弃与之前完全一致。
  • 诊断与存储管理。 设置 → Diagnostics 可以打开日志目录、导出按时间范围 过滤的 zip(最近 1 小时 / 24 小时 / 7 天 / 全部,分项开关)、清除日志。存储 视图按类别拆解磁盘占用并分级清理——缓存一键清、快照备份先确认、核心数据 根本不可删。
  • 「在编辑器中打开」开箱即用。 Cordy 现在探测 PATH 上实际安装的编辑器, 在你显式选择前自动采用第一个可用项,菜单带品牌图标——不再是配置之前必报错。

修复

  • 终端分屏归属它的标签页——与 VS Code 一致。 分屏后点击当前所在的标签页 标题,可能一个 pane 变空白、另一个叠上陈旧内容;切换标签页还可能把分屏拆散。 分屏已从工作区级布局重构为按标签页分组:切换标签页整组交换,每个标签页记住 自己的布局,分屏 shell 在托盘关闭再打开后重新挂接而不是变成孤儿。
  • 切回 agent 标签页时插入符会回来。 离开正在运行的 Claude Code 标签页再 回来,输入插入符一直隐身、敲键才恢复:开启焦点上报的终端从未收到它重新获得 焦点的通知。现在终端视图每次重新挂接都会补发焦点事件,焦点 / 鼠标 / 粘贴上 报模式也能在快照重建中存活。
  • Codex 输入条在浅色主题下启动即正确。 受监督启动让 CLI 先于任何终端视图 出生,Codex 的颜色探测——100 毫秒内必须应答否则放弃——总是超时并回退深色。 运行时现在会在无视图挂接期间按你的当前主题代答主题色查询。
  • diff 背景跟随主题。 新 diff 渲染器在浅色主题下无论当前配色如何都刷纯白 背景;其前景与背景现在锚定到 Cordy 的主题变量,深浅两侧都正确。
  • agent 状态是真的。 Claude Code 的状态此前靠把屏幕文本与 pattern 匹配 推断,而那些 pattern 在其当前版本里根本不存在,整个会话可能全程只报「已启动」。 状态现在来自 Claude Code 的官方 hook 事件;屏幕匹配只作为无扩展点 CLI 的兜底, 并改为检测「正在工作」而不是猜测「正在等待」。
  • 在内置浏览器里输入的密码不会再抵达 CLI agent。 页面检查路径无差别读回控件值, 密码框的明文可以经 agent 的浏览器工具流出。凭据类字段(password、当前/新密码、 一次性验证码)现在一律读回为空——写入路径本就有这道守卫,读取路径没有。
  • 在内置浏览器里打开 URL 能用了。 open_or_focus_url 按字符串精确比较 URL, 浏览器归一化出的 http://localhost:3000/ 永远匹配不上请求里的 http://localhost:3000,于是每次调用都失败并留下一个孤儿标签页。现在按 origin、 路径与查询串比较,请求会等待导航真正提交,失败的打开会清掉自己的标签页。
  • 浏览器会话不会再卡住关不掉。 关闭一个窗口已经不认识的标签页会一直挂起, 导致结束或停止会话永久卡死。关闭现在是幂等的:已经不在的标签页视为已关闭。
  • 终端标签条不再乱动。 preset 启动按钮不再被滚出视野,新建标签按钮跟在最 后一个标签之后而不是钉在最右侧,标签列表不再纵向滚动。
  • 诊断细节。 路径脱敏支持带空格的目录,存储统计口径与清理实际回收的内容 完全一致。

变更

  • 工具栏图标化。 工作区工具栏与 Project Tools 标签改为紧凑的图标按钮配 tooltip(变更计数仍以徽章可见),给窄布局腾出头部空间。
  • Chrome 扩展不再申请 debugger 权限。 截图改用标准的可视标签页捕获,它只对 当前活动标签页有效——针对非活动标签页的请求现在会明确报错,而不是悄悄截错页面。
  • Codex 不再以绕过 hook 信任的方式启动。 内置 Codex preset 此前默认带 --dangerously-bypass-hook-trust;现在这是你显式选择的选项,不再由 Cordy 替你决定。
  • Element Picker 不再声称能解析源码文件与行号。 它读的是 React 19 根本不产出的 内部字段,因此在每个页面上都静默返回空。现在只转发它确实拥有的页面上下文。

移除

  • Agent 面板已删除。 头部启动器、面板开关与 Agent Run 面板整体移除—— agent 就是它的终端标签页,监督(状态徽章、点击聚焦、安全拆除)直接长在标签 页上。自定义 preset 仍可在 设置 → Terminal Presets 管理。
  • Developer Session 已删除。 限时的 chrome.debugger 诊断会话连同它所需的权限 一并全链路移除。
v0.1.32026-07-15

与 0.1.2 相同的纯源码发布(检出后以 pnpm install && pnpm build 构建)。 本版本收尾了日常使用中暴露的终端输入可靠性缺陷——以三个中文输入法吞字 bug 为核心,每一个都由真实输入事件轨迹根因定位——并带来一批源代码管理 与工作区体验升级(Zen 模式、提交图、带 git 状态标注的文件树、可重命名 标签页),以及本地化的崩溃与日志诊断。

修复

  • 终端中的中文输入法不再吞字。 三个各自独立的吞字 bug——每一个都由 真实微软拼音事件轨迹根因定位、而非猜测——均已修复:英文单词加空格后 丢失的边界字;从候选窗选中英文候选时丢失的字母;以及最深的一个——当 组词前已有文本时,开头已输入的若干字被悄悄截断(Windows TSF 在提交时 替换整个输入值,我们的偏移计算据此错切)。我们已将该底层缺陷连同修复 一并上报上游(xtermjs/xterm.js#6049、PR #6051)。三者现均由扩充后的 永久回归场景钉住。
  • 语音输入工具重新能粘贴进终端。 关闭模拟键盘的第三方语音转文字工具 注入的 Ctrl+V 不携带物理键码,此前被终端拒收——听写的文本因此落不进去。 Cordy 现在回退到逻辑键,粘贴得以完成。
  • 完全退出后再打开不再破坏恢复的终端。 彻底退出 Cordy 再重启,运行中 的终端可能带着空白顶部、错叠的行或丢失的光标回来。快照现在保存时剔除 全屏 / 模式控制序列,按其被捕获时的确切尺寸恢复,新 shell 始终在恢复的 历史下方从干净的一行开始——VS Code 式的复活。
  • 打开右侧面板不再让中间终端变空白。 展开项目工具面板时可能间歇性地 清空当前终端、要等下次重绘才恢复;resize 现在与重绘同步进行。
  • 源代码管理与工作树保持同步。 中间画布中打开的 diff 会在你暂存 / 丢弃 hunk、工作树写入以及 pull 之后刷新;提交历史解析针对提交签名和杂散 Git 输出做了加固;文件树选中行高亮在 Windows 路径下的问题已修复;行内标签 重命名不再在输入法组词过程中误触发。
  • 文件树的 Git 状态会向辅助技术播报,屏幕阅读器用户能听到哪些文件 发生了变化。

新增

  • Zen 模式。 一个工具栏按钮(及快捷键)收起周围的界面框架、聚光当前 agent 的 CLI 终端——用于与 coding agent 埋头协作。
  • 可重命名的终端标签页。 行内给任意标签起你自己的名字;清空即恢复 原始的启动标题。
  • 文件树中的 Git 状态。 文件与文件夹会标注其变更状态(M / A / D / R / C / ?),不打开更改面板也能一眼定位改动。
  • 提交图。 占位的 Review 标签被替换为展示提交历史的 Graph 标签。diff 现在像编辑器一样在中间画布打开,每一行更改都带"打开文件"操作。
  • 更深入的本地诊断。 本地化的崩溃捕获、滚动文件日志,以及更丰富、 路径脱敏的诊断导出,让安装后的问题真正可诊断——一切仍留在你的机器上, 绝不上传。

变更

  • 依赖与工具链刷新。 Cordy 现在基于 TypeScript 7(原生编译器)构建, 并对 Vite、Vitest、tiptap 等做了兼容范围内的更新,开发工具链亦有升级 (oxfmt 0.59、oxlint 1.74)。无面向用户的行为变化——只是更快、更新的 构建。
v0.1.22026-07-12

与 0.1.1 相同的纯源码发布(检出后以 pnpm install && pnpm build 构建)。 本版本落地终端可靠性攻坚的其余成果:可靠的中文输入法支持、Windows 上的 主题感知终端,以及工作区恢复的修复。

修复

  • 恢复后回到的就是你离开时激活的工作区。 此前从托盘恢复(或 reload) 总是落到最后创建的工作区,无论你当时用的是哪一个。激活选择现在会被持久化 并在恢复时生效——包括切换后立刻关闭窗口的场景。
  • 终端中的中文输入法重新可靠。 长句拼音不再吞字或重复,输入法候选窗 稳定驻留、不再追着全屏 TUI 的重绘乱跳。该修复由一条永久回归门禁保护, 未来升级无法让它无声退化。
  • 切回终端不再出现陈旧画面。 切回某个工作区或标签页时可能短暂丢失 光标、要等应用下次重绘才恢复;现在窗格在返回时立即重绘。

变更

  • Windows 终端改用随应用捆绑的现代 Windows Terminal ConPTY(微软签名)。 探测终端背景色的终端程序能得到真实应答——Codex CLI 这类工具在浅色主题下 能正确适配自身配色;输出字节流也更干净(resize 不再触发整屏重绘)。
  • 终端通过 COLORFGBG 向程序声明应用主题,vim / neovim / delta 类工具 在新开会话中能正确判定深浅色。