Skip to content

Freeze 2026-07-28 spec references at the released revision #2857

Description

@squarepots

Problem

The SDK still treats the released 2026-07-28 protocol revision as a draft-tracking revision.

scripts/fetch-spec-types.ts maps it to schema/draft, and .github/workflows/update-spec-types.yml continues to refresh that anchor nightly. The workflow only updates spec.types.2026-07-28.ts, while the repository's lifecycle policy requires the anchor, schema twin, and example corpus to stay synchronized.

PR #2027 shows the current behavior: it is still being updated from schema/draft/schema.ts after schema/2026-07-28/ was released.

The original per-revision reference work in #2252 noted that the draft mapping should go away once the released schema directory exists.

Current inconsistency

The released spec is available under schema/2026-07-28/. Its final schema update also contains:

  • SubscriptionsListenResultMetaObject;
  • SubscriptionsListenResultResponse;
  • the matching example fixture.

The checked-in 2026 reference artifacts predate that final released delta.

There is also a provenance issue in the schema-twin refresh path: one source SHA is currently used to refresh every revision. Each released revision should instead keep its own source commit so refreshing one oracle cannot move another.

For 2025, the configured release pin is 0168c57fc74aba6e6dcf8f0b7191db3caaa5ad65, while the checked-in anchor header still records an older provenance commit. The schema content is identical at those commits, so this is provenance-only.

Expected state

  • 2026-07-28 regenerates from schema/2026-07-28/ at an immutable released commit.
  • The 2026 anchor, schema twin, example corpus, manifests, and parity coverage refer to the same released source.
  • Schema-twin provenance is per revision.
  • The existing 2025 anchor provenance agrees with its configured release pin.
  • The nightly draft refresh for 2026-07-28 is removed.
  • Public SDK API names are not changed solely to mirror the spec's final interface rename.

A future unreleased revision can introduce draft tracking when the SDK actually has a consumer for it.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions