Repository navigation
Embedded Sales Agent asks for 9.0 GA #1441
Description
Activity
- addedclaude-triagingTriage routine is actively working on this issue (1-3 min)Triage routine is actively working on this issue (1-3 min)
on Oct 7, 2026 Triage
Classification: tracking/meta — pre-9.0.0 GA checklist
Bucket(s): docs (verified); cross-repo label absent from this repo (gap noted below)
Status: ready-for-human
Milestone: (omit — maintainer should assign to the 9.0.0 milestone explicitly)What the experts said:
- (routing directly to human review — epic-shaped tracking issues aggregate item-level decisions already made on the child issues; re-running per-item analysis here would duplicate that work)
My take: This is a well-organized 9.0.0 pre-GA coordination tracker filed by a contributor: 13 items across correctness, API shape, docs, and cross-repo spec, with several items having active open PRs (#1405, #1406, #1401) ready for review or merge. The mix of breaking-API changes, cross-repo spec dependencies (adcp#7993, adcp#7885), and multi-domain scope makes milestone sequencing a human call.
Items with open PRs (highest-value review targets):
- bug(reporting): one stored configuration whose account context fails to resolve stops the whole service from starting #1271 → PR fix(reporting): isolate account initialization and recovery failures #1405 (account-context resolution failure stops reporting service)
- bug(reporting): producer reads a period at close, ignoring the offering's expected_availability_lag #1256/bug(reporting): every scheduled read lands at the period boundary, so all feeds hit the source in the same minute #1257 → PR fix(reporting): wait for declared source availability before acquisition #1406 (producer ignores
expected_availability_lag) - Format.canonical_parameters drops format_kind and params on the 3.1 line (generated ProductFormatDeclaration ignores the oneOf branches) #1275 → PR ProductFormatDeclaration and Format are the same class, while the schema's 16-arm union is exported as LegacyProductFormatDeclaration #1401 (
ProductFormatDeclarationdropsformat_kind/paramson 3.1 line)
Items without PRs yet: #1434 (thread-safety, production impact — correctness critical), #1431, #1279, #1436, #1438, #1437, #1439, #1440, adcp#7993 (cross-repo).
Recommended next step for the milestone owner: milestone the individual issues to 9.0.0, merge the three open PRs above, then use this checklist as the GA gate. adcp#7993 needs a spec decision before the Python side can close.
Label gap:
cross-repolabel does not exist in this repo; cross-repo items noted in the comment body only.
Triaged by Claude Code. Session: https://claude.ai/code/session_01GUsdLbPQ3zQMvLNiutEaPX
Generated by Claude Code
- added and removedclaude-triagingTriage routine is actively working on this issue (1-3 min)Triage routine is actively working on this issue (1-3 min)
on Oct 7, 2026 bokelley commented
on Oct 8, 2026 ContributorAuthorMore actionsStatus after 9.0.0b2. ESA now runs on b2 (scope3data/embedded-sales-agent#652).
Landed in b2: #1434, #1271, #1256, #1257, #1275/#1401, #1431, #1279 (per-instance
supported_versions), #1436, #1437, #1438, #1439, #1440. With #1431, ESA dropped itstenant:account:principalledger key and the response rewrite. Withvalidate_union,require_canonical_format_kindandreplace_empty_legacy_reporting, it deleted or replaced its own versions.Still open for GA:
- ReportingWebhook cannot supply required McpWebhookPayload operation_id #1092 / adcp#7885:
reporting_webhook.operation_idas spec rather than opt-in, once adcp#7897 releases. - adcp#7993: backport
macro-bearing-urlto 3.1.x. - 9.0 adoption follow-ups: sync empty-ledger replacement, owned-ledger rollback, declaration-to-Format publishing #1449 (new): a sync variant of
replace_empty_legacy_reporting, a rollback path for the owned ledger, and the declaration-to-Formatpublishing pattern.
- ReportingWebhook cannot supply required McpWebhookPayload operation_id #1092 / adcp#7885:
Everything the Embedded Sales Agent (scope3data/embedded-sales-agent) would like settled before 9.0.0 ships, from its move to 9.0.0b1. Of ESA's 46 open feedback items, 9.0.0b1 resolves 30 and partly resolves 3; about 25 ESA workarounds can be deleted. These are what remain.
Correctness: please land before GA
get_named_validatorshares one validator across threads; concurrent validation fails. It crashed ESA in production, and the fix is small. Landed via fix(validation): isolate cached validators across threads #1442.expected_availability_lag, and every scheduled read lands on the period boundary. Reporting already needs a maintenance migration in 9.0, so these should ship with it rather than in a later minor. Landed via fix(reporting): wait for declared source availability before acquisition #1406 (availability) and fix(reporting): bind source consumers and stagger automatic reads #1445 (staggering).ProductFormatDeclarationdropsformat_kind/paramson the 3.1 line. The beta notes already list it as pre-GA; fixing it after GA breaks the canonical-format types again. Landed via fix(types): preserve 3.1 canonical parameters in legacy catalogs #1444 (release/7.x) and fix(sdk): address SDK 9 GA type and server migration gaps #1443 (main).API shape: cheaper to change before GA
consumer_id. Landed via fix(reporting): bind source consumers and stagger automatic reads #1445.serve(supported_versions=...)that also gatesdetect_wire_version), so sellers don't patchSUPPORTED_WIRE_VERSIONS. Landed via fix(sdk): address SDK 9 GA type and server migration gaps #1443.reporting_webhook.operation_idspec rather than opt-in once adcp#7897 releases.allowed_originsis set. Landed via fix(sdk): address SDK 9 GA type and server migration gaps #1443.format_kindvalidator alongside the open string. Landed via fix(sdk): address SDK 9 GA type and server migration gaps #1443.RootModel, and inconsistent union alias names. Landed via fix(sdk): address SDK 9 GA type and server migration gaps #1443.Docs
MIGRATION_v8_to_v9.md, including the credential-carrier change (bug(auth): MCP leg accepts conflicting Authorization and alias tokens that the A2A leg rejects as ambiguous #1305), the A2A Host default, Origin on discovery, and the strict-validation changes. Landed via fix(sdk): address SDK 9 GA type and server migration gaps #1443.Spec
macro-bearing-urlto 3.1.x so%%MACRO%%VAST tags validate at 3.1. Released and verified in AdCP 3.1.27 via adcp#8004 and adcp#8007; SDK synchronization merged in fix(validation): sync signed 3.1.27 macro URL schemas #1454 after exact-head expert approval and all 46 active CI checks passed.SDK completion (2026-10-07)
SDK fixes are merged after expert review and green CI: #1442 (validator concurrency), #1444 (7.x format-declaration backport), #1406 (source availability), #1443 (9.0 API, canonical types, server policy and migration documentation), #1405 (startup/recovery isolation), and #1445 (source consumer identity and automatic read staggering). The issues addressed by these PRs are closed. #1445 passed all 49 checks on its approved commit; all 13 serial PostgreSQL/installed-artifact regressions also passed.
SDK 9 beta release (2026-10-08)
The SDK 9 fixes above are published in 9.0.0-beta.2 (PyPI 9.0.0b2). All 35 CI jobs on the exact tagged commit passed, and the published wheel and source distribution match the checked official build.
3.1 macro URL dependency completed (2026-10-08)
The backport is published in AdCP 3.1.27. Release run 37772270281 passed; all four official CDN assets match the reviewed signed tuple, and official synchronization reproduces all 762 current SDK cache files byte for byte.
SDK #1454 merged as
7d610e1ae1f6aedd5b9290857052e86c209b634cafter expert approval of exact head3dd1c2ae5c03cc7d3dbd41d1154109f2b8c23d2cand all 46 active CI checks passed (CI). The merged main tree matches the reviewed head. It preserves the exact 3.1.15 source contract for durable purchase continuations and keeps the primary 3.2.1 pin. Local validation passed 12,142 unit tests, 3,792 conformance/integration tests and 81 workflow tests; fresh wheel and source installs each passed all 191 macro URL, internationalized URL and retained-source regressions. The SDK synchronization is on main and will ship in the next SDK release.The docs runtime repair merged in adcp#8026 after all 54 active checks passed.
Remaining protocol dependency
reporting_webhook.operation_idstandard (ReportingWebhook cannot supply required McpWebhookPayload operation_id #1092). The schema change merged in adcp#7895 and adcp#7885 is closed, but #7897 remains draft and latest released 3.2.3 omits the field. Retain the documented fix(types): restore opt-in reporting correlation on AdCP 3.2 #1349 interim agreement until publication and schema synchronization.This tracker remains open only for the operation-ID protocol release and subsequent SDK schema synchronization.