Re-land Cloud machine stale status punctuation

Merged
TE
1mo ago
+11535-11545

This re-lands #15900 on the origin branch cloud-sidebar-status-kinds so it can run the UI lane and attach tour frames. It carries the two original commits 7568a7303340c888be52b94c3c09c54f97eff3c7 and 583b156c4b0bd22dce4ea88828e92a580f778c4c, plus the main merge 62e771c80978a9320e1107036dcf794d4317031e. Please close #15900 in favor of this origin PR.

When cached Cloud machines stay visible, the toolbar now separates the sign-in and Pro status from "showing last known" with the same dash used for offline and unavailable states. Each leading clause stays unchanged. This is a copy-only change with no behavior change; status handling, glyphs, actions and truncation are unchanged.

The four keys are machines.offline.stale, machines.listUnavailable.stale, machines.sessionRejected.stale and machines.requiresPro.stale. Only the last two catalog entries change. All nine macOS locales retain their wording and use the separator already present in their offline and unavailable entries. The four Swift defaults use literal dash characters because localize-changes cannot decode the existing Unicode escapes; the offline and unavailable text renders identically.

Validation

The same focused command runs on the separate regression and fix commits:

python3 scripts/ci/dispatch-focused-test.py cmuxTests/MachinesListStatusToolbarRowTests --ref <FULL_SHA> --runner glaeda-std-xcode-26.6

The dispatcher requires a suite selector, so the selector omits the .swift suffix.

  • Red at 7568a7303340c888be52b94c3c09c54f97eff3c7: run 36689405426, Test run with 4 tests in 1 suite failed after 0.061 seconds with 2 issues. Both failures are the comma-separated sign-in and Pro stale lines.
  • Green at 583b156c4b0bd22dce4ea88828e92a580f778c4c: run 36694512072, Test run with 4 tests in 1 suite passed after 0.062 seconds. The focused dispatch test job was skipped because the selected tests executed inside the build job; the build job passed.
  • python3 scripts/verify-local.py: all 6 selected checks ran and passed: Swift syntax, XCStrings structure, localization parity, app-source wiring, test wiring and feature flag policy. The wiring tool executed 13 tests with 0 skipped. No local app build, native test execution or app launch was performed.
  • Localization audit: ./scripts/localize-changes --work-file /tmp/cloud-sidebar-status-localization.json imported 16 non-English entries, covering the two changed keys in all nine locales including the updated English entries. The strict validator reports 10 catalogs, 9 locales: 0 parity errors.

Changelog

Changed: Keep all Cloud machine stale status separators consistent across locales.

🤖 Generated with Claude Code


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

Re-lands the Cloud machine stale-status punctuation change on the origin branch cloud-sidebar-status-kinds so it can run the UI lane and attach tour frames.

When cached Cloud machines stay visible, the toolbar now separates the sign-in and Pro statuses from "showing last known" with the same em dash used for offline and unavailable states. Only the machines.sessionRejected.stale and machines.requiresPro.stale catalog entries change; all nine macOS locales keep their wording. The Swift defaults now use literal em dashes instead of Unicode escapes.

The toolbar tests resolve expected copy through the same String(localized:defaultValue:) overload the presentation uses, so they stay green on non-English Macs. The resolved-copy comparison pins which catalog key each failure picks; a separate assertion checks every stale line, including offline, for an em or en dash, so a revert to the comma form fails.

Summary by CodeRabbit

  • Tests
    • Updated status-message checks to use localized copy and verify dash separators in failure and offline messages.