fix(settings): accept absent typed defaults with strict settings drop-ins #299
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/typed-settings-optional-defaults"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Live rollout exposed that CLI builds a typed default object with optional own properties set to undefined (thinking/modelRoles/review selections). Strict drop-in validation merged those JavaScript fields into an effective document and rejected a valid gateway-only drop-in on agents without explicit reasoning/role/review overrides.
Capture installation defaults as a JSON-shaped snapshot, dropping only undefined trusted defaults before unchanged strict validation. Do not salvage/ignore invalid disk entries or invent model/context/authority selections. Malformed types, explicit null and unknown settings still fail closed and retain the last good active snapshot. Also removes accidental mutable aliasing of constructor defaults.
Regression test uses the actual CLI default shape, enabled dispatcher with absent optional model metadata, WebUI drop-in and a later invalid null edit. Normal typecheck/build and full suite passed: 1594 pass, 1 existing skipped fixture, 0 failed. No dependency, model/context, credential or access-policy changes. This fixes actual WebUI activation for Che/Randy while preserving their configuration.