Skip to content

Deduplicate A2A message delivery#160

Merged
pmbstyle merged 1 commit into
mainfrom
fix/a2a-message-deduplication
Jun 5, 2026
Merged

Deduplicate A2A message delivery#160
pmbstyle merged 1 commit into
mainfrom
fix/a2a-message-deduplication

Conversation

@pmbstyle

@pmbstyle pmbstyle commented Jun 5, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add inbound A2A idempotency for repeated peer messageId values so retries do not create duplicate Octo turns.
  • Skip duplicate outbound a2a_send_message payloads within the same turn after the first successful send.
  • Add focused gateway/tool tests and ignore the Desktop .DS_Store artifact.

Root Cause

Inbound peer messages were routed to Octo every time the endpoint received them, even when a peer retried the same messageId. A repeated tool call in the same turn could also send the same A2A payload twice.

Validation

  • uv run pytest tests/test_a2a_gateway.py
  • uv run ruff check src/octopal/interop/a2a/routes.py src/octopal/tools/communication/a2a.py tests/test_a2a_gateway.py
  • uv run black --check src/octopal/interop/a2a/routes.py src/octopal/tools/communication/a2a.py tests/test_a2a_gateway.py
  • git diff --check

@pmbstyle pmbstyle self-assigned this Jun 5, 2026
@pmbstyle pmbstyle marked this pull request as ready for review June 5, 2026 21:50
@pmbstyle pmbstyle merged commit 6bdaf28 into main Jun 5, 2026
4 checks passed
@pmbstyle pmbstyle deleted the fix/a2a-message-deduplication branch June 5, 2026 21:52
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.

1 participant