Repository navigation
fix(auth): define normalize input-open failure diagnostics - #8
Merged
Merged
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.
Summary
Define
normalizediagnostics for missing or unreadable inputs: retain exit1and empty stdout, and report the input path, error type and message on stderr without a Python traceback. Addresses #7.Why
The README and tests define resilient per-line parsing but leave startup failure diagnostics unspecified. This closes a CONTRACT_GAP without claiming a violation of a prior no-traceback guarantee.
The baseline evidence and classification were posted before the signed commit and this PR.
Behavior change
OSErroronly during automatic input detection and input opening; preserve existing output files.str(exc)whenOSError.strerrorisNone.0, per-line diagnostics and--error-outputJSONL unchanged. Startup failures do not produce per-record error rows.Validation
strerrorregression also failed before its fix and passed afterward.9b8ae31b7ea89eddf7bb4f8b1ce6c131e781b627; applied files match the tested candidate. WSL tests ran on that reconstructed candidate.git diff --checkpass. Local Python 3.11 was unavailable; GitHub Actions on Python 3.11 passed all four mini-labs: auth 24, socket 8, permission 6, process 30.Compatibility
Exit codes, record schemas, source detection and the normalize/filter/summary workflow remain unchanged. Consumers parsing startup traceback text will see the intentional diagnostic change. Output failures remain outside the new catches; no dependency is added.