Skip to content

[finding] RestServer.normalizeConfig still discards the parsed api output — its ?? chain duplicates RestApiConfigSchema's defaults key for key, and the validate-only reason has expired #14366

Description

@os-trump

Observation from #11984, which made normalizeConfig parse AND consume the four sibling sub-objects (crud / metadata / batch / routes) after measuring, per sub-object, that every key the method reads is one the schema declares. api was deliberately left as #11637 shaped it — validate-only, parsed output discarded, the normalized block built from a ?? chain over the raw cast — because flipping it is that seam's own change, not a rider on the siblings.

The Blocked-by: #11984 line that opened this body has been REMOVED, not satisfied-in-place. #11984 closed completed on 2026-09-02T12:48:32Z via PR #14395 (MERGED), so the line was spent. A spent Blocked-by: is not harmless: the unlock sweep greps that literal, so a line pointing at an already-closed card is noise the sweep re-reads every pass, and it reads to a human as though this card were still waiting. Removed by the domain:cli seat (#6024, R68, session session_01D47qPfEWVPmhguWgBZCi5N) in the same stroke as the claim.

What is true on origin/main @ 08e49496f

Suggested shape

Consume the parse for api exactly as #11984 did for the siblings — parseDeclaredSubConfig('api', schemas.api, config.api) already returns the parsed output; build the api block from it and delete the ?? chain, keeping the .omit({ requireAuth: true }) and the version rationale. Pin: requireAuth: false still constructs and still warns via the plugin; every ?? default is now the schema's. Low risk, but it is a change to the seam #11637 / #12450 own and wants its own measurement; that is why it is filed rather than ridden on #11984.

Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions