Skip to content

fix(a2a): preserve late reply waiters and reject undelivered finals - #121577

Closed
RuniThomsen wants to merge 1 commit into
NousResearch:mainfrom
runi-services:hermes/a2a-late-reply-s772
Closed

RuniThomsen wants to merge 1 commit into
NousResearch:mainfrom
runi-services:hermes/a2a-late-reply-s772

Conversation

@RuniThomsen

Copy link
Copy Markdown

Summary

  • Keep an admitted task waiting when its observation deadline passes; elapsed observation time is not proof that the running agent failed.
  • Log the elapsed window once with task/context correlation.
  • Return an unsuccessful SendResult and an ERROR when a final has no pending waiter, instead of silently discarding it with success=True.

Verification

Both regressions were observed failing on the original implementation before their fixes. After rebasing onto main deb4bd2:
scripts/run_tests.sh tests/plugins/test_a2a_late_reply.py tests/plugins/test_a2a_plugin.py tests/plugins/test_a2a_phase23.py tests/plugins/test_a2a_tools_gate.py
Result: 142 passed, 0 failed across four files.

Scope and limitations

No credential, identity, configuration or runtime activation changes. Disconnect behavior remains failed; this does not implement durable disconnected-client recovery or unsolicited background delivery. Existing context-oldest reply selection is unchanged. A lost processing callback can still retain a waiter until cancellation/shutdown; review this lifecycle boundary explicitly.

Production acceptance is pending: three consecutive caller-observed replies, including one deliberately past the observation deadline. Unit/subsystem tests are not that live proof.

@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have comp/plugins Plugin system and bundled plugins labels Sep 24, 2026
@RuniThomsen

Copy link
Copy Markdown
Author

Superseded by upstream work in #96983; closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/plugins Plugin system and bundled plugins P3 Low — cosmetic, nice to have type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants