Ariver
2026-08-14 86f0b4bd20cdec86dfb5bdb7978d1f6ff4af111a
C3.tools/round1-session-snapshot-qa.sh
@@ -143,7 +143,10 @@
fullscreen_segments = [segment for segment in lane_segments if segment.get("type") == "fullscreen"]
require([segment.get("label") for segment in fullscreen_segments] == fullscreen_labels, "fullscreen segment reports must match fullscreen labels")
require(all(segment.get("fullscreenMarkerVisible") is True for segment in fullscreen_segments), "fullscreen segments must expose fullscreen marker")
require(all(segment.get("fullscreenMarkerKind") == "cornerBracket" for segment in fullscreen_segments), "fullscreen segments must use corner bracket marker")
require(
    all(segment.get("fullscreenMarkerKind") in {"cornerBracket", "splitViewPair"} for segment in fullscreen_segments),
    "fullscreen segments must use a known fullscreen marker"
)
require(all(segment.get("windowBlockCount") == 0 for segment in fullscreen_segments), "fullscreen segments must not expose floating-window blocks")
non_fullscreen_segments = [segment for segment in lane_segments if segment.get("type") != "fullscreen"]
require(all(segment.get("fullscreenMarkerKind") == "none" for segment in non_fullscreen_segments), "non-fullscreen segments must not expose fullscreen marker")
@@ -152,10 +155,27 @@
    marker_frame = segment.get("fullscreenMarkerFrame", {})
    app_frame = segment.get("appFrame", {})
    require(isinstance(marker_frame, dict), "fullscreen segments must expose marker frame")
    require(isinstance(app_frame, dict), "fullscreen segments must expose centered App label frame")
    marker_mid_y = marker_frame.get("y", 0) + marker_frame.get("height", 0) / 2
    app_mid_y = app_frame.get("y", 0) + app_frame.get("height", 0) / 2
    require(abs(marker_mid_y - app_mid_y) <= 2, "fullscreen App label must be vertically centered in marker")
    if segment.get("fullscreenMarkerKind") == "splitViewPair":
        label_frames = segment.get("splitViewLabelFrames", [])
        require(len(label_frames) == 2, "Split View fullscreen segments must expose two app label frames")
        require(
            segment.get("splitViewAppNames") and len(segment.get("splitViewAppNames")) == 2,
            "Split View fullscreen segments must expose two ordered app names"
        )
        require(
            label_frames[0].get("x", 0) + label_frames[0].get("width", 0) / 2
            < marker_frame.get("x", 0) + marker_frame.get("width", 0) / 2
            < label_frames[1].get("x", 0) + label_frames[1].get("width", 0) / 2,
            "Split View app labels must occupy left and right marker halves"
        )
        for label_frame in label_frames:
            app_mid_y = label_frame.get("y", 0) + label_frame.get("height", 0) / 2
            require(abs(marker_mid_y - app_mid_y) <= 2, "Split View App labels must be vertically centered in marker")
    else:
        require(isinstance(app_frame, dict), "fullscreen segments must expose centered App label frame")
        app_mid_y = app_frame.get("y", 0) + app_frame.get("height", 0) / 2
        require(abs(marker_mid_y - app_mid_y) <= 2, "fullscreen App label must be vertically centered in marker")
for segment in lane_segments:
    if segment.get("isCurrent") is True:
        require("current" in segment.get("visualStates", []), "current segment must expose current visual state")