Skip to content

caller: per-instance adcpVersion builder option #16

Description

@bokelley

Follow-up from #12 review. Track-3-adjacent — file now, implement when the caller lands.

Both reference SDKs ship a per-instance adcpVersion option ("Stripe model") so a single process can talk to a mix of agents running different protocol versions:

  • @adcp/sdk exposes adcpVersion as a literal-union type derived from COMPATIBLE_ADCP_VERSIONS and accepts it as a constructor option
  • adcp (Python) accepts release-precision (3.0, 3.1) and raises ConfigurationError on cross-major pins

Python explicitly enforces release-precision (not patch precision) — they got burned across 3.0.9 / 3.0.10 / 3.0.11 chore PRs forgetting to extend COMPATIBLE_ADCP_VERSIONS. Auto-derive the compatibility list from ADCP_VERSION.

Acceptance (when the caller is written):

  • AdcpCaller.builder().adcpVersion(\"3.0\").build() accepted
  • Outbound requests carry adcp_version at release precision
  • Cross-major mismatch raises a typed error before send
  • Compatibility list auto-derived from ADCP_VERSION at build time

Not in scope here: the adcp-v2-5 co-existence namespace (ROADMAP.md:211, separate question) and outbound envelope-level protocol-error handling (separate work in Track 3).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions