feat(protocol): support AdCP 3.2 beta lifecycle - #1034
Conversation
| @@ -333,6 +361,11 @@ async def get_adcp_capabilities(self, params: dict[str, Any]) -> TaskResult[Any] | |||
| """Get AdCP capabilities from the agent.""" | |||
| pass | |||
|
|
|||
| @abstractmethod | |||
| async def sync_agent_notification_configs(self, params: dict[str, Any]) -> TaskResult[Any]: | |||
There was a problem hiding this comment.
MUST FIX: sync_agent_notification_configs (L364-365) and report_plan_adjustment (L442-443) are added as new @abstractmethods on ProtocolAdapter, a public export from adcp.protocols. Any external subclass now fails to instantiate — TypeError: Can't instantiate abstract class ... with abstract methods report_plan_adjustment, sync_agent_notification_configs. That is a breaking change to the public surface shipped under feat(protocol):; release-please cuts a minor, so the break lands without a major.
Note the inconsistency: every other new task in this PR — list_products (L177), buy_products (L193), the rest of the compact lifecycle — was deliberately added as a concrete method that raises NotImplementedError, precisely so existing subclasses keep working. These two are the only abstract additions. Either make them concrete-with-NotImplementedError to match (additive, non-breaking), or mark the commit feat! with a migration note.
Summary
Compatibility fixes found during migration
Validation