chore(protocol): auto-serialize SerializedValue in validators#40798
Open
dgozman wants to merge 2 commits into
Open
chore(protocol): auto-serialize SerializedValue in validators#40798dgozman wants to merge 2 commits into
dgozman wants to merge 2 commits into
Conversation
Move SerializedValue conversion from manual `serializeResult`/`parseResult` call sites in dispatchers and channel owners into the validator pipeline. - Rename the raw protocol struct to `SerializedArgumentValue`; the name `SerializedValue` is now a marker that the generator turns into a TS `UnserializedValue = any` alias and a `tSerializedValue` validator that serializes/deserializes based on direction. - `ValidatorContext`: replace `binary: 'toBase64'|'fromBase64'|'buffer'` with `direction: 'toWire'|'fromWire'` + optional `rawBuffers?: boolean`. `tBinary` rewritten against the new context. - Drop ~50 manual conversion call sites across dispatchers and channel owners. The `SerializedArgument`-with-handles flow stays manual.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
After moving SerializedValue handling into the validator, the client ExpectResult and protocol FrameExpectResult are structurally identical. The dispatcher can return the server result directly, and the client can return the channel result directly. Alias `ExpectResult` to `channels.FrameExpectResult` and drop the unused client `ExpectReceived`.
f9ff1f5 to
cc0cdcb
Compare
Contributor
Test results for "MCP"3 failed 7067 passed, 1068 skipped Merge workflow run. |
Contributor
Test results for "tests 1"3 flaky41757 passed, 850 skipped Merge workflow run. |
pavelfeldman
approved these changes
May 13, 2026
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
SerializedValueconversion from manualserializeResult/parseResultcall sites in dispatchers and channel owners into the validator pipeline.SerializedArgumentValue; the nameSerializedValuebecomes a marker that the generator emits asUnserializedValue = anyon the TS side andtSerializedValueon the validator side.ValidatorContext.binaryis replaced withdirection: 'toWire' | 'fromWire'+ optionalrawBuffers?: boolean.tBinaryrewritten against the new context.SerializedArgument-with-handles flow stays manual.