diff --git a/Packages/iOS/CmuxMobileShellUI/Tests/CmuxMobileShellUITests/WorkspaceListScrollUpdateTests.swift b/Packages/iOS/CmuxMobileShellUI/Tests/CmuxMobileShellUITests/WorkspaceListScrollUpdateTests.swift index 2cb4cd1d6af5..b32f4350da45 100644 --- a/Packages/iOS/CmuxMobileShellUI/Tests/CmuxMobileShellUITests/WorkspaceListScrollUpdateTests.swift +++ b/Packages/iOS/CmuxMobileShellUI/Tests/CmuxMobileShellUITests/WorkspaceListScrollUpdateTests.swift @@ -129,7 +129,6 @@ import UIKit coordinator.attach(to: tableView) workspace.previewText = "Agent finished: PR opened" - workspace.hasUnread = true coordinator.update(configuration: configuration(workspaces: [workspace]), in: tableView) #expect( diff --git a/scripts/ci/detect_ci_change_areas.py b/scripts/ci/detect_ci_change_areas.py index 81015ff9280a..da3c54eedb0c 100755 --- a/scripts/ci/detect_ci_change_areas.py +++ b/scripts/ci/detect_ci_change_areas.py @@ -294,6 +294,11 @@ def is_agent_session_web_change(path: str) -> bool: def is_macos_neutral(path: str) -> bool: if path in CI_CONTROL_PLANE_ONLY: return True + # CmuxMobileShellUI is an iOS-only package and its Tests target is exercised + # by test-ios.yml, not by the macOS Swift-package lane. Test-only edits here + # cannot affect desktop product bytes or macOS package tests. + if path.startswith("Packages/iOS/CmuxMobileShellUI/Tests/"): + return True # `cmux-tui/` is the standalone cmux-tui Rust project, gated by its own # workflow. Packages/iOS stays macOS-relevant because the desktop app # links CmuxMobileRPC, CmuxMobileTransport, and their package dependencies. diff --git a/scripts/ci/workflow_guard_groups.py b/scripts/ci/workflow_guard_groups.py index f622ace656a2..27e29cce3c95 100644 --- a/scripts/ci/workflow_guard_groups.py +++ b/scripts/ci/workflow_guard_groups.py @@ -31,7 +31,9 @@ "Test XCStrings catalog lint": "preflight", "Test macOS localization catalog tooling": "preflight", "Test review fabric contracts": "preflight", + "Set up Python 3.9 for nightly prune compatibility": "release-tooling", "Validate Blacksmith Testbox broker trust boundary": "ci", + "Validate build graph health tooling": "preflight", "Validate CI Xcode selection fast path": "release-notary", "Validate CI change area filter": "ci", "Validate CMUX INTERNAL main-push path filter": "release-ios", @@ -175,6 +177,7 @@ "tests/test_bash_integration_no_done_notifications.py": frozenset(("quality-determinism",)), "tests/test_benchmark_dev_fleet_warm_slots.py": frozenset(("preflight",)), "tests/test_build_app_bundled_resources.sh": frozenset(("quality-runtime",)), + "tests/test_build_graph_health.py": frozenset(("preflight",)), "tests/test_build_metrics.py": frozenset(("ci",)), "tests/test_ci_app_host_failure_census.py": frozenset(("app-host-process",)), "tests/test_ci_app_host_guard_structure.py": frozenset(("ci",)), diff --git a/tests/test_ci_linux_guard_routing.py b/tests/test_ci_linux_guard_routing.py index 4ed1c021cbc4..c0ccced80e6e 100755 --- a/tests/test_ci_linux_guard_routing.py +++ b/tests/test_ci_linux_guard_routing.py @@ -14,6 +14,7 @@ from test_ci_change_areas import ( linux_preflight_needs, + module, run_guard_status, run_linux_preflight, run_tests_gate, @@ -59,6 +60,14 @@ def route(paths, event="pull_request", macos="false"): class LinuxGuardRoutingTests(unittest.TestCase): + def test_ios_shell_ui_test_only_change_skips_macos(self): + actual = module.classify_files([ + "Packages/iOS/CmuxMobileShellUI/Tests/CmuxMobileShellUITests/WorkspaceListScrollUpdateTests.swift" + ]) + self.assertFalse(actual.macos) + self.assertFalse(actual.web) + self.assertFalse(actual.release_build) + def test_candidate_router_cannot_disable_its_own_guards(self): script = workflow_job_step_script("changes", "Route Linux guard suites") for changed in (