Two stored shapes broke the config form:
* A scalar under a field that is now an object. News' dynamic_duration
was a boolean and is becoming an object; render_nested_section did
`key in true` and the whole page failed to render. Look into dicts
only, and carry a legacy boolean over as the object's `enabled`, so
the next save upgrades it without switching the feature off.
* A custom feed logo with a path but no id. The template always emitted
an empty `logo.id` input, which the save route parsed to null, failing
the id's string type on every save. Emit it only when there is an id,
as custom-feeds.js already does.
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>