# STEP20C saved target boundary crossing probe **EXPERIMENTAL / PARTIALLY_FEASIBLE, measured 2026-10-12.** STEP20C remains NEXT and production multi-output Mosaic is NOT YET SUPPORTED. This is a new, independent campaign following the [saved transaction buffer freeze](STEP20C_SAVED_TRANSACTION_BUFFER_PROBE.md), whose verdict remains INCONCLUSIVE. No Mosaic production, cumulative patch, package, UX or SceneFX algorithm change is authorized here. ## Scientific identity and source path The target is the XDG toplevel with `app_id=org.mosaic.SavedBufferProbe`. Its Sway tiled container, borrowed workspace tiling row, view scene tree, live content tree, temporary saved tree and saved scene buffer are distinct. The source buffer of this view must be identified before the transaction. An output buffer or optimized blur cache is never evidence for that source. `transaction_commit` configures a changed-size visible view when `should_configure` holds, then `view_save_buffer` creates a sibling saved tree under `view->scene_tree`. `view_save_buffer_iterator` visits enabled live buffers via `wlr_scene_node_for_each_buffer`, creates saved scene nodes via `wlr_scene_buffer_create`, and calls `wlr_scene_buffer_set_buffer` with the source buffer. Current live content is disabled and the saved tree enabled. `transaction_progress` applies on readiness or `handle_timeout`; the normal `apply_container_state` path calls `view_remove_saved_buffer`. SceneFX's `scene_node_intersect_clip` intersects ancestral tree clips for visible/damage regions and `scene_node_point_inside_clip` guards node-at; `scene_entry_render` is the actual render-entry observation. This source path warrants a test, not a clipping conclusion. The target node ID must be correlated from source to saved creation to render entry and destruction. Parentage and enabled state must be recorded. Pointer equality alone does not prove all GPU references were released. ## Geometry gate before reservation Use only two normal scale-1 headless outputs: H1 `(-800,0),800x600` and H2 `(0,0),800x600`. Map the deterministic C17 XDG client and ordinary reference clients, settle focus, query actual outputs and workspace Mosaic state, and measure the target **source scene buffer**: node pointer, source buffer pointer, global node coordinates, destination width/height, source box, transform, owner container/view, applied camera and tiled clip. A container rect alone is insufficient. The previous runner issued relative `layout mosaic scroll 400` and reached applied scroll 1760, leaving its target outside H1. Here `desired_scroll` is computed from the measured source buffer left/right and applied `current_scroll`; issue exactly one signed `delta=desired_scroll-current_scroll`, then remeasure. Require `left<0