Repository navigation
v0.3.4
这一版全是真机走查揪出来的问题。 更新面在真机上第一次跑起来时暴露了两个缺陷:
升级失败没有任何出口、版本比不出来时谎称「已是最新」;控制台这边则是文件树角标在
归档任务上整片消失、悬浮窗里的文件正文与背景同色、以及 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」「打开终端」两个占位按钮删掉了。 它们从落地起就
只是形态占位——可点、点了展开一句「尚未实现」。当时的理由是「不置灰」(置灰
承诺以后能用),但可点的占位是更强的承诺:它看起来就是个能用的按钮。两件事都
还没有后端接口,真做的时候形态多半也不是这两个按钮。