fix: reject negative show character limits - #37
Open
Gambit-Checkmate wants to merge 1 commit into
Open
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 & why
Closes #21. Negative
show --maxvalues currently reach Python's negative slicing and drop trailing characters instead of acting as a length limit. Validate the option during argument parsing and return a usage error (exit 2) before loading transcripts.Changes
show --max.Checklist
Verification
Developed with AI assistance on Windows. The two negative-limit tests failed against the original implementation because transcript loading was reached; all 43 tests pass after the fix (baseline: 37).
Ruff lint and formatting checks pass for both changed Python files. The full repository lint check still reports 14 pre-existing diagnostics in unrelated files; the baseline full formatting check also flagged three unrelated files. Those files are intentionally untouched.