Skip to content

fix(media-buy-actions): project change_term_id for AdCP 3.3 prereleases - #1721

Merged
bokelley merged 1 commit into
nextfrom
claude/issue-1668-change-term-id-33
Oct 30, 2026
Merged

bokelley merged 1 commit into
nextfrom
claude/issue-1668-change-term-id-33

Conversation

@bokelley

Copy link
Copy Markdown
Contributor

project_available_actions(protocol_version=...) decides whether to emit change_term_id (3.2.0-beta.9 and later) or the older terms_ref. The beta.9 floor was applied to every line, so "3.3.0-beta.1", the SDK's own release, projected terms_ref. The floor now applies only to the 3.2 line.

The #1668 version-literal audit found this (#1720 lists it as out of that PR's scope). test_projection_version_matrix gains a 3.3.0-beta.1 case, validated against the 3.3 core/media-buy-available-action.json. tests/test_media_buy_actions.py passes: 55 tests.

Refs #1668

🤖 Generated with Claude Code

project_available_actions decided whether a protocol version carries
available_actions[].change_term_id with a beta.9 floor meant for the 3.2
prereleases, but applied it to every line, so protocol_version
"3.3.0-beta.1" (the SDK's own release) projected the pre-3.2 terms_ref form.
The floor now applies to the 3.2 line only. Found in the #1668 version
literal audit.

Refs #1668

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

@aao-secretariat aao-secretariat Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Ladon verdict: Approve

Approve — version-translation floor fix with regression coverage.

What I checked:

  • _supports_change_term_id in media_buy_actions.py:1308-1311: the beta.9 floor was incorrectly applied to every version line, causing 3.3.0-beta.1 to project the stale terms_ref instead of change_term_id. The new guard (major, minor) > (3, 2) or beta is None or beta >= 9 scopes the beta.9 floor to the 3.2 line only. Verified correct across the version matrix: 3.1 → False, 3.2.0-beta.8 → below floor, 3.2.0-beta.9/rc/release → True, 3.3+ → True.
  • DR-0032/DR-0033 version-translation pathway: this is the translation layer itself, and the fix restores correct field projection (change_term_id) for the SDK's own 3.3 release line. Regression case added to test_projection_version_matrix, validated against the 3.3 schema — pathway test present as required.
  • Correct fix: semver signal; no public-surface break, no generated-code hand-edit, no import-layering violation.

No blocking or medium findings. No gated paths, no high-risk files, no author team gate. Falls through to row 9.

@bokelley
bokelley merged commit ac5d410 into next Oct 30, 2026
41 checks passed
@bokelley
bokelley deleted the claude/issue-1668-change-term-id-33 branch October 30, 2026 02:41
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.

1 participant