Conversation
…#115) Co-Authored-By: Claude Opus 4.6 <[email protected]>
…ision (#114) Co-Authored-By: Claude Opus 4.6 <[email protected]>
Co-Authored-By: Claude Opus 4.6 <[email protected]>
#116) Co-Authored-By: Claude Opus 4.6 <[email protected]>
…ess (#119) Co-Authored-By: Claude Opus 4.6 <[email protected]>
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Co-Authored-By: Claude Opus 4.6 <[email protected]>
…#115) Co-Authored-By: Claude Opus 4.6 <[email protected]>
Co-Authored-By: Claude Opus 4.6 <[email protected]>
…117) Co-Authored-By: Claude Opus 4.6 <[email protected]>
…#114) Co-Authored-By: Claude Opus 4.6 <[email protected]>
Now that headers are always array-of-tuples at runtime (fixed in #114), the Object.entries fallback in meteredBytes and the Record<string, string> type in isCommandRecord are dead code. Co-Authored-By: Claude Opus 4.6 <[email protected]>
… is undefined When record.body was undefined, the fallback checked typeof record.body === 'string' which is false for undefined, so it always fell back to new Uint8Array() regardless of format. Now passes the format explicitly so string reads get '' and bytes reads get new Uint8Array(). Also extracts S2S convertRecord as exported convertProtoRecord for testability. Co-Authored-By: Claude Opus 4.6 <[email protected]>
…ack tests - S2S convertProtoRecord: duplicate headers, bigint safety, string/bytes decode - Cross-transport: fetch/proto and S2S produce matching ReadRecord shapes - RetryReadSession: undefined body defaults to '' for string, Uint8Array for bytes Co-Authored-By: Claude Opus 4.6 <[email protected]>
Keeps the S2S transport's export surface private. The function now lives alongside related helpers (decodeProtoReadBatch, fromProtoSequencedRecord) in proto.ts, imported by both S2S and tests. Co-Authored-By: Claude Opus 4.6 <[email protected]>
…ecord to proto.ts Addresses review feedback: convertProtoRecord is no longer exported from the S2S production module. It now lives in the shared proto.ts alongside related helpers. Also fixes TS strict-null errors in test array accesses. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Instead of silently defaulting to 0 via ?? 0n, convertProtoRecord now throws an S2Error if seqNum or timestamp is undefined. A record without these fields is malformed and should not be silently accepted. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Greptile OverviewGreptile SummaryThis PR addresses 7 distinct bug fixes across error handling, data parsing, and pagination logic. The changes prevent data loss from duplicate HTTP headers, fix uint64 overflow issues, resolve browser-specific network error detection, correct SSE boundary parsing to handle all newline combinations, and fix pagination logic that stopped early when filtering deleted resources. All fixes include comprehensive regression tests. Confidence Score: 5/5
Important Files Changed
Last reviewed commit: 9bfc41c |
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.
Fixes #115, fixes #114, fixes #117, fixes #116, fixes #119, fixes #118, fixes #120.