Repository navigation
Conversation
cfal
added a commit
to cfal/shoes
that referenced
this pull request
Oct 18, 2026
Expand legacy and encrypted VLESS coverage across peer transports, Vision transitions, session lifecycle, replay isolation, and chained connections, with Xray updated to 26.10.17. Preserve complete XHTTP HTTP/2 responses when peers gracefully stop an unfinished upload while continuing to reject truncated responses and incomplete packet uploads. Isolate the pinned sing-box server TLS 1.2 shutdown limitation in a test-only workaround, retaining an ignored reproducer and a reference to SagerNet/sing-vmess#16 for removal when the peer pin includes the fix.
cfal
force-pushed
the
vision-half-close-fix
branch
from
October 27, 2026 01:55
336bc5f to
fff99f3
Compare
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.
VLESS Vision connections still close both directions when the client finishes uploading data, so a destination that waits for EOF before replying loses its response.
a0c58542fixesCloseafter DIRECT, butVisionConnstill doesn't exposeCloseWrite, so sing-box falls back toCloseon upload EOF. this keeps that fix and adds half-close through TLS before DIRECT and through the raw carrier afterward. pending VLESS headers are sent first, and carriers without half-close support still fall back to a full raw close. sing-box's pre-DIRECT REALITY full-close workaround is unchanged.the inline repro sends 65,536 bytes through sing-box, calls
CloseWrite, then waits for the response. the destination only replies after receiving EOF. it runs ordinary VLESS as a control, then Vision with the same setup. no other proxy or external test dependencies are needed.reproduced on sing-box
dfb80349with sing-vmessa0c58542, including the separate DIRECT close fix.SING_BOX_BINARY=/path/to/sing-box go test -v -count=1 -run TestVisionHalfClose repro_test.gobefore:
after: