Skip to content

Add hook-info field-shape conformance handlers - #602

Draft
wangyb-A wants to merge 2 commits into
mainfrom
plugin-hook-field-shape
Draft

Add hook-info field-shape conformance handlers#602
wangyb-A wants to merge 2 commits into
mainfrom
plugin-hook-field-shape

Conversation

@wangyb-A

@wangyb-A wangyb-A commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds 4 conformance handlers (conformance-tests/src/main/java/plugin/Plugin{InvocationInfo,OperationInfo,AttemptInfo,OperationChange}Shape.java) + template_plugin.yaml entries implementing plugin hook-info FIELD-SHAPE requirements 10-19..10-22 from aws/aws-durable-execution-conformance-tests#72 (land that PR first).

Each handler logs ONE single-line JSON record per hook event: a CANONICAL camelCase DUMP of that hook's own info record — every component the record type exposes is mapped one-to-one to the canonical name (timestamps Instant.toString(), succeededoutcome token, error message strings; map fields as <name>Count integers; null/unexposed fields OMITTED — a missing key fails its assertion, which is the parity signal). Real SDK APIs only; spotless-clean.

Live validation (us-west-2): 17/20 — THREE DELIBERATE FAILURES (SDK parity gaps, kept failing by design)

Req Failure Missing Java API surface
10-19 invocation info shape InvocationInfo(requestId, durableExecutionArn, isFirstInvocation, executionStartTime) has no execution input and no operations/updated-operations maps; InvocationEndInfo has no execution result. (Its end-info isFirstInvocation and the start timestamp PASS — ahead of JS on the former.)
10-20 operation-end result OperationEndInfo exposes no serialized-result accessor (same root gap as the 10-14 red test / #581).
10-22 change-item shape OperationChangeItemInfo lacks result, attempt, and a replay indicator — JS/Python change items are full operation infos.
  • ✅ 10-21 passes (attempt/user-function info at parity), plus the entire mapped 10-1..10-18 regression.

Suggested fixes: converge on one shared operation-info field set (status/result/error/attempt/isReplay) across OperationInfo/OperationEndInfo/OperationChangeItemInfo, and enrich the invocation infos with execution input, the operations/updated-operations maps, and the execution result to match InvocationBaseInfo/InvocationEndInfo in JS.

@wangyb-A
wangyb-A requested a deployment to ai-pr-review-runtime August 6, 2026 23:55 — with GitHub Actions Waiting
@wangyb-A
wangyb-A requested a deployment to ai-pr-review-runtime August 6, 2026 23:55 — with GitHub Actions Waiting
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