Repository navigation
fix: classify lock reads and dispose rejected OpenAPI bodies - #182
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.
A one-shot lock preflight
EACCEScould be treated as rename contention and admit an update, while rejected OpenAPI downloads could retain streaming response bodies. Keep read and rename error classification separate, and dispose rejected or redirected bodies through the existing cleanup path. Preserve load limits, complete successful responses and the bounded Windows observation retry.Validation: ten new/strengthened assertions fail against immutable pre-fix source; all 455 unit cases and the main release checks pass locally. A real local HTTPS probe changes five rejected-response cases from one or two live streaming sockets to no live sockets or further body writes. Thirty-five added cases include nineteen malformed-input cases, five real local installer process outcomes, two preflight denials and nine transport cases; one existing transport assertion is strengthened. Packed checks retain two names, reject nine old imports and fifteen private paths under actual TypeScript 6.0.3/7.0.2. Full matrix, source assertions, process-recovery and timeout boundaries are recorded in
docs/0.5.0-hardening.md.All five packed templates, the peer floor, production audit, formatting and 22 unchanged performance gates are qualified separately. Refs #159; closure waits for exact PR and merged checks. No package version, dependency, public surface, workflow or budget changes. The complete candidate graph/site and maintainer full review still gate publication.
The initial Windows run passed the publication assertions but fixture removal hit
EBUSYafter CLI termination. The test now waits for inherited installer/shell handles to close after stopping its owned installer. The 22-case publication suite, typecheck and formatting pass locally; hosted checks run on the corrected commit. Production source is unchanged by this test correction.