Steering protocol/UI fixes that interlock via one contract change — the
frontend now sends initial_rollout_prompt_id (its own prompt id for the
opening scene) in session-init and reset payloads, and both backend pre-seed
sites use it, so prompt lifecycle events (enhancing/ready/fallback) finally
match the frontend's records instead of no-oping against a backend uuid.
- controller: suppress prompt_sources_blocked while a submission is queued or
enhancing (fixes the blank player at typed-prompt session start); segment
prompt logging is now opt-in via DREAMVERSE_SEGMENT_PROMPT_LOG, written off
the event loop, warning on failure (drops the hardcoded author-machine path
and bare except).
- web: 'Generating next scene' overlay driven by explicit generation state
instead of waitingForSegmentPrompt prop edges, so auto_extension_updated
while idle can't strand it over the video; steering scene history is no
longer truncated by the 24-event prompt feed cap and keeps stable numbers
for 30+ scene sessions.
- mock server: manual_continuation_mode parity (no rewrite-flow wait, honors
initial_rollout_prompt_id, no segment cap in manual mode) so the GPU-less
dev backend works with the steering-only frontend.
- init image: client-side type/size validation on picker and paste paths
(png/jpeg/webp, 15MB) with a visible error, and ws_max_size raised to 32MiB
on both servers so a legitimate ~15MB image reaches the backend's own
validation instead of tripping uvicorn's 16MiB frame cap.