fix(iOS): stabilize preview route test and keep it off macOS CI

Merged
TE
2mo ago
+17-1

Fixes #13563.

Changes

  • add the missing tests/test_build_graph_health.py → preflight guard ownership entry, which current main's guard workflow already references
  • remove the unrelated hasUnread mutation from previewTextChangeReconfiguresInPlaceWithoutTableReload(), 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 by test-ios.yml, not the macOS Swift-package lane
  • add a Linux routing regression that pins macos=false, web=false, and release_build=false for 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.


View with [code]smith Autofix with [code]smith
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 hasUnread mutation from previewTextChangeReconfiguresInPlaceWithoutTableReload(), since hasUnread changes 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, and release_build=false.
  • Registers tests/test_build_graph_health.py under the preflight guard group and syncs the related step ownership entries in workflow_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.