hermes-agent/tests/plugins
Ben Kamholtz 5a8102d71c fix(a2a): JSON-RPC conformance for a2a-sdk 1.1.0 compatibility
Two bugs reported by gfdsa (PR #41711 comment, Jul 12) that break the
official a2a-sdk 1.1.0 Python client:

1. Task objects serialized non-spec createdAt/lastModified fields.
   The A2A v1.0 Task proto (lf.a2a.v1.Task) only has id, contextId,
   status, artifacts, history, metadata. Strict ProtoJSON parsers
   reject unknown fields with ParseError. Removed both fields from
   build_task(); created_at param kept for call-site compatibility.

2. SSE streaming frames were not JSON-RPC wrapped. A2A v1.0 §9.4
   requires data: {"jsonrpc":"2.0","id":...,"result":{StreamResponse}}.
   sse_data() now accepts req_id and wraps in JSON-RPC envelope.
   sse_done() changed from 'data: {}' to SSE comment ': done' so
   SDK doesn't try to parse an empty JSON-RPC response.

All call sites in adapter.py (_emit_terminal, _rpc_message_stream,
_rpc_tasks_subscribe) updated to thread req_id through.

Tests updated: 153 pass (151 unit + 17 integration, including 2 new
tests for JSON-RPC envelope wrapping and fallback behavior).

Refs: gfdsa/a2a-hermes reproduction repo
2026-08-02 15:10:15 -07:00
..
browser
dashboard_auth
image_gen
memory fix(memory/hindsight): evict timed-out retain ops + coarser status polls 2026-08-02 22:33:43 +05:30
model_providers
platforms
transcription
tts
video_gen
web
__init__.py
test_a2a_phase23.py fix(a2a): JSON-RPC conformance for a2a-sdk 1.1.0 compatibility 2026-08-02 15:10:15 -07:00
test_a2a_plugin.py fix(a2a): JSON-RPC conformance for a2a-sdk 1.1.0 compatibility 2026-08-02 15:10:15 -07:00
test_achievements_plugin.py
test_chronos_cron.py
test_chronos_verify.py
test_discord_runtime_failure.py
test_disk_cleanup_plugin.py
test_google_meet_audio.py
test_google_meet_node.py
test_google_meet_plugin.py
test_google_meet_realtime.py
test_hindsight_health_grace_timeout.py
test_hindsight_root_guard.py
test_holographic_vector_storage.py
test_kanban_attachments.py
test_kanban_board_project_api.py
test_kanban_dashboard_plugin.py
test_kanban_estimate.py
test_kanban_model_override.py
test_kanban_worker_runs.py
test_langfuse_plugin.py
test_nemo_relay_plugin.py
test_plugin_dashboard_auth_contract.py
test_raft_check_fn_silent.py
test_retaindb_plugin.py
test_security_guidance_plugin.py
test_teams_pipeline_plugin.py