Parent: #452
JS source
6.6.0 commit 27bd79d fix(client): don't downgrade obvious v3 agents to v2.
Bug class
SingleAgentClient.get_capabilities() falls back to v2 synthetic capabilities on any failure. This causes confusing "AdCP schema data for version v2.5 not found" cascades when a v3 agent has a single shape bug — e.g. one missing field on Account. The user sees a v2 error trail with no obvious connection to the actual v3 validation failure.
Fix
Tighten the heuristic — when result.success is False but result.data is structurally v3-shaped, parse anyway, surface the validation failure loudly, continue with v3 caps. Don't silently downgrade.
looks_like_v3_capabilities(data) heuristic: presence of v3-only fields (e.g., governance_agents, v3-shaped pricing_options, etc.) on the response shape.
Port the same heuristic from JS to Python's client.
Acceptance criteria
looks_like_v3_capabilities helper in client.
SingleAgentClient.get_capabilities() no longer silently downgrades to v2 when input is obviously v3.
- Surfaces the v3 validation error directly.
- Tests cover: clean v3 (passes), v3 with one shape bug (loud v3 error, no v2 cascade), genuine v2 (downgrades correctly).
Parent: #452
JS source
6.6.0 commit
27bd79d fix(client): don't downgrade obvious v3 agents to v2.Bug class
SingleAgentClient.get_capabilities()falls back to v2 synthetic capabilities on any failure. This causes confusing "AdCP schema data for version v2.5 not found" cascades when a v3 agent has a single shape bug — e.g. one missing field onAccount. The user sees a v2 error trail with no obvious connection to the actual v3 validation failure.Fix
Tighten the heuristic — when
result.success is Falsebutresult.datais structurally v3-shaped, parse anyway, surface the validation failure loudly, continue with v3 caps. Don't silently downgrade.looks_like_v3_capabilities(data)heuristic: presence of v3-only fields (e.g.,governance_agents, v3-shapedpricing_options, etc.) on the response shape.Port the same heuristic from JS to Python's client.
Acceptance criteria
looks_like_v3_capabilitieshelper in client.SingleAgentClient.get_capabilities()no longer silently downgrades to v2 when input is obviously v3.