{"version":"2.1.242","anchor":"malformed-modelpicker-and-modelpricing-settings-now-warn-ins","canonical_anchor":"malformed-modelpicker-and-modelpricing-settings-now-warn-ins","heading":"Malformed modelPicker and modelPricing settings now warn instead of being silently ignored","tier":"use","area":"Settings","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.242\/e\/malformed-modelpicker-and-modelpricing-settings-now-warn-ins","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.242","markdown":"### Malformed `modelPicker` and `modelPricing` settings now warn instead of being silently ignored\n\nBad modelPicker or modelPricing settings are now dropped with a warning naming the file and path.\n\n**What**\n\nTwo new validators drop bad values and say so, naming the settings file and the path within it. A `modelPicker` that is not an object with an `options` array is dropped whole, a non-boolean `replaceBuiltInOptions` is dropped, and individual malformed option rows are dropped while the remaining rows still apply.\n\n**Details**\n\n- `modelPricing` is dropped if it is not an object, if `multiplier` is not a number in the range (0, 1], or per-model `overrides` rows are malformed.\n- Keys named `constructor` or `__proto__` in `overrides` are refused.\n- Validation results are memoised per settings file, so the warnings do not repeat on every read.\n- Runs on settings load; nothing gates it.\n\n**Evidence**\n\n`\"multiplier\" must be a number in (0, 1]. It was ignored.`\n\n- Area: Settings\n- Names: `modelPicker`, `modelPricing`, `replaceBuiltInOptions`\n- Tier: Use it now\n- Useful: 3\/5\n- Signal: 3\/5"}