Skip to content

fix(tck): resolve capability test failures for push notifications#804

Open
sherryfox wants to merge 1 commit intoa2aproject:0.3.x-compatfrom
sherryfox:tck-fixes-for-gson
Open

fix(tck): resolve capability test failures for push notifications#804
sherryfox wants to merge 1 commit intoa2aproject:0.3.x-compatfrom
sherryfox:tck-fixes-for-gson

Conversation

@sherryfox
Copy link
Copy Markdown

@sherryfox sherryfox commented Apr 21, 2026

  • Save pushNotificationConfig in onMessageSend for non-streaming messages, fixing test_send_message_with_push_notification_config

Failures before the fixes:

======================================================== FAILURES ========================================================
____________________________________ test_send_message_with_push_notification_config _____________________________________
tests/optional/capabilities/test_push_notification_config_methods.py:511: in test_send_message_with_push_notification_config
    assert found_config, (
E   AssertionError: Push notification config from SendMessageConfiguration was not found in task configs. Expected URL: http://localhost:8888/webhook. Retrieved 0 config(s): []. This indicates the pushNotificationConfig in SendMessageConfiguration was ignored.
E   assert False
--------------------------------------------------- Captured log call ----------------------------------------------------
ERROR    tests.optional.capabilities.test_push_notification_config_methods:test_push_notification_config_methods.py:507 ❌ Push notification config from SendMessageConfiguration was NOT found!
ERROR    tests.optional.capabilities.test_push_notification_config_methods:test_push_notification_config_methods.py:508 Expected URL: http://localhost:8888/webhook
ERROR    tests.optional.capabilities.test_push_notification_config_methods:test_push_notification_config_methods.py:509 Available configs: []
================================================ short test summary info =================================================
FAILED tests/optional/capabilities/test_push_notification_config_methods.py::test_send_message_with_push_notification_config - AssertionError: Push notification config from SendMessageConfiguration was not found in task configs. Expected URL: h...

After the fixes all tests are passing:

================================================================================
📊 COMPREHENSIVE TEST RESULTS SUMMARY
================================================================================

🔴 Mandatory Tests:           ✅ PASSED (p:31/f:0/x:0/e:0/s:2)
🔄 Capability Tests:          ✅ PASSED (p:36/f:0/x:1/e:0/s:39)
🚀 Transport Equivalence:     ✅ PASSED (p:12/f:0/x:0/e:0/s:4)
🛡️  Quality Tests:             ✅ PASSED (p:14/f:0/x:0/e:0/s:0)
🎨 Feature Tests:             ✅ PASSED (p:15/f:0/x:0/e:0/s:1)

🎉 A2A COMPLIANCE: ✅ PASSED
Your implementation meets A2A specification requirements!
🔄 CAPABILITY HONESTY: ✅ EXCELLENT
All declared capabilities work correctly!
🛡️  PRODUCTION QUALITY: ✅ HIGH
Implementation is robust and production-ready!
🎨 FEATURE COMPLETENESS: ✅ COMPREHENSIVE
Implementation includes valuable optional features!

🏆 OUTSTANDING A2A IMPLEMENTATION!

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates Kafka to version 4.2.0, enhances the deployment scripts with a PostgreSQL pod creation wait loop, and refactors JSON-RPC handling to improve validation and spec compliance. It introduces check() methods for request validation and a custom TypeAdapterFactory to ensure JSON-RPC 2.0 compliance for responses. Feedback was provided regarding the inconsistent validation of the mandatory jsonrpc field in streaming requests and potential precision loss when serializing numeric IDs.

Comment thread spec/src/main/java/io/a2a/spec/SendStreamingMessageRequest.java Outdated
Comment thread spec/src/main/java/io/a2a/json/JsonUtil.java Outdated
@sherryfox sherryfox force-pushed the tck-fixes-for-gson branch from 2c46514 to bd65c70 Compare April 21, 2026 14:25
@kabir
Copy link
Copy Markdown
Collaborator

kabir commented Apr 22, 2026

/gemini review

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request implements push notification configuration storage within DefaultRequestHandler and adds a null-safety check for extensions in the AgentCapabilities record. Review feedback identifies a potential NullPointerException risk when taskId is null due to its use as a key in a ConcurrentHashMap. Additionally, it is recommended to use List.copyOf in the AgentCapabilities constructor to ensure the list is unmodifiable and defensively copied.

Comment thread spec/src/main/java/io/a2a/spec/AgentCapabilities.java Outdated
@sherryfox sherryfox force-pushed the tck-fixes-for-gson branch 2 times, most recently from 11a025e to b45fa88 Compare April 23, 2026 15:52
@sherryfox sherryfox changed the title fix(tck): resolve capability test failures for extensions and push notifications fix(tck): resolve capability test failures for push notifications Apr 23, 2026
…tifications

- Default `extensions` to an empty list in `AgentCapabilities` to ensure it serializes as an array, fixing `test_capabilities_structure`.
- Save `pushNotificationConfig` in `onMessageSend` for non-streaming messages, fixing `test_send_message_with_push_notification_config`
@sherryfox sherryfox force-pushed the tck-fixes-for-gson branch from b45fa88 to 2919258 Compare April 23, 2026 16:07
@sherryfox
Copy link
Copy Markdown
Author

Hey @kabir @ehsavoie, I removed one of the fixes as it seems to be passing already at base so there is just remaining a fix for test_send_message_with_push_notification_config.

Would you have some time to take another look? 🙏

@kabir
Copy link
Copy Markdown
Collaborator

kabir commented Apr 23, 2026

Thank you @sherryfox! Just want to check with @jmesnil since he's more up to speed with the current state of the TCK than I am

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.

2 participants