settings schema: export layout.focusFollowsMouse, not the renamed focusPaneOnScroll
Every web bundle build on feat-cmux-next fails, so fleet runs on merged heads stop before any test runs. The base autofix's Mac export job fails the same way, and that's the job that would regenerate the stale file.
settings: 63 strings missing
settings.layout.focusPaneOnScroll: missing en
settings.layout.focusPaneOnScroll.help: missing en
...
2c661dec960b (lawrencecchen) renamed layout.focusPaneOnScroll (default on) to layout.focusFollowsMouse (default off) at the user's request. It changed the Swift descriptor and the string catalog in 21 locales. It didn't change the committed schemas/settings/settings-schema.json, which is a Mac-generated export. webviews/scripts/pages/gen-strings.mjs takes the Settings page's keys from that schema and looks each one up in the catalog. The old keys are gone from the catalog, so all 3 keys × 21 locales come up missing. Base autofix run 39429736313 fails this way in its action exports (Mac) job, inside build-web-bundles.sh. That means it can't regenerate the schema that would fix it, so it stays stuck.
This PR replaces the one schema entry with what the descriptor in SettingsSchema+ColumnLayout.swift exports: the key, path, title/help/summary keys and English text, default: false, the two added keywords, and the order-list entry. Nothing else changes. Once the bundles build, the base autofix's Mac export can regenerate the rest exactly: docs/mdm, the source stamp and the defaults snapshot. Translations needed no change: the catalog already has settings.layout.focusFollowsMouse* in every locale.
Which defaults are right: the Swift sources. layout.focusFollowsMouse defaults to false (2c661dec960b). Opt-Cmd-Left/Right belong to focusLeft/focusRight (PaneActionCatalog.swift, ddd7c7b9a9a6), and prevSidebarTab/nextSidebarTab keep only Ctrl-Cmd-[/] and Ctrl-PageUp/Down (KeyBindingDefaults.swift). So the PR autofix's regenerated schemas/defaults/cmux-next.json is the correct one, and the committed snapshot is stale. This PR leaves the snapshot alone, so it doesn't carry a defaults change. The base autofix will refresh it.
Verification
node webviews/scripts/pages/gen-strings.mjs, which is what the bundle build runs:
- base 10700f8428eb: exit 1,
settings: 63 strings missing, allsettings.layout.focusPaneOnScroll*. - head fb43afe7dd70: exit 0, nothing missing.
python3 -I scripts/cmux-next/gen-settings-sources.py --check passes on the head. defaults_guard.py check-fresh was already red on base (stale exports and snapshot), and it stays red until the Mac export lands. It now names the rename instead of failing earlier.
Proof
Not UI: a generated schema file is brought in line with its Swift source.
Changelog
none
🤖 Generated with Claude Code
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Fixes the stale settings schema entry so web bundle builds stop failing with 63 missing strings.
The Swift descriptor renamed layout.focusPaneOnScroll (default on) to layout.focusFollowsMouse (default off), but the committed schema still exported the old key. Since gen-strings.mjs reads schema keys against the string catalog, all 63 settings.layout.focusPaneOnScroll* translations went missing and every bundle build failed.
Updates the single schema entry (key, path, title/help/summary text, default, and keywords) to match SettingsSchema+ColumnLayout.swift. The string catalog already contains the new keys in all 21 locales, so no translation changes are needed.