fix(e2e): poll GetA2AQueueStatus on 202-queued A2A responses (core#2437 part B) #2708
Reference in New Issue
Block a user
Delete Branch "fix/2437-a2a-ready-boundary-poll"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes molecule-ai/molecule-core#2437 (part B).
The staging smoke test treated a 2xx
queued:trueresponse from the first post-restart A2A as final and failed with "no text". This change adds a helper that sends A2A and, when the agent is busy/starting and returns aqueue_id, pollsGetA2AQueueStatuswith bounded retry+backoff until the durable result is available.curl_rc=28/http 000/404retryable while the queue row is materializing (uses part C #2706s 404-retryable distinction).X-Workspace-IDto the target workspace so the queue-status poll identity matches the enqueue identity.Part A ready-boundary already landed in #1666; part C 404-distinction already landed in #2706.
Test plan:
bash -n tests/e2e/test_staging_full_saas.shE2E Staging SaaS/E2E Staging Platform BootCo-Authored-By: Claude noreply@anthropic.com
APPROVED on head
9521fd1fd0. The helper now treats 2xx queued responses with a queue_id as an intermediate state and polls GetA2AQueueStatus for the durable response instead of returning queued/no-text. Retry bounds are sane (bounded POST retry plus 30 queue polls with 2s backoff), and curl_rc/http000/404 are retryable while the queue row materializes. Polls and enqueue both setX-Workspace-IDto the workspace/enqueue identity, matching the part-C boundary. Both the PONG probe and known-answer gate use the helper consistently. Required CI is green (including all-required, shellcheck, API smoke, Platform Go, handlers); only the advisory local-provision run is still in progress./sop-ack