Fixes #25675

Merged
AU
7d ago
+539-48

Summary

Fixes #25675. Interface Size changes mounted app and Settings text live and has a visible per-row Reset button. Loading Indicator style, animation status, size, line width and visibility settings reach existing indicators through the shared Settings apply path.

The provider/controller already wrote and previewed values; its consumers were stale. This fixes constant type sizes, incomplete scale observation, fonts assigned only at construction, delayed indicator publication, and terminal-title activity bypassing its toggle. Mounted Find and Files fonts refresh in place; Home reference fonts scale once. Pure omnibar metrics retain reference sizes while the live accessor observes Interface Size. Narrow Settings labels wrap clearly when the font grows.

Current head: a7d010526889143dcfeb9d48459b9e2a7d6c3ac5, merged with base ee54f306a1ff5fb09d9f347d2ad8fe6aa7176cf7. Both sides of the Settings CSS conflict are preserved. Remote head was checked immediately before the plain push; published history was not rewritten.

Validation

Focused native command, executed remotely through cmux-ci run --class light --script scripts/ci/package-test-lane.sh --ref SHA:

scripts/ci/package-test-lane.sh suite Packages/macOS/CmuxNext SettingsLiveAppearanceTests,OmnibarDensityTests
  • Final-head native job 5ffee00c853b21b41ffcf092 executed 7 SettingsLiveAppearanceTests and 12 OmnibarDensityTests: 19/19 passed, exit 0, workspace reset. The test runner also reported two offscreen browser panels still alive at process exit; it did not fail the suite. The base merge preserves its document-loaded callback alongside this PR’s scale observer.
  • Settings regressions cover a mounted indicator's live preview, type/reset/persistence, mounted Find and Files text, single Home scaling, and working-title visibility. Omnibar tests add pure/current scale and reset coverage.
  • Red/green proof for mounted Files: test-only f025a0db97c66276e0507eccb038ecf7f24304fa, job 30c4dffa91bb25f0d2721d70, executed seven Settings tests and failed the three expected stale-font assertions; repaired 29e1af22236893aeea8673322c32e0506b27082e, job b8018d55686cfab622d8365f, executed 7/7 successfully using the same Settings suite filter.
  • Earlier behavioral regression ref ce139f7, job ce48c27aed3f45e7d5910c4f, failed six stale-rendering expectations; the Home test-only ref 4c20ea90a36101cf2e498aaf3965e276848da228, job e86e7bd84c2f4928b5595019, failed its single-scaling assertion.
  • Required lightweight current-source prepush gate passed with no added violations; diff check passed. A fresh correctness-first subagent reviewed all 30 changed files and the merge integration on this exact head and returned SHIP.
  • Web verification runs remotely. Run 41193623803 tested f5b597f819 plus the exact committed browser-test repair: 17 passed, 0 failed; 22 pages and 138 cards, 0 column breaks. The remotely formatted artifact matches the committed file; edited-file lint and all-file typechecking passed. Run 41195211236 repeated these checks on the exact final head: 17/17 tests passed, 22 pages and 138 cards with 0 breaks, formatting passed, edited-file lint reported 0 warnings/errors, and all 3435 files typechecked. Heavy checks stay off this Mac; the web push hook delegates to CI with CMUX_LOCAL_HEAVY_CHECKS=0.

Observed / Not run

Final-head tagged build bde949e1684a63afdbd320c9 passed the real-app tour on a capture mini: preview and commit Interface Size 16; enlarged light/dark layouts at 446 and 641 px Settings widths; click the actual row Reset and observe Density default and smaller native/Settings typography. The capture driver exited 0 with all 15 steps successful and no privacy findings. The primary agent and a fresh independent visual reviewer inspected baseline/preview, enlarged light/dark and post-Reset settled frames; both passed these tested states on the exact head. The preceding GitHub Release compile passed.

The tour records a successful CLI get command but does not retain its returned value. Palette and MCP interactions were not rechecked. Moving indicator animation, broader theme combinations and input-to-frame latency were not visually established by this tour.

No capture: The approved publisher refused image upload because this host lacks its required agent-author privacy configuration; real-app captures remain private, and the check was not bypassed.

Viewed after image: yes
Visual verdict: PASS on a7d010526889143dcfeb9d48459b9e2a7d6c3ac5 for live size/reset behavior and separated metric labels and controls in settled light and dark at 446 and 641 px Settings widths.

Performance

No perf numbers: This repairs settings propagation and mounted rendering behavior; the regression suites and real-app tour verify those outcomes, but no before/after timing benchmark was run.

CI findings

The PR's visible Reset exposed a real CI test-oracle defect: it excluded hidden Reset accessories but counted visible ones as editor width, reporting the reserved 22 px slot + 8 px gap as a 30 px misalignment. The repair measures editors consistently and separately verifies Reset visibility/enabled transitions, restored values, nonoverlap and row bounds at 446, 641 and 1000 px. It keeps the original tolerances and scans every page. The old head failed twice, while its base passed.

Earlier release-notary signing-label/hook failures and the reconnectPrompt lint warning matched the base. The latest base includes their fixes (#29154 and #29160), now merged into this branch. Current-head checks are being classified from their root logs; pending checks are not reported as passes.

Tagged build

25675-settings-sliders-apply is built and published from final head a7d010526889143dcfeb9d48459b9e2a7d6c3ac5, fleet job bde949e1684a63afdbd320c9, artifact SHA-256 04e8b543dd842ecb57dc7b4d9ab05e4ef083b6da98dd0d54ce6bd87326e3e1d5. The terminal receipt confirms workspace reset. The publisher reports backend local, so this verifies desktop Settings behavior without a shared Cloud URL. Opener health, tag listing and ?check=1 passed without launching it. In Settings → Appearance, change Interface Size and click its row Reset to see text resize immediately; Loading Indicator controls use the same Settings owner.

The active local app at 58c4aafbfa5058dcab565f7679c7ba931e2b0fb8 is retained to preserve live user work; publishing updated the cached tag without replacing that process. No final-head local launch is claimed.

Changelog

Fixed: Appearance and loading indicator settings apply live, and Interface Size has a visible Reset button.