Show Session runtime state in Session server
What type of PR is this?
/kind feature
What this PR does / why we need it:
Ready Sessions currently expose only their infrastructure phase, so users cannot tell whether an agent is actively running a turn or waiting for input.
This PR adds an authoritative runtime status query and exposes Running or Waiting for every ready Session in the Session server API. The sidebar and selected Session header render that state, while non-ready Sessions continue to show their infrastructure phase. WebSocket clients also request a fresh status snapshot when connecting so reloads and reconnects do not retain stale state.
Which issue(s) this PR is related to:
Fixes #1473
Special notes for your reviewer:
The Session list queries ready Session Pods concurrently with a bounded limit and a four-second request timeout. Unit coverage exercises running, idle, and input-waiting states; the existing Session e2e flow now verifies status while disconnected and after reconnecting. The e2e suite is intended to run in CI.
Validation:
env -u CODEX_HOME -u CODEX_AUTH_JSON make testmake verify
Does this PR introduce a user-facing change?
Show whether ready Sessions are running a turn or waiting for input in the Session server.
Summary by cubic
Show live runtime state for ready Sessions in the Session server and UI (Fixes #1473). Users can see if an agent is Running or Waiting; WebSocket clients refresh status on connect.
- New Features
- API returns
runtimeState("Running" | "Waiting") for ready Sessions; non-ready Sessions still exposephase. - Runtime adds a
statusclient request andruntime.statusevent, pluskelos-session-runtime statusto query the socket. - Session server queries Pods via exec to fetch status, with concurrent requests (limit 8) and a 4s timeout.
- UI shows status in the session list and header with new dot styles; WS sends a
statusrequest on connect and updates on incoming events; unit and e2e tests cover running/waiting and reconnects.
- API returns