fix(settings): accept absent typed defaults with strict settings drop-ins #299

Merged
karsten merged 1 commit from fix/typed-settings-optional-defaults into main 2026-11-07 05:31:08 +00:00
Owner

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.

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.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
harness/core!299
No description provided.