Skip to content

Track adcp#4857 (4.0 capability_id MUST) for legacy* helper sunset #1899

@bokelley

Description

@bokelley

Context

7.10 ships three v1-only write-side helpers as semantic narrowing, not deprecation:

  • `legacyFormatIdsFromOptions`
  • `tryLegacyFormatIdsFromOptions`
  • `legacyFormatIdsForCapability`

(See `src/lib/v2/projection/write-side.ts`.)

These were renamed from their pre-release names (`formatIdsFromOptions` etc.) in PR #1896 to avoid the `@deprecated` + "supported indefinitely" contradiction the original PR shipped with. The new names communicate "v1-only path, not deprecated" cleanly.

Open question

Upstream adcontextprotocol/adcp#4857 proposes tightening `capability_id` on `format_options[]` from SHOULD to MUST at AdCP 4.0. When that lands:

  • Every product's `format_options[]` entry will be required to carry a `capability_id`.
  • `packageRefsForCapabilities` can replace every `legacy*` call site without DX loss.
  • The `capability_ids_not_published` failure mode becomes a non-conforming-seller signal rather than a product-shape signal.
  • The `legacy*` helpers become actually-deprecated rather than semantically-narrowed.

What to do

  • Track adcp#4857 through the 4.0 prerelease cycle.
  • When the spec MUST tightening lands, file a follow-up PR that:
    • Marks the three `legacy*` helpers as `@deprecated` (real this time — tied to a removal target).
    • Documents the removal horizon in the 8.0 → 9.0 → 4.x migration story.
    • Adds a deprecation entry to the release notes.
  • Before 4.0 GA, file a removal PR that drops the `legacy*` helpers per the deprecation horizon.

Not blocking 7.10

Planning / release-notes item, not a code change for now. The current `legacy*` shape is forward-compatible with eventual removal.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions