Skip to content

test(conformance): plugin hook-info field-shape handlers (10-19..10-23) - #602

Draft
wangyb-A wants to merge 4 commits into
plugin-hook-parity-fixfrom
plugin-hook-field-shape
Draft

test(conformance): plugin hook-info field-shape handlers (10-19..10-23)#602
wangyb-A wants to merge 4 commits into
plugin-hook-parity-fixfrom
plugin-hook-field-shape

Conversation

@wangyb-A

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

Copy link
Copy Markdown
Contributor

Summary

Adds 5 conformance handlers (conformance-tests/src/main/java/plugin/Plugin{InvocationInfo,OperationInfo,AttemptInfo,OperationChange,ContextInfo}Shape.java) plus template_plugin.yaml entries implementing plugin hook-info FIELD-SHAPE requirements 10-19..10-23 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, with null/unexposed fields OMITTED so a missing key fails its assertion. Real SDK APIs only, spotless-clean.

Stacked PR

Top of a 2-PR stack — base is the parity-fix branch, not main.

  1. fix(plugin): surface missing state fields on hook info records #618 — SDK parity fix (plugin-hook-parity-fix), exposes the missing hook-info fields.
  2. This PR — the handlers that assert them.

The dependency is real, not cosmetic: the final commit here dumps operations/updatedOperations, isReplay, attempt, executionInput, executionResult and the operation result, which only exist after the parity fix. Review the base PR first; merge it first.

Testing

Live plugin conformance suite (us-west-2), run against the full stack: 23 cases, 0 failures, 2 skipped — 21/21 covered, up from 18/21.

Requirement Before parity fix With stack
10-19 invocation-info shape FAILED PASSED
10-21 attempt-info shape FAILED PASSED
10-22 operation-change shape FAILED PASSED
10-20, 10-23 PASSED PASSED
10-1..10-13, 10-15..10-17 PASSED PASSED

The three prior failures were the deliberate parity signals these handlers exist to produce; the base PR resolves all three.

  • ✅ 10-20 and 10-23 pass (incl. OperationInfo.status, subType tokens, and correct isReplayingChildren semantics), plus the entire mapped 10-1..10-17 regression.
  • 10-14 and 10-18 report UNCOVERED because their handlers live on separate branches — expected, not a regression. The operation-result payload gap stays tracked by behavioral test 10-14 (Add plugin conformance case 10-14 (known SDK gap) #581), out of GA shape-suite scope.

One caveat on evidence: the runner asserts the ExpectedLogs field-presence probes against CloudWatch during the run and then deletes the stack, which takes the log groups with it. The passing assertions are the record; the raw emitted hook records were not retained as an artifact.

Closes #604

@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
@wangyb-A wangyb-A changed the title Add hook-info field-shape conformance handlers Plugin hook-info field shape: conformance handlers + SDK parity fixes Aug 10, 2026
@wangyb-A
wangyb-A force-pushed the plugin-hook-field-shape branch from fd7c2c6 to 0bd1029 Compare August 10, 2026 23:44
@wangyb-A wangyb-A changed the title Plugin hook-info field shape: conformance handlers + SDK parity fixes test(conformance): plugin hook-info field-shape handlers (10-19..10-23) Aug 10, 2026
@wangyb-A
wangyb-A changed the base branch from main to plugin-hook-parity-fix August 10, 2026 23:44
Alex Wang added 4 commits August 11, 2026 01:11
The parity fix beneath this commit exposes fields the shape handlers
could not previously read. Dump them so 10-19, 10-21 and 10-22 assert the
real surface rather than recording its absence:

- 10-19: operationsCount and updatedOperationsCount on invocation-start,
  operationsCount and executionStartTimestamp on invocation-end.
- 10-21: isReplay on attempt-start and attempt-end, alongside the
  distinct isReplayingChildren (dumped unasserted).
- 10-22: attempt and isReplay on each change delta item.

The handler javadocs previously documented these as missing Java
surfaces; that prose is updated to describe what is now exposed and to
note that payload fields remain deliberately absent.
@wangyb-A
wangyb-A force-pushed the plugin-hook-field-shape branch from 0bd1029 to 2b28744 Compare August 11, 2026 04:34
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.

Plugin hook info records missing state/metadata fields at invocation, attempt, and change hooks

1 participant