mirror of
https://github.com/razzant/ouroboros.git
synced 2026-10-03 04:07:04 +00:00
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> |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| run_live_lanes.py | ||
| scenarios.py | ||
| stub_lane.py | ||
| ui_probe.py | ||