Skip to content

v0.3.4

Choose a tag to compare

@github-actions github-actions released this 20 Aug 05:32
· 2846 commits to main since this release

这一版全是真机走查揪出来的问题。 更新面在真机上第一次跑起来时暴露了两个缺陷:
升级失败没有任何出口、版本比不出来时谎称「已是最新」;控制台这边则是文件树角标在
归档任务上整片消失、悬浮窗里的文件正文与背景同色、以及 agentd 重启后终端 tab 变成
一屏黑加一句指向错方向的红字。从 v0.3.3 升级无需改配置。

修复

  • 终端 tab 被判死后有了出口,红字也说人话了。 agentd 一重启(重装二进制、
    launchctl kickstart -k 都算),内存里的 PTY 会话全没,而已经开着的控制台里那些
    终端 tab 还记着旧会话 id,切回去就是一屏黑加一行红字。原因其实是服务端在关连接时
    给的(终端会话不存在),但前端只按 close code 查表,把它显示成「会话已失效或
    订阅非法(agentd 吊销了本连接)」——一句指向鉴权的话,把人往完全错的方向带。现在
    服务端给了原因就显示原文,并且这类判死(close 1008)会在红字旁给一个「重开一个
    终端」按钮,在同一基准目录重建会话。仍在退避重连的普通断线不给这个按钮。

  • 执行机升级失败终于有出口了。 升级不出进度流是刻意的,但此前只想清楚了成功
    怎么结束——版本变成最新。失败时版本压根不会变,控制台的「升级中」就永远清不掉,
    而 agentd 其实早已放弃(真机实测:后端记下「下载 checksums.txt 超时」三分钟后,
    界面还在转)。现在 GET /api/machines 的每台机器带 upgrade 段(缺席 / 在跑 /
    终态),控制台据此收尾并原样显示失败原因与处置建议。刷新页面后原因仍在。

  • 版本比不出来时不再谎称「已是最新」。 开发构建的版本戳是提交号,解析失败与
    「确实不需要更新」此前落在同一个分支上,界面把「我不知道」显示成了「你没事」,
    还顺手藏了升级按钮——而后端对这种机器的结论本来就是「需要升级」。现在这种机器
    显示「版本无法比较」,升级入口保留。

  • handoff upgrade 的结论状态在日志里是 ok / skip / fail,不再是 0 / 1 / 2。

  • 文件树的新增/修改角标在归档任务上不再整片消失。 handoff done 会回收托管
    worktree,而任务 diff 一直在那个已经不存在的目录里跑 git,于是每一个归档任务都
    返回 500,右侧文件树的颜色全没了(handoff diff 同样中招)。现在 worktree 没了
    就回退到主仓库 + 任务分支——用分支而不是 HEAD,否则会把主线相对基线的全部历史
    当成这个任务的改动(实测一个任务从 1002 个文件回到正确的 15 个)。分支也已删除
    时返回 404 并说清原委,而不是把 git 的 exit status 128 抛给用户。前端此前把这个
    500 静默吞成空集合,现在会先记一条 warn 再降级。

  • 悬浮窗里的文件正文不再与背景同色。 悬浮窗是浅色控制台里的一块深色表面,而
    放进去的文件/终端 tab 用主题令牌上色;控制台从不加 .dark,令牌一直解析成浅色
    主题下的近黑色,落在深色底上等于隐形——新建临时文件后正文看不见,选中才显形。

变更

  • 机器详情里的「重启 agent」「打开终端」两个占位按钮删掉了。 它们从落地起就
    只是形态占位——可点、点了展开一句「尚未实现」。当时的理由是「不置灰」(置灰
    承诺以后能用),但可点的占位是更强的承诺:它看起来就是个能用的按钮。两件事都
    还没有后端接口,真做的时候形态多半也不是这两个按钮。