[ {"mutation":"Mosaic camera and tiled viewport clip","source":"mosaic:sway/desktop/transaction.c:arrange_output (workspace_tiling_scene_x, wlr_scene_tree_set_clip)","object":"workspace tiling scene tree","class":"pixels_and_hit","render":"yes","hit":"yes","damage":"yes","transaction":"applied in arrange_root after transaction_apply","epoch":"observed at transaction_progress end; not atomic","experiment":"T1 400/1280/400","verdict":"PASS"}, {"mutation":"Owner-derived root popup position and clip","source":"mosaic:sway/desktop/transaction.c:arrange_popups, probe_clip_popup","object":"XDG popup scene tree","class":"pixels_and_hit","render":"yes","hit":"yes","damage":"yes","transaction":"arrange_root or direct handle_new_popup call","epoch":"partial: increment after arrangement, not before direct creation","experiment":"T1/T2","verdict":"PARTIAL"}, {"mutation":"XDG popup scene creation and destruction","source":"mosaic:sway/desktop/xdg_shell.c:popup_create, popup_destroy, handle_new_popup","object":"popup scene tree and XDG role","class":"pixels_and_hit","render":"yes","hit":"yes","damage":"yes","transaction":"immediate callbacks; XDG configure/map later","epoch":"absent at creation/destroy; possible later incidental arrangement","experiment":"T2 A/B open then B/A close","verdict":"PASS"}, {"mutation":"Surface map and unmap","source":"wlroots:types/scene/subsurface_tree.c:subsurface_tree_handle_surface_map/unmap","object":"scene subsurface tree","class":"pixels_and_hit","render":"yes","hit":"yes","damage":"yes","transaction":"immediate surface callback","epoch":"absent unless unrelated arrangement","experiment":"T2 popup map/close; direct callback not individually traced","verdict":"PARTIAL"}, {"mutation":"Client buffer replacement at fixed geometry","source":"wlroots:types/scene/surface.c:handle_scene_surface_surface_commit, surface_reconfigure; SceneFX:types/scene/wlr_scene.c:wlr_scene_buffer_set_buffer_with_options","object":"surface and scene buffer","class":"pixels_only","render":"yes","hit":"conditional if dimensions, opacity or transform change; fixed case no","damage":"yes","transaction":"immediate client surface commit","epoch":"absent at fixed geometry","experiment":"T3 toplevel recolor, same size","verdict":"PASS"}, {"mutation":"Surface input region","source":"wlroots:types/scene/surface.c:scene_buffer_point_accepts_input -> wlr_surface_point_accepts_input; SceneFX:types/scene/wlr_scene.c:scene_node_at_iterator","object":"wlr_surface input region","class":"hit_only","render":"no at fixed content","hit":"yes","damage":"not required by input semantics; incidental output commits possible","transaction":"immediate client surface commit","epoch":"absent at first empty-region hit","experiment":"T4 empty/full toplevel region without grab","verdict":"PASS"}, {"mutation":"Subsurface creation, position and stacking","source":"wlroots:types/scene/subsurface_tree.c:subsurface_tree_handle_surface_new_subsurface, subsurface_tree_reconfigure","object":"subsurface scene hierarchy","class":"pixels_and_hit","render":"yes","hit":"yes","damage":"yes","transaction":"immediate surface callback","epoch":"absent","experiment":"candidate T4, not selected","verdict":"NOT TESTED"}, {"mutation":"Generic scene node position, enable, reparent or order","source":"SceneFX:types/scene/wlr_scene.c:wlr_scene_node_set_position/set_enabled/reparent/place_above/place_below","object":"scene node","class":"pixels_and_hit","render":"conditional","hit":"conditional","damage":"conditional via scene_node_update","transaction":"caller dependent","epoch":"only arrangement callers counted","experiment":"T1/T2 callers sampled; other callers open","verdict":"PARTIAL"}, {"mutation":"Generic SceneFX tree-local clip","source":"SceneFX:types/scene/wlr_scene.c:wlr_scene_tree_set_clip, scene_node_point_inside_clip, scene_node_intersect_clip","object":"scene tree","class":"pixels_and_hit","render":"yes","hit":"yes","damage":"yes via scene_node_update","transaction":"caller dependent","epoch":"only private arrangement callers counted","experiment":"T1 root/tiled clip","verdict":"PARTIAL"}, {"mutation":"Effects, decoration, shadow, blur and opacity","source":"mosaic:sway/desktop/output.c:update_container_*; SceneFX:types/scene/wlr_scene.c:rect/shadow/blur/buffer setters","object":"scene effect nodes","class":"pixels_only_or_conditional_hit","render":"yes","hit":"conditional for interactive decoration rect","damage":"yes","transaction":"caller dependent, including render update","epoch":"mostly absent","experiment":"not in targeted matrix","verdict":"NOT TESTED"}, {"mutation":"Animation current dimensions and workspace fade","source":"mosaic:sway/desktop/transaction.c:arrange_container, arrange_output; animation callbacks elsewhere","object":"container and owner-visibility guard inputs","class":"pixels_and_hit","render":"conditional","hit":"conditional","damage":"conditional","transaction":"animation tick or arrangement","epoch":"partial; animation ticks not covered","experiment":"T1 snapshots only","verdict":"PARTIAL"}, {"mutation":"Output geometry, scale, transform, migration or removal","source":"mosaic:sway/desktop/output.c:handle_request_state/begin_destroy; transaction.c:arrange_output; SceneFX:types/scene/wlr_scene.c:scene_output_update_geometry","object":"output and scene output","class":"pixels_and_hit","render":"yes","hit":"yes","damage":"yes","transaction":"configuration and arrangement","epoch":"partial or absent","experiment":"fixed geometry only","verdict":"NOT TESTED"}, {"mutation":"Scene damage without geometry change","source":"SceneFX:types/scene/wlr_scene.c:scene_node_update, scene_output_damage; wlroots:types/scene/surface.c:surface_reconfigure","object":"damage ring and output","class":"pixels_only","render":"conditional","hit":"no by itself","damage":"yes","transaction":"immediate","epoch":"absent","experiment":"T3 content update","verdict":"PARTIAL"}, {"mutation":"XDG popup grab and dismissal","source":"mosaic:sway/input/seat.c:seat_pointer_notify_button; wlroots XDG popup grab handlers","object":"seat/grab and XDG roles","class":"delivery_only","render":"no","hit":"no scene change by grab itself","damage":"conditional on dismissal","transaction":"immediate input callback","epoch":"absent","experiment":"T2 valid A/B grabs; prior visible/clipped control","verdict":"PARTIAL"}, {"mutation":"Focus and IPC metadata","source":"mosaic:sway/input/seat.c:focus handlers; sway IPC tree reporting","object":"seat focus and metadata","class":"metadata_or_delivery","render":"conditional if decoration changes","hit":"not necessarily","damage":"conditional","transaction":"mixed","epoch":"not a general focus generation","experiment":"T5 controls","verdict":"PARTIAL"}, {"mutation":"Output buffer commit and present","source":"mosaic:sway/desktop/output.c:output_repaint_timer_handler, presentation_probe_handle_commit, handle_present","object":"per-output state and presentation","class":"presentation_identity","render":"yes","hit":"no scene mutation implied","damage":"consumes pending damage","transaction":"native output submission","epoch":"recorded but not a geometry generation","experiment":"T1-T4 native commit/present","verdict":"PASS"} ]