gen-strings: best-effort strings in the Mac export jobs, so a stale settings schema can regenerate
Problem. After #22577 (633c661c), the exported settings-schema.json named settings.choice.shuffleDaily, a key no catalog had. Strict webviews/scripts/pages/gen-strings.mjs failed on it (settings: 21 strings missing). Effects:
- Every gallery build on cmux-lawrence failed:
/live/and 12/wt/previews, all with this one error. - The schema couldn't regenerate itself. The base autofix's
action exports (Mac)job runs "Build the web bundles" (strict) before "Regenerate the settings exports", so it failed at the first step on every push (run 39514979808). The job that would fix the schema never got to run.
afffd40083ca fixed today's instance by hand: it put the old key back in the catalog. This was the second such deadlock on 10-20; the first was after the layout.focusPaneOnScroll rename, described in #22543.
Change. This is item 2 of #22543 on its own. That PR has no owner and conflicts with the base.
- The
Build the web bundlesstep in both Mac export jobs (cmux-next-base-autofix.ymlandcmux-next-pr-autofix.yml) now setsCMUX_STRINGS_BEST_EFFORT=1. Those bundles only host the export tests and are never shipped or cached. A missing translation there becomes a warning, so regeneration can run. gen-strings.mjsreads the variable as--best-effortfor writes only.--checkstays strict.- Shipped, nightly and published builds don't set the variable and stay strict.
- The gallery host will also set it (manaflow-ai/cmux-gallery#16), so a missing translation can't take down every preview again.
The first commit (a hand edit of the schema) is undone in this PR's diff. The base fixed the catalog instead, and the schema is generated.
Verified (local, at the stale-schema base 985237c7):
node scripts/pages/gen-strings.mjsexits 1.CMUX_STRINGS_BEST_EFFORT=1 node scripts/pages/gen-strings.mjsexits 0.CMUX_STRINGS_BEST_EFFORT=1 node scripts/pages/gen-strings.mjs --checkexits 1.- actionlint is clean on both workflows, and
vp fmt --checkis clean ongen-strings.mjs.
Not run: the Mac export job with the variable set. It runs on the next base push that changes settings or actions.
Agent session: cosmic-gray