Summary
The plugin invocation-level hook info objects lack the operations-state surfaces the JS SDK exposes on every invocation hook.
GA scope update: execution input/result payload surfaces (execution_input, execution_result) have been moved OUT of GA conformance scope — they are experimental and no longer asserted (see aws/aws-durable-execution-conformance-tests#72). The remaining IN-SCOPE gap for this issue is the operations-state visibility below. The payload fields remain listed at the end as post-GA/experimental parity items.
In-scope missing fields (verified against src/aws_durable_execution_sdk_python/plugin.py)
operations — the map of checkpointed operations (JS: operations on InvocationBaseInfo, available at invocation-start AND invocation-end; convert via the existing OperationInfo.from_operation)
updated_operations — operations externally updated since the previous invocation (JS: InvocationInfo.updatedOperations, from the invocation input's updated-operation ids; start hook)
Evidence
Conformance requirement plugin/10-19 (aws/aws-durable-execution-conformance-tests#72): Python fails exactly the three operations-map assertions (operationsCount at first start and on both end records, updatedOperationsCount at replay start) — live run 22/23, sole red is 10-19. Handler: plugin_invocation_info_shape.py (#615), a canonical dump — adding the fields flips it green with no test changes.
Post-GA / experimental parity items (not currently asserted)
execution_input (JS executionInput), execution_result (JS InvocationEndInfo.executionResult, raw value semantics)
Suggested fix
Add the two map fields to the invocation info dataclasses, populated from the durable invocation input (operations + UpdatedOperationIds); consider lazy construction for operation-heavy executions. Conformance 10-19 flips green with no test changes.
Summary
The plugin invocation-level hook info objects lack the operations-state surfaces the JS SDK exposes on every invocation hook.
GA scope update: execution input/result payload surfaces (
execution_input,execution_result) have been moved OUT of GA conformance scope — they are experimental and no longer asserted (see aws/aws-durable-execution-conformance-tests#72). The remaining IN-SCOPE gap for this issue is the operations-state visibility below. The payload fields remain listed at the end as post-GA/experimental parity items.In-scope missing fields (verified against
src/aws_durable_execution_sdk_python/plugin.py)operations— the map of checkpointed operations (JS:operationsonInvocationBaseInfo, available at invocation-start AND invocation-end; convert via the existingOperationInfo.from_operation)updated_operations— operations externally updated since the previous invocation (JS:InvocationInfo.updatedOperations, from the invocation input's updated-operation ids; start hook)Evidence
Conformance requirement plugin/10-19 (aws/aws-durable-execution-conformance-tests#72): Python fails exactly the three operations-map assertions (
operationsCountat first start and on both end records,updatedOperationsCountat replay start) — live run 22/23, sole red is 10-19. Handler:plugin_invocation_info_shape.py(#615), a canonical dump — adding the fields flips it green with no test changes.Post-GA / experimental parity items (not currently asserted)
execution_input(JSexecutionInput),execution_result(JSInvocationEndInfo.executionResult, raw value semantics)Suggested fix
Add the two map fields to the invocation info dataclasses, populated from the durable invocation input (operations +
UpdatedOperationIds); consider lazy construction for operation-heavy executions. Conformance 10-19 flips green with no test changes.