Uh oh!
There was an error while loading. Please reload this page.
fix(engine): classify unkeyed provider send misses - #367
Conversation
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: 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. Comment |
There was a problem hiding this comment.
All reported issues were addressed across 4 files
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
e107a80 to
a6e9f15CompareThere was a problem hiding this comment.
All reported issues were addressed across 4 files (changes from recent commits).
Requires human review: Auto-approval blocked because this review re-detected 1 unresolved issue already reported by Cubic.
Re-trigger cubic
Uh oh!
There was an error while loading. Please reload this page.
Session-Id: 01a060f2-87c5-7d21-bf8f-515f3e9cbfdd Session-Id: 01a060f2-87c5-7d21-bf8f-515f3e9cbfdd Session-Id: 01a060f2-87c5-7d21-bf8f-515f3e9cbfdd
Session-Id: 01a060f2-87c5-7d21-bf8f-515f3e9cbfdd Session-Id: 01a060f2-87c5-7d21-bf8f-515f3e9cbfdd
18200d9 to
87e3f8aCompareUh oh!
There was an error while loading. Please reload this page.
…sucow 8.3.1 shipped #367, which already fails an unkeyed agent-action invoke with handler_unavailable when the owner-side send misses. Reconcile the two fixes in invokeAction: - keep #367's completion-wins acknowledgement for a send that returned true but lost the dispatch UPDATE; - keyed claims still wait for a racing takeover to become visible, but now hand the still-open row back (onDeadline: 'return') instead of reporting idempotency_unavailable; - both keyed and unkeyed misses then go through the conditional failNeverDispatchedInvocation, so a dispatcher that claimed the row on a handler reconnect keeps its dispatch and the caller sees that state. The conformance test becomes a keyed invoke (8.3.1 already covers the unkeyed case) and asserts a replay of the same key agrees on handler_unavailable. Changelog bullets narrowed to what is left after 8.3.1; the root [Unreleased - Patch] link now compares against v8.3.1. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MB3K5bK7Jc5HM92fsZRUyS
Summary
handler_unavailableinstead of the keyed-idempotency timeout/errorRelease-train finding
The relaycast-cloud integration suite against published engine 8.2.2 reproduced this hosted path: the Worker preflight reports the provider live, the NodeDO authoritative send returns false, and an unkeyed request receives
idempotency_unavailablewhile its row remains pending. This patch makes that path fail closed with the actual condition.Verification
npm run -w @relaycast/engine typechecknpm run -w @relaycast/engine lintnpm run -w @relaycast/engine test(68 files, 698 tests)This is the corrective patch required before promoting the engine bump to relaycast-cloud. It must be released as a follow-up patch; #363 remains excluded from this release train.