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
e107a80 to
a6e9f15
Compare
There 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
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
87e3f8a
Compare
…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.