今日やったこと#
読み取り専用のデスクトップ監視を複数環境へ拡張#
- 独立したデスクトップ版を3.0としてまとめ、複数の開発支援環境からタスク、子Agent、モデル、コンテキスト残量、利用量を同じ画面で確認できるようにした。
- 追加した環境については、既存のローカルSQLiteを読み取り専用で参照し、任意のローカルAPI連携も状態確認用のGETに限定した。会話本文、ツール出力、認証情報は画面の状態へ取り込まない設計にした。
- カードに取得元を表示して絞り込めるようにし、異なる環境のセッションを誤って親子関係に結び付けないよう識別空間を分離した。
- 実行状態の推定、モデル容量からのコンテキスト残量推定、端末内記録に基づく7日間の利用量表示を追加した。推定値と未取得値は確定値と区別して表示する。
- 実行中カードの並びを安定させ、長いモデル名、明暗テーマ、複数タスクの一覧性を調整した。検証済みのZIP形式で配布できるところまで整えた。
判断と学び#
監視ツールには送信、承認、中断などの操作を持たせず、元のアプリケーションを操作の場として残した。複数の環境を一画面にまとめても、取得元ごとの責任範囲を混ぜないことが安全性と表示の正確さにつながる。
ローカル記録だけでは現在実行中かを断定できないため、直近の更新がある未完了処理は「推定実行」とし、一定時間更新がなければ状態不明へ戻すルールにした。コンテキスト残量も公開されたモデル容量と最後の利用記録から求める推定値として明示した。
利用量についても、サービス側の上限と端末内に残る実績は同じ意味ではない。画面上で別の指標として扱い、欠損をゼロに置き換えないことで、分からない状態を分からないまま伝える設計にした。
検証#
- SQLiteの読み取り専用動作、破損・欠損・復旧、親子Agent、完了・エラー・古い未完了記録、日付境界を自動テストで確認した。
- ローカルAPI連携がGETとループバック接続に限定され、リダイレクトを拒否し、会話本文や認証情報を保持しないことを確認した。
- 実データで複数環境を同時に読み取り、取得元の表示と絞り込み、利用量の分離、既存レイアウトの維持を確認した。
- 配布用ZIPを展開した状態でスモークテストが成功し、描画エラーがなく、同梱した主要ソースが検証対象と一致することを確認した。
- 独自形式の実行ファイル作成は端末のアプリケーション制御で通らなかったため、設定を変更せず、動作確認できたZIP形式を採用した。長時間運用はまだ検証していない。
次にやること#
- 長時間運用で状態更新と直前データ保持が安定するか確認する。
- 参照先のデータ形式が変わった場合に、非対応を安全に検出できるか継続して確認する。
- 現在未対応の別環境について、同じ読み取り専用境界を保てる接続方法を検討する。