omnigent-ai/omnigent は、Claude Code、Codex、Cursor、Pi などのコーディングエージェントを一括で管理するオープンソースのエージェントフレームワークである。2026年11月6日のコミット 57c2b64(#13079)は、このランナーのネイティブターミナルペインのクリーンアップ動作を修正した。他のエージェントが起動したセッション、すなわちサブエージェント用のペインは、1時間が経過すると回収されるようになり、人間が直接開いたトップレベルセッションのペインは従来どおりの保持時間を 따른ようになった。
問題はタイミングだった。ネイティブペインはランナーのアイドルタイムアウトを継承しており、これによってトップレベルセッションが消えないようにしている,但在、管理型ホストではこの値は1日だった。そのため、他のエージェントが作成した短命のワーカーセッションに残った CLI・TUI・MCP プロセスが、それぞれ最大1日ずつ積み残されていた。修正は、サブエージェントペインのアイドルウィンドウを、ネイティブペインの既定値である1時間(環境変数 OMNIGENT_NATIVE_PANE_IDLE_TIMEOUT_S で調整可能)に制限する方式である。実装では pane_reaper.py に resolve_sub_agent_pane_idle_timeout_s を新規追加し、PaneRef に sub_agent フラグを付けてペインごとにアイドルウィンドウを選ぶ。app.py 側では、サブエージェントかどうかはセッション初期化エンベロープの親接続で判別する。
同じ PR の後続の修正により、runner.idle_timeout_s を 0 に設定するとネイティブペインの回収を無効にするという文書化された動作が復活した。先ほどの実装では、0 の場合でもサブエージェントのウィンドウをネイティブの既定値に戻していたため、1時間後も子ペインを回収していた。今では 0 はトップレベルとサブエージェントの回収をともに無効にし、正の値のときのみサブエージェントのウィンドウを制限する。テストは init-envelope を基準に、Codex の子セッションが1時間のウィンドウを取得し、トップレベルセッションは24時間のウィンドウを維持するかを検証する。
ただし、このコミット記録だけでは判断できない部分が多い。ライセンスとリリースバージョン、サーバ上で実際に減少したプロセス数は示されていない。サブエージェントの判別が親接続に依存しているため、そのような印を付けない子セッションは、より長いウィンドウをそのまま維持する。回収対象を狭める性質の変更であるため、運用環境で減少したプロセス数は別途確認が必要である。