From cea8745cfadb698774cb7b4f930c6f10b7cbdf3c Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Mon, 29 Jun 2026 01:06:25 +0800
Subject: [PATCH] docs: clarify Aligner2 acceptance QA evidence

---
 C1.source/Tests/AlignerCoreTests/AlignerCoreTests.swift |  244 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 243 insertions(+), 1 deletions(-)

diff --git a/C1.source/Tests/AlignerCoreTests/AlignerCoreTests.swift b/C1.source/Tests/AlignerCoreTests/AlignerCoreTests.swift
index b83efb7..7c025f4 100644
--- a/C1.source/Tests/AlignerCoreTests/AlignerCoreTests.swift
+++ b/C1.source/Tests/AlignerCoreTests/AlignerCoreTests.swift
@@ -6,7 +6,7 @@
     func testAppIdentity() {
         XCTAssertEqual(AlignerAppInfo.name, "Aligner")
         XCTAssertEqual(AlignerAppInfo.bundleIdentifier, "com.ar.Aligner")
-        XCTAssertEqual(AlignerAppInfo.minimumMacOSVersion, "26.0")
+        XCTAssertEqual(AlignerAppInfo.minimumMacOSVersion, "14.0")
     }
 
     func testRound0OnlyDefinesQuickSwitchEntryPoint() {
@@ -171,6 +171,33 @@
                 subroleDescription: "standard"
             )
         )
+    }
+
+    func testWindowEnumerationPolicyRejectsLowConfidenceAXOnlyRegularWindows() {
+        XCTAssertFalse(WindowEnumerationPolicy.shouldIncludeAXOnlyRecord(
+            identifierSource: .cgWindow,
+            isMinimized: false,
+            isFullscreen: false,
+            spaceIDs: []
+        ))
+        XCTAssertTrue(WindowEnumerationPolicy.shouldIncludeAXOnlyRecord(
+            identifierSource: .cgWindow,
+            isMinimized: true,
+            isFullscreen: false,
+            spaceIDs: []
+        ))
+        XCTAssertTrue(WindowEnumerationPolicy.shouldIncludeAXOnlyRecord(
+            identifierSource: .cgWindow,
+            isMinimized: false,
+            isFullscreen: true,
+            spaceIDs: [42]
+        ))
+        XCTAssertFalse(WindowEnumerationPolicy.shouldIncludeAXOnlyRecord(
+            identifierSource: .syntheticAX,
+            isMinimized: false,
+            isFullscreen: false,
+            spaceIDs: []
+        ))
     }
 
     func testMinimizedWindowFallbackPolicyAvoidsOccupiedSyntheticIDCollisions() {
@@ -377,6 +404,214 @@
         XCTAssertNil(WindowEnumerationPolicy.window(from: tinyRecord))
     }
 
+    func testFinderTabSpaceAttributionInheritsFullscreenHostSpaceForMatchingFrame() {
+        let finderApp = AlignerApp(
+            bundleIdentifier: "com.apple.finder",
+            name: "访达",
+            category: .finder,
+            processIdentifier: 74678
+        )
+        let frame = CGRect(x: 0, y: 0, width: 960, height: 1080)
+        let host = WindowEnumerationRecord(
+            id: 33112,
+            app: finderApp,
+            title: "下载",
+            size: frame.size,
+            frame: frame,
+            subrole: .standard,
+            isFullscreen: true,
+            hasAXBacking: true,
+            spaceIDs: [843]
+        )
+        let inactiveTab = WindowEnumerationRecord(
+            id: 42286,
+            app: finderApp,
+            title: "Appcache",
+            size: frame.size,
+            frame: frame,
+            subrole: .standard,
+            hasAXBacking: false,
+            isOnscreen: false
+        )
+
+        let attributed = FinderTabSpaceAttributionPolicy.attributedRecords([inactiveTab, host])
+
+        XCTAssertEqual(attributed[0].spaceIDs, [843])
+        XCTAssertTrue(attributed[0].isFullscreen)
+    }
+
+    func testFinderTabSpaceAttributionDoesNotGuessNoSpaceWindowsWithoutHostOverlap() {
+        let finderApp = AlignerApp(
+            bundleIdentifier: "com.apple.finder",
+            name: "访达",
+            category: .finder,
+            processIdentifier: 74678
+        )
+        let otherApp = AlignerApp(
+            bundleIdentifier: "com.example.Other",
+            name: "Other",
+            category: .generic,
+            processIdentifier: 74678
+        )
+        let hostFrame = CGRect(x: 0, y: 0, width: 960, height: 1080)
+        let farFrame = CGRect(x: 1200, y: 0, width: 500, height: 600)
+        let host = WindowEnumerationRecord(
+            id: 33112,
+            app: finderApp,
+            title: "下载",
+            size: hostFrame.size,
+            frame: hostFrame,
+            subrole: .standard,
+            isFullscreen: true,
+            hasAXBacking: true,
+            spaceIDs: [843]
+        )
+        let farFinderTab = WindowEnumerationRecord(
+            id: 42286,
+            app: finderApp,
+            title: "Appcache",
+            size: farFrame.size,
+            frame: farFrame,
+            subrole: .standard,
+            hasAXBacking: false,
+            isOnscreen: false
+        )
+        let nonFinderWindow = WindowEnumerationRecord(
+            id: 50222,
+            app: otherApp,
+            title: "Appcache",
+            size: hostFrame.size,
+            frame: hostFrame,
+            subrole: .standard,
+            hasAXBacking: false,
+            isOnscreen: false
+        )
+
+        let attributed = FinderTabSpaceAttributionPolicy.attributedRecords([farFinderTab, nonFinderWindow, host])
+
+        XCTAssertEqual(attributed[0].spaceIDs, [])
+        XCTAssertFalse(attributed[0].isFullscreen)
+        XCTAssertEqual(attributed[1].spaceIDs, [])
+        XCTAssertFalse(attributed[1].isFullscreen)
+    }
+
+    func testFinderTabSpaceAttributionHandlesFinderSplitViewHostsByFrame() {
+        let finderApp = AlignerApp(
+            bundleIdentifier: "com.apple.finder",
+            name: "访达",
+            category: .finder,
+            processIdentifier: 74678
+        )
+        let leftFrame = CGRect(x: 0, y: 0, width: 960, height: 1080)
+        let rightFrame = CGRect(x: 960, y: 0, width: 960, height: 1080)
+        let leftHost = WindowEnumerationRecord(
+            id: 33112,
+            app: finderApp,
+            title: "下载",
+            size: leftFrame.size,
+            frame: leftFrame,
+            subrole: .standard,
+            isFullscreen: true,
+            hasAXBacking: true,
+            spaceIDs: [843]
+        )
+        let rightHost = WindowEnumerationRecord(
+            id: 41557,
+            app: finderApp,
+            title: "应用程序",
+            size: rightFrame.size,
+            frame: rightFrame,
+            subrole: .standard,
+            isFullscreen: true,
+            hasAXBacking: true,
+            spaceIDs: [843]
+        )
+        let leftInactiveTab = WindowEnumerationRecord(
+            id: 42286,
+            app: finderApp,
+            title: "Appcache",
+            size: leftFrame.size,
+            frame: leftFrame,
+            subrole: .standard,
+            hasAXBacking: false,
+            isOnscreen: false
+        )
+        let rightInactiveTab = WindowEnumerationRecord(
+            id: 61385,
+            app: finderApp,
+            title: "build",
+            size: rightFrame.size,
+            frame: rightFrame,
+            subrole: .standard,
+            hasAXBacking: false,
+            isOnscreen: false
+        )
+
+        let attributed = FinderTabSpaceAttributionPolicy.attributedRecords([
+            leftInactiveTab,
+            rightInactiveTab,
+            leftHost,
+            rightHost
+        ])
+
+        XCTAssertEqual(attributed[0].spaceIDs, [843])
+        XCTAssertEqual(attributed[1].spaceIDs, [843])
+        XCTAssertTrue(attributed[0].isFullscreen)
+        XCTAssertTrue(attributed[1].isFullscreen)
+    }
+
+    func testFinderTabSpaceAttributionRejectsContainingHostsWithDifferentSize() {
+        let finderApp = AlignerApp(
+            bundleIdentifier: "com.apple.finder",
+            name: "访达",
+            category: .finder,
+            processIdentifier: 74678
+        )
+        let splitRightFrame = CGRect(x: 960, y: 0, width: 960, height: 1080)
+        let fullDisplayFrame = CGRect(x: 0, y: 0, width: 1920, height: 1080)
+        let splitHost = WindowEnumerationRecord(
+            id: 33112,
+            app: finderApp,
+            title: "下载",
+            size: splitRightFrame.size,
+            frame: splitRightFrame,
+            subrole: .standard,
+            isFullscreen: true,
+            hasAXBacking: true,
+            spaceIDs: [843]
+        )
+        let containingHost = WindowEnumerationRecord(
+            id: 41557,
+            app: finderApp,
+            title: "应用程序",
+            size: fullDisplayFrame.size,
+            frame: fullDisplayFrame,
+            subrole: .standard,
+            isFullscreen: true,
+            hasAXBacking: true,
+            spaceIDs: [1112]
+        )
+        let inactiveTab = WindowEnumerationRecord(
+            id: 42286,
+            app: finderApp,
+            title: "Appcache",
+            size: splitRightFrame.size,
+            frame: splitRightFrame,
+            subrole: .standard,
+            hasAXBacking: false,
+            isOnscreen: false
+        )
+
+        let attributed = FinderTabSpaceAttributionPolicy.attributedRecords([
+            inactiveTab,
+            containingHost,
+            splitHost
+        ])
+
+        XCTAssertEqual(attributed[0].spaceIDs, [843])
+        XCTAssertTrue(attributed[0].isFullscreen)
+    }
+
     func testWindowEnumerationPolicyKeepsMinimizedAndFullscreenCGOnlyOffscreenWindows() {
         let minimized = makeWindowRecord(
             title: "Minimized Document.md",
@@ -499,6 +734,13 @@
         XCTAssertTrue(templates.allSatisfy { $0.contentRows > 0 })
     }
 
+    func testSkeletonThumbnailPaletteStaysQuietForFallbackState() {
+        XCTAssertLessThanOrEqual(SkeletonThumbnailPalette.headerAlpha, 0.10)
+        XCTAssertLessThanOrEqual(SkeletonThumbnailPalette.contentRowAlpha, 0.08)
+        XCTAssertLessThanOrEqual(SkeletonThumbnailPalette.accentStripeAlpha, 0.30)
+        XCTAssertGreaterThanOrEqual(SkeletonThumbnailPalette.titleBandAlpha, 0.80)
+    }
+
     @MainActor
     func testNativeSkeletonThumbnailProviderProducesValidImages() {
         let provider = NativeSkeletonThumbnailProvider()

--
Gitblit v1.9.3