fix(execution): wire resumeExecution resolver and guard the gap - #79
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
resumeExecutionshipped in the durable-execution change as a declared Mutation with a tested handler - but no AppSync resolver was ever wired to the field, so calls returned null in dev. Post-deploy verification caught it. The handler tests, CI, and synth all passed because nothing asserted that a schema field has a resolver behind it, so this PR fixes the field and closes the class of defect that hid it. Also included: reconciliation of the timeout watchdog's IAM grants, which verification flagged as diverging from what was recorded.What changed
Resolver wiring + parity guard (
bc01b54)Mutation.resumeExecutionis wired to the execution data source, structurally identical tostartExecution(same data source, UNIT kind, same request and response templates) - confirmed by comparing the synthesized resources, not just the source.Mutation.resumeExecution, then restored.Watchdog IAM reconciliation (
8432733)ScanandUpdateItemon the executions table where the design decision said reads-only. Source and history reconciliation showed the decision text was the inaccurate artifact:Scanpre-dates this work (it is how running executions are enumerated - there is no status index to Query instead), andUpdateItemis genuinely required, since reconcile-or-fail writes node transitions and finalize through the shared conditional guards.Testing
tsc --noEmitclean; full backend suite 6,802 tests passing across 441 suites (one pre-existing env-gated integration skip).UpdateItemgrant is byte-identical to main - this branch does not touch it.Deployment notes
One new AppSync resolver and a narrowing of watchdog IAM. No new resources, no schema change. After deploy,
resumeExecutionshould appear in the live resolver list - that live check is what closes the originating finding, since a resolver in a template is not proof that dev serves it.