Skip to content

feat: add durable Event Await suspension protocol - #441

Draft
miyaontherelay wants to merge 42 commits into
mainfrom
codex/event-await-suspend-protocol
Draft

miyaontherelay wants to merge 42 commits into
mainfrom
codex/event-await-suspend-protocol

Conversation

@miyaontherelay

@miyaontherelay miyaontherelay commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor

Repair status — 2026-09-24

Head: 8e170e4bc493710b618e282a68a63338fb630f67 (main merged at e04c5b9715d6bc2c3233b92610dd15133010c229).

The required linux-x64-artifact failure was reproducible: the Event Await CLI fixture ran false, which durably exhausted eight semantic retries and their backoffs. Its 75-second child timeout expired first, returned empty stdout, and the test then obscured the timeout with JSON.parse: Unexpected end of JSON input.

The regression now uses the supported fail-closed authored verdict f.done('step_failed', { detail }). It asserts the report diagnostic, root completion output, closed subscription, zero worker_error retries, and the exact durable relayflows.authored-verdict.v1 stream record. The fixture also refuses empty stdout before parsing. Its local ingress path uses receipt-fenced subscriptionDeliver, resumes the authored root, and reads the durable verdict from the journal.

Local verification after the main merge:

  • Event Await CLI E2E: 1/1 passed, including repeated suspended resumes, SIGKILL/restart, ordered wake replay, deduplication, exactly-once child effects, and the authored failure verdict.
  • Focused Event Await/authored activity group: 36 passed.
  • cargo test --workspace: exit 0.
  • Surface build; SDK build, source typecheck, and test typecheck: exit 0.

Detailed evidence: evidence/pr441-router-2026-09-20.md.

Hosted proof boundary

This proves the local runtime/protocol and receipt-fenced ingress path. It does not prove deployed hosted Event Await or a real GitHub webhook delivery. Cloud PR #3873 remains an open, conflicting draft at af49683468017885de9b95ee0e50314734721368; Cloud PR #3878 is closed without merge at 6884d0373dda256f8b71d9ce4fa9898515dd329b. The available credential also lacks admin:repo_hook, so the exact real-delivery dedup proof remains externally blocked.

Do not merge or represent this PR as hosted-complete on the basis of local evidence.

Prior hosted-dev context — 2026-09-20

The pinned Linux artifact CI run 35525739964 succeeded; downloaded artifact 10610415637 had inner tar SHA-256 f740bbc3ff44843cde3021ad15c4a9a59f0b58b394bc15a11798d78b25bc3620 and manifest source commit a4f857589af930bd5d6ea365a0e0a4166417a125.

Dev candidate e882221f47a8ff894bdfcaa5ad61ca8a8239f28b deployed successfully in Cloud run 35526582211. A fresh GET https://dev.agentrelay.com/cloud/api/health returned buildSha: e882… and bindingsOk: true. A real granted-repository PR reached a durable event_wait binding, but no matching frame was consumed; the next resume was the idle boundary.

Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9

Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9
Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9

Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9
Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9
Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9
Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9
Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9
Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9
Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9
Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9
Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9
Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9
Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9
Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9
Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9
Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9
Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9
Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9
Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9
Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9
Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9
@coderabbitai

coderabbitai Bot commented Sep 17, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Sep 17, 2026 •

Copy link
Copy Markdown

Review swarm: maintainability

No fresh transcript was produced for run e6d7ab12-0a65-45b0-8666-f6ee73cd74c6 (MISSING).

@github-actions

github-actions Bot commented Sep 17, 2026 •

Copy link
Copy Markdown

Review swarm: history

No fresh transcript was produced for run e6d7ab12-0a65-45b0-8666-f6ee73cd74c6 (MISSING).

@github-actions

github-actions Bot commented Sep 17, 2026 •

Copy link
Copy Markdown

Review swarm: structure

No fresh transcript was produced for run e6d7ab12-0a65-45b0-8666-f6ee73cd74c6 (MISSING).

@github-actions

github-actions Bot commented Sep 17, 2026 •

Copy link
Copy Markdown

Review swarm: FAILED

  • maintainability: MISSING
  • history: MISSING
  • structure: MISSING

Cloud run: e6d7ab12-0a65-45b0-8666-f6ee73cd74c6

Session-Id: 01a09c40-ce3b-7f11-a7df-b6b7ccab6fd9
@khaliqgant
khaliqgant changed the base branch from automation/event-await-flows-overnight-0917 to main September 20, 2026 03:46
khaliqgant and others added 6 commits September 22, 2026 23:33
attachLocalAgent's fifth parameter diverged: HEAD pins declared named
streams, main takes worker capacity. Kept main's position-5 capacity
contract (published callers unchanged) and added declaredStreams as a
sixth parameter; run.ts passes both. Executor unions AuthoredActivities
with main's stepEdges wiring.
Union resolutions: authored-root imports (suspended result + durable
verdict kinds), tsconfig test lists, surface index exports. Main's
executor reads journal streams for the authored step index/verdicts —
the activity loopback test now answers stream.read with an empty page.

Verified: kernel workspace tests all green; sdk typecheck clean;
authored-activity 15, authored completion/status/detail suites 87,
authored-flow family 171, activity/cli/live event-await suites green
at this tree.
The merged tree's run-report boundary appends a trailing protocol_error
diagnostic when durable subscriptions cannot be inspected, so `at(-1)`
no longer names the step failure the test means to pin.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Session-Id: 01a0d51d-44ff-76b3-924f-83afe48f4b4f
Session-Id: 01a0d51d-44ff-76b3-924f-83afe48f4b4f
Session-Id: 01a0d51d-44ff-76b3-924f-83afe48f4b4f

@khaliqgant khaliqgant left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Independent exact-head review of 8e170e4. Cargo relayflowd-core suite passes 76/76 in a detached exact-head worktree; worker reports Event Await CLI E2E 1/1, focused relevant group 36, full cargo workspace, Surface/SDK builds and source/test typechecks green. Required CI is terminal green: linux 36059287733, packed 36059287664, validate 36059287669, guard 36059284529. This approval covers the repository repair; hosted Cloud delivery remains explicitly unproven and blocked by external #3873 (open draft/DIRTY af496834) and #3878 (closed unmerged 6884d037), so PR stays draft and is not merge-ready.

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.

2 participants