fix(cli): config --help example generated from the live schema, rot-proofed by test - #146
Open
plombeer31 wants to merge 1 commit into
Open
fix(cli): config --help example generated from the live schema, rot-proofed by test#146plombeer31 wants to merge 1 commit into
plombeer31 wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The
config --helpexample was hand-written long ago and no longer runs:it says
"version":1(supported versions start at 5, soconfig setrejects itoutright) and configures a
llamakey that was renamed tolocalModelsback inconfig v5. Anyone pasting the official example got a validation error.
The example is now assembled at module load from the live schema constants —
USER_CONFIG_VERSIONand alocalModels.urloverride — so it can never say aversion the parser refuses. The help also states the actual
setsemantics: keysleft out of the payload are filled with defaults, and the result is validated
before anything is written.
Rot-proofing
The new test does not check the example against a copy of itself — it extracts the
payload straight out of the rendered help text with a regex and feeds it through
the real
config setpath against a temp state dir, then asserts the writtenfile carries the values the example promises. If the schema moves and the help is
left behind again, this test fails instead of a user's paste.
Verified the test fails against the previous help text (no extractable valid
payload) and passes with the generated one.
Testing
npm run lint(tsc) cleannpx vitest run src/cli/config-command.test.ts— 9/9 (8 existing + the new rot-proofing test)