diff --git a/PROJECT_STATE.md b/PROJECT_STATE.md index b77c96c2..7ce3e4bc 100644 --- a/PROJECT_STATE.md +++ b/PROJECT_STATE.md @@ -106,7 +106,11 @@ ThothII gira in Docker sul server co-locato, **embedded nel portale omics_portal The frontend entry hash changed, so only `omics_portal-web-1` was restarted to invalidate its indefinite Vite-manifest cache. The application-level Qwen smoke reached its first `ui_request`, persisted the expected provider/model, deleted only its uniquely named smoke - session, restored the exact saved settings object, and left no smoke session or Pi runtime. + session, restored the exact saved settings object, and left no smoke session or Pi runtime. The + supplied probe's success path left its keep-alive SSE reader open, so only that probe process was + terminated (exit 143), without touching backend, Pi, or unrelated runtimes. The same smoke then + exited 0 with `controller.abort()` in cleanup, preserving the gate, session cleanup, and exact + settings-restoration evidence. ## What ThothII is diff --git a/brain/codebase/workflow-ui-contracts.md b/brain/codebase/workflow-ui-contracts.md index 75ed73aa..e065f650 100644 --- a/brain/codebase/workflow-ui-contracts.md +++ b/brain/codebase/workflow-ui-contracts.md @@ -13,9 +13,9 @@ normalize legacy malformed entries defensively in the viewer so one object cannot crash React. - `SqlViewer`'s horizontal/vertical layout control is meaningful only with multiple SQL blocks; hide it for the single CTE result shown by `CteResultViewer`. -- A Pi turn is `idle`, `running`, `waiting`, or `failed`. Reviewer input moves it to `waiting`; - responses and steering move it back to `running`; provider failures remain `failed` after - `agent_end` and emit only the fixed sanitized recovery message. +- A Pi turn is `idle`, `running`, `waiting`, or `failed`. A reviewer gate/request moves it to + `waiting`; the reviewer response and steering move it back to `running`; provider failures + remain `failed` after `agent_end` and emit only the fixed sanitized recovery message. - Resume preserves `running`/`waiting` runtimes. It replaces `idle`/`failed` runtimes, clears the old SSE buffer/subscribers before cold resume, and reuses the persisted provider/model/thinking. - A successful Resume of the already selected session increments the stream generation so React