From 7f3e67bce036b38b608334473f9fb41fbb7e3c6a Mon Sep 17 00:00:00 2001 From: Codex Date: Sat, 29 Aug 2026 13:23:00 +0300 Subject: [PATCH] test: pin the fr entry to the fr dictionary via a live-bundle mutant (#371) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The entry-removed variant died at build time (tree-shaking drops the fr chunk and the manifest emit guard refuses the bundle) — an infrastructure failure, not a red guard. The mutant now swaps the fr entry to the German loader instead: everything builds, parity units stay green, and only the French smoke catches the wrong dictionary. Issue: #371 User-Visible: no --- scripts/mutation-gate.mjs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/mutation-gate.mjs b/scripts/mutation-gate.mjs index 7763cf8c..7a7bdc12 100644 --- a/scripts/mutation-gate.mjs +++ b/scripts/mutation-gate.mjs @@ -681,14 +681,14 @@ const MUTANT_DEFINITIONS = [ }], }, { - id: 'french-locale-entry-removed', + id: 'french-locale-wrong-dictionary', guard: 'node demo/smoke_french_locale.mjs', - because: 'dropping the fr registry entry silently reverts French profiles to English — the ' - + 'community contribution must stay wired (#371)', + because: 'a French profile silently reading another dictionary is invisible to parity units — ' + + 'only the bundle smoke proves the fr entry loads the fr chunk (#371)', patches: [{ file: 'src/i18n/registry.ts', - find: " { code: 'fr', nativeLabel: 'Français', loadDictionary: loadFrench },\n", - replace: '', + find: " { code: 'fr', nativeLabel: 'Français', loadDictionary: loadFrench },", + replace: " { code: 'fr', nativeLabel: 'Français', loadDictionary: loadGerman },", }], }, {