usecornercase/cornercase-terminal 是一个用鼠标操作项目、git worktree 和编码代理的终端复用器。它用 Rust 编写,许可证是 MIT OR Apache-2.0。2026-11-06 的提交 7f08441 添加了 `retry_at` 字段,用于在机器连接(link)断开时告知下一次重试的时间。Cargo.toml 和 CHANGELOG 中的版本从 0.13.18 升到了 0.13.19。
该字段会出现在 `cornercase machines --json` 以及 `status --app`、`status --json` 的 machines 条目中,值的格式与 `seen` 相同,都是 UTC。它表示断开的链接下一次重试的时间,因此自带 UI 可以用这个值绘制窗口中已经存在的 `reconnecting in 4 s` 之类的重连倒计时。该时间在尝试失败之前保持不变,而已经过去的时间表示尝试正在进行。调用 `cornercase machines retry`,或者电脑醒来、网络发生变化时,该值会重新确定。作为契约能力,它是 `machine-retry-at`,可以在 `cornercase contract` 中查看。
同一个提交里还一并带来了两处修正,用于纠正链接状态的显示。其一是调整顺序,只有在报告链接已连接之后才清除下一次尝试时间。在此之前会先清除时间,导致应用流中最多 500ms 出现没有时间的 `unreachable` 行,读起来像是需要人工介入的等待。其二是让移动的时间在机器名称变化、链接需要跟随时只发送一次。`machines` 的 `set` 会先发送 `watch` 行,下一次更新再触及链接以给出新名称,但由于更新只有在被显示时才会生成快照,`status --follow` 会一直显示旧的时间和名称,直到另一个事件到来。
当链接存活或正在连接时,`retry_at` 不会出现;当它仍停留在需要人工介入的等待状态时,同样也没有这个字段。较旧的 cornercase 服务器没有 `error` 字段,因此由 `state` 来说明原因;在这个计算机或同一服务器上的其他机器的情况下,则由 `error` 来承担这一角色。设计文档中写明,让客户端自行计算服务器调度的方案被否决,原因是时钟偏差,以及客户端听不到这期间发生的失败。提交信息里写的是 release 0.13.3,但版本文件和 CHANGELOG 指向 0.13.19。本次变更为新增 498 行、删除 38 行,测试、设计文档和站点文档也一并更新。对于只需绘制各节点重试时间的外部 UI,可以直接使用;但在需要同时解释连接状态的地方,需要单独考虑字段缺失的情况。