Skip to content

fix: round-trip serdes result on first run across ops#550

Open
ayushiahjolia wants to merge 1 commit into
mainfrom
serdes-roundtrip-first-run
Open

fix: round-trip serdes result on first run across ops#550
ayushiahjolia wants to merge 1 commit into
mainfrom
serdes-roundtrip-first-run

Conversation

@ayushiahjolia

Copy link
Copy Markdown
Contributor

Issue #, if available:
#406
#544

Description of changes:
Extends the step operation's first-run behavior (#543) to the remaining operations: on the first run, an operation now returns the serdes round-tripped value deserialize(serialize(result)) - instead of the raw in-memory result. This is the same value each operation reconstructs
on replay, so results stay identical across the first run and every replay when a non-identity custom SerDes is configured.

Covered operations:

  • wait_for_condition: returns the round-tripped state on success.
  • run_in_child_context: round-trips in every mode - normal, virtual, and large-payload (ReplayChildren). Large payloads still checkpoint only a compact summary; the full result is round-tripped transiently for the return value. This also flows through map/parallel, whose items and BatchResult go through the child handler.
  • invoke and callback need no change (invoke always deserializes from the checkpoint; callback returns only an id).

Testing:

  • Covered by unit test, integration test and cloud examples.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@ayushiahjolia
ayushiahjolia force-pushed the serdes-roundtrip-first-run branch from 6a28b7a to e1293c7 Compare July 17, 2026 23:00
@ayushiahjolia ayushiahjolia changed the title fix: round-trip serdes result on first run across operations fix: round-trip serdes result on first run across ops Jul 17, 2026
@ayushiahjolia
ayushiahjolia marked this pull request as ready for review July 17, 2026 23:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant