fix(iOS): stabilize preview route test and keep it off macOS CI
Fixes #13563.
Changes
- add the missing
tests/test_build_graph_health.py → preflightguard ownership entry, which current main's guard workflow already references - remove the unrelated
hasUnreadmutation frompreviewTextChangeReconfiguresInPlaceWithoutTableReload(), so the test isolates the preview-text-only route its name/assertion describes - keep unread/native-action reload behavior covered by the separate read-state test
- classify
Packages/iOS/CmuxMobileShellUI/Tests/**as macOS-neutral because that package test target is exercised bytest-ios.yml, not the macOS Swift-package lane - add a Linux routing regression that pins
macos=false,web=false, andrelease_build=falsefor that test subtree
Evidence
Failing iPhone run: https://github.com/manaflow-ai/cmux/actions/runs/35682638589
Failure:
WorkspaceListScrollUpdateTests.previewTextChangeReconfiguresInPlaceWithoutTableReload()
expected .reconfiguredInPlace
observed .tableReload
The test changed both previewText and hasUnread. The production coordinator intentionally treats hasUnread changes as native-action payload changes, which select the table reload path. The fix removes only that unrelated mutation.
A later unchanged-iOS run passed, confirming this was test-state/contract instability rather than a signing regression.
This PR changes the CI router itself, so it should exercise routing validation once. After merge, isolated CmuxMobileShellUI/Tests/** edits will stay off the macOS lane.
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.
Summary by cubic
Stabilizes the iOS preview text routing test and keeps CmuxMobileShellUI test edits off the macOS CI lane.
- Removes the unrelated
hasUnreadmutation frompreviewTextChangeReconfiguresInPlaceWithoutTableReload(), sincehasUnreadchanges intentionally select the table reload path; read-state behavior stays covered by its own test. - Classifies
Packages/iOS/CmuxMobileShellUI/Tests/**as macOS-neutral in the CI router so test-only changes there no longer trigger the macOS Swift-package lane. - Adds a routing regression test asserting that the test subtree sets
macos=false,web=false, andrelease_build=false. - Registers
tests/test_build_graph_health.pyunder the preflight guard group and syncs the related step ownership entries inworkflow_guard_groups.py, keeping only guarded entries.
Summary by CodeRabbit
-
Tests
- Updated workspace list coverage to verify that preview-text changes refresh items in place without reloading the full list.
- Added coverage confirming iOS-only test changes do not trigger unnecessary macOS processing.
-
Chores
- Improved CI change classification for iOS test updates.
- Added ownership tracking for nightly maintenance and build-health validation steps, improving routing and accountability for automated checks.