From ea8c934ef857ce7fafb109f60c579a33f5b6bd21 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Fri, 12 Jun 2026 13:07:05 +0800
Subject: [PATCH] Update candidate filter QA fixture expectation

---
 C3.tools/round1-space-filter-fixture-qa.sh |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/C3.tools/round1-space-filter-fixture-qa.sh b/C3.tools/round1-space-filter-fixture-qa.sh
index bf0dec4..9ca4e13 100755
--- a/C3.tools/round1-space-filter-fixture-qa.sh
+++ b/C3.tools/round1-space-filter-fixture-qa.sh
@@ -257,6 +257,11 @@
 segments = root.get("spaceLaneSegments", [])
 cards = [card for column in columns for card in column.get("cards", [])]
 segment_by_id = {segment.get("spaceID"): segment for segment in segments}
+visible_frames = [column.get("visibleFrame", {}) for column in columns]
+visible_min_x = min(frame.get("x", 0) for frame in visible_frames)
+visible_max_x = max(frame.get("x", 0) + frame.get("width", 0) for frame in visible_frames)
+left_blank_width = max(0, visible_min_x)
+right_blank_width = max(0, root.get("waterfallVisibleWidth", 0) - visible_max_x)
 
 require(report.get("snapshotLoaded") is True, "snapshot must load")
 require(report.get("quickSwitchVisible") is True, "Quick Switch must stay visible after filtering")
@@ -268,6 +273,7 @@
 require(report.get("appShelfNames") == ["Alpha Space App", "Beta Space App"], "App Shelf must only include A1 apps")
 require(root.get("appShelfNames") == ["Alpha Space App", "Beta Space App"], "root App Shelf must only include A1 apps")
 require(root.get("waterfallColumnNames") == ["Alpha Space App", "Beta Space App"], "Waterfall must only include A1 columns")
+require(abs(left_blank_width - right_blank_width) <= 2.0, "filtered Waterfall columns must be centered as one content block")
 require(report.get("windowCount") == 3, "A1 must expose exactly three windows")
 require(len(cards) == 3, "A1 card count must be three")
 require(all(card.get("primarySpaceID") == 1 for card in cards), "every visible card must belong to A1")
@@ -281,7 +287,7 @@
 require(segment_by_id[4].get("windowCount") == 0, "B1 must remain visible as empty Space")
 require(segment_by_id[5].get("windowCount") == 1, "B2 fullscreen Space must remain visible")
 require("locked" in segment_by_id[1].get("visualStates", []), "locked Space must expose locked visual state")
-require(segment_by_id[1].get("borderWidth", 0) >= 2.5, "locked Space must use a stronger blue border")
+require(segment_by_id[1].get("borderWidth", 0) >= 5.5, "locked Space must use a heavy blue border")
 lock_shadow = segment_by_id[1].get("shadowColor", {})
 require(lock_shadow.get("red", 0) >= 0.90 and lock_shadow.get("green", 0) >= 0.90 and lock_shadow.get("blue", 0) >= 0.90, "locked Space must use a white glow")
 require(segment_by_id[1].get("shadowOpacity", 0) >= 0.60, "locked Space glow must be visibly stronger than hover")
@@ -299,6 +305,8 @@
     "lockedBorderWidth": segment_by_id[1].get("borderWidth"),
     "lockedShadowOpacity": segment_by_id[1].get("shadowOpacity"),
     "lockedShadowRadius": segment_by_id[1].get("shadowRadius"),
+    "waterfallLeftBlankWidth": left_blank_width,
+    "waterfallRightBlankWidth": right_blank_width,
     "fadeOutLayerCount": root.get("projectionTransitionFadeOutLayerCount"),
     "transitionDurationMilliseconds": root.get("projectionTransitionDurationMilliseconds")
 }, indent=2, ensure_ascii=False))
@@ -441,7 +449,7 @@
 require(root.get("waterfallColumnCount") == 0, "root Waterfall must be empty")
 require(root.get("spaceLaneLabels") == ["A1", "A2", "A3", "B1", "B2"], "Space Lane must stay global while empty Space is locked")
 require("locked" in segment_by_id[3].get("visualStates", []), "empty locked Space must expose locked visual state")
-require(segment_by_id[3].get("borderWidth", 0) >= 2.5, "empty locked Space must still use strong locked border")
+require(segment_by_id[3].get("borderWidth", 0) >= 5.5, "empty locked Space must still use a heavy locked border")
 empty_shadow = segment_by_id[3].get("shadowColor", {})
 require(empty_shadow.get("red", 0) >= 0.90 and empty_shadow.get("green", 0) >= 0.90 and empty_shadow.get("blue", 0) >= 0.90, "empty locked Space must use white glow")
 require(segment_by_id[3].get("shadowOpacity", 0) >= 0.60, "empty locked Space glow must be visible")

--
Gitblit v1.9.3