Summary
a2a-sdk's DefaultRequestHandler accepts a push-notification-config store, but adcp.server.create_a2a_server() doesn't surface it. Downstream (salesagent) has 8 `on_*_push_notification_config` methods backed by a DB table; adopting the SDK's A2A path drops all of that on the floor.
Proposed API
def create_a2a_server(
handler: ADCPHandler,
*,
...,
push_notification_config_store: PushNotificationConfigStore | None = None,
) -> Starlette: ...
Mirror a2a-sdk's store ABC — or expose our own thin ABC that wraps theirs — and thread it into DefaultRequestHandler(push_notification_config_store=...). Default to the in-memory impl for demo use; document the persistence implications clearly.
Acceptance
Context
Roadmap item PR-O (Phase 2) from .context/sdk-adoption-roadmap.md. Second of three blockers gating salesagent's A2A migration (with #224, #226).
Summary
a2a-sdk's
DefaultRequestHandleraccepts a push-notification-config store, butadcp.server.create_a2a_server()doesn't surface it. Downstream (salesagent) has 8 `on_*_push_notification_config` methods backed by a DB table; adopting the SDK's A2A path drops all of that on the floor.Proposed API
Mirror a2a-sdk's store ABC — or expose our own thin ABC that wraps theirs — and thread it into
DefaultRequestHandler(push_notification_config_store=...). Default to the in-memory impl for demo use; document the persistence implications clearly.Acceptance
create_a2a_server.TaskStore.Context
Roadmap item PR-O (Phase 2) from
.context/sdk-adoption-roadmap.md. Second of three blockers gating salesagent's A2A migration (with #224, #226).