-
Notifications
You must be signed in to change notification settings - Fork 5
feat(client)!: align safety and asset APIs with JavaScript v13 #1032
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
f443d7d
fix(client): close JavaScript v13 parity gaps
bokelley 3857bbe
feat(client)!: complete JavaScript v13 parity hardening
bokelley 7b62f22
fix(client): harden webhook routing and retry hints
bokelley 98aebf5
chore(release): open SDK 8 beta line
bokelley a229459
fix(ci): restore storyboard fixture coverage
bokelley 0a62f1c
fix(ci): preserve legacy format owner URLs
bokelley bdc9417
fix(ci): grade translator storyboard topology
bokelley 7a1cdbf
fix(ci): constrain translator partial skips
bokelley File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,36 @@ | ||
| # Migrating from Python SDK 7 to 8 | ||
|
|
||
| SDK 8 makes the legacy `ADCPClient.handle_webhook()` convenience path fail | ||
| closed. Calls without a configured `webhook_secret` no longer accept unsigned | ||
| MCP callbacks. | ||
|
|
||
| For AdCP-conformant public endpoints, migrate delivery to `WebhookReceiver`. | ||
| It verifies RFC 9421 signatures, deduplicates retries, and parses the | ||
| authenticated raw body. Construct it using the | ||
| [complete receiver quickstart](README.md#signed-webhooks-adcp-30-receiver-quickstart), | ||
| then pass the unchanged request to it: | ||
|
|
||
| ```python | ||
| outcome = await receiver.receive( | ||
| method=request.method, | ||
| url=str(request.url), | ||
| headers=dict(request.headers), | ||
| body=await request.body(), | ||
| ) | ||
| ``` | ||
|
|
||
| If a 3.x registration explicitly selects the deprecated `HMAC-SHA256` | ||
| fallback, configure the same shared secret on `ADCPClient` and pass the raw | ||
| request body to `handle_webhook()`. An endpoint that is isolated from untrusted | ||
| networks may temporarily retain unsigned legacy callbacks with | ||
| `allow_unauthenticated_webhooks=True`; multi-agent clients must scope this | ||
| escape by agent ID. | ||
|
|
||
| ## Webhook activity metadata | ||
|
|
||
| `ActivityType.WEBHOOK_RECEIVED` no longer copies the complete callback into | ||
| `Activity.metadata["payload"]`. The metadata now contains only `task_id`, | ||
| `status`, and `protocol`; `operation_id` and `task_type` remain top-level | ||
| activity fields. Update telemetry consumers that read results or tokens from | ||
| the old payload field. Process business data from the verified webhook result | ||
| instead of exporting it through activity telemetry. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Medium:
missing_toolis accepted unconditionally, but nothing in the gate ties it to the absent controller. The comment reads it as "missing controller tools," yet SDK 13 emitsmissing_toolfor any tool the storyboard needs and can't find on the upstream — including a real AdCP task tool the translator should support. Because the accept only requirescontroller_detected is False,steps_failed == 0, andmissing_test_controller > 0, an upstream that silently drops a genuine capability tool produces amissing_toolskip, keepssteps_passed > 0from the rest, and gradespartial→ CI goes green on a real coverage regression this conformance gate exists to catch.missing_test_controllerandprerequisite_failedare genuinely controller-cascade;missing_toolis not scoped to it. Consider droppingmissing_toolfrom the allowed set, or asserting its skips are controller-tool-scoped.