ouroboros/devtools/e2e_live
Ouroboros 800159039d e2e_live: open the UI probe at use time, type a dead browser target, name orphan survivors
The v7.0.0-rc.14 paid run opened each lane's headless Chromium at lane start
and first used it after the task and the self-mod absorb wait; lanes that
waited 10-23 minutes met TargetClosedError on the first goto, the exception
escaped run_sm1 and the whole lane became infra_error although its task-side
checks were complete. Both lanes also recorded no_orphans_after_stop=false
without naming the survivors.

- ui_probe.GuardedUI wraps the client: any browser-call failure becomes the
  typed reason ui_unavailable:<ExceptionType> (recorded as ui_reason and in the
  lane facts), later calls are no-ops, the exception never reaches the scenario.
- LaneContext.ui is a lazy property: the client opens on first use against the
  current server; restart() closes any open probe and re-resolves on the next
  use (a non-self-mod restart may change the port). The scenario surface
  (ctx.ui truthiness, goto/computed_property/send_chat/screenshot) is unchanged.
- run_live_lanes: lane start only probes availability (open + close); the lane
  row's ui verdict is taken from the context at the end; the orphan scan hands
  the surviving pids to _apply_orphan_scan, which names them in row["orphans"]
  (pid + cmdline head, capped at 20 with orphans_omitted).
- tests pin the lazy open / restart reopen, the typed open failure, the closed
  target degrading the SM1 UI tail to checks_failed at both context and lane
  level, and the orphans row shape and cap.

Co-authored-by: Ouroboros <311266734+ouroboros-agent@users.noreply.github.com>
2026-09-05 14:57:14 +00:00
..
__init__.py Live E2E stand: devtools/e2e_live runs K staggered isolated servers over the SM1/SW1/SK1 scenario table (F4-A) 2026-09-04 23:37:49 +00:00
run_live_lanes.py e2e_live: open the UI probe at use time, type a dead browser target, name orphan survivors 2026-09-05 14:57:14 +00:00
scenarios.py e2e_live: open the UI probe at use time, type a dead browser target, name orphan survivors 2026-09-05 14:57:14 +00:00
stub_lane.py Live E2E stand: devtools/e2e_live runs K staggered isolated servers over the SM1/SW1/SK1 scenario table (F4-A) 2026-09-04 23:37:49 +00:00
ui_probe.py e2e_live: open the UI probe at use time, type a dead browser target, name orphan survivors 2026-09-05 14:57:14 +00:00