Config schema lint — structural warnings beyond the JSON-repair layer #54
Reference in New Issue
Block a user
Delete Branch "%!s()"
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?
Roadmap §3.6. JSON repair fixes syntax; nothing checks structure. A config can save with
"args": "-y foo"(string, not list), numeric env values, orenvas a list — and only fail later inside Claude.Design
lint_server(name, data) -> list[str]returning human-readable warnings (non-blocking):argspresent but not a list, or containing non-string itemsenv/headerspresent but not a dict, or with non-string valuescommandpresent but not a stringtypepresent but not one ofhttp/sse/stdiovalidate_serversas warnings (keep save allowed — these are warnings, not the existing blocking problems) or a separatelint_servers()the GUI shows in the validation label with a distinct prefix. Prefer: separate function; GUI shows first warning in the validation label when there are no blocking problems.Acceptance: pasting a server with
"args": "-y foo"shows a lint warning naming the server and field; a fully valid config shows none; save is never blocked by lint-level findings.