Skip to content

Plugin invocation hook infos missing operations and updated-operations maps #617

Description

@wangyb-A

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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions