Skip to content

Version the cached poll conflict addition in the worker OpenAPI contract #37

Description

@rmcdaniel

Problem

Server 2.0.0-rc.25 adds CachedPollTaskKindConflict to the normative workflow-task poll 409 response union, but the worker OpenAPI document still reports info.version: 8, the same identity used by the preceding contract shape. Consumers and generated-contract tooling therefore cannot distinguish the rc.25 response union from the earlier version by the document’s declared version. The server-owned specification and public mirror agree byte-for-byte, so this is an unversioned contract evolution rather than mirror drift.

Acceptance criteria

  • Give the worker OpenAPI shape containing CachedPollTaskKindConflict a new declared document version; do not rewrite the identity of the preceding shape.
  • Keep the server-owned specification and its public mirror identical after the version change.
  • Preserve the additive, fail-closed runtime behavior and the existing worker protocol negotiation compatibility.
  • Add structural contract-evolution validation that rejects semantic OpenAPI changes when the declared document version is unchanged, while allowing non-semantic description-only edits without brittle prose assertions.
  • Verify the published protocol catalog resolves to the newly versioned document.

Delete when

Delete when the published worker OpenAPI gives the cached-poll conflict union a distinct version and CI prevents later semantic contract changes from reusing an existing document version.

Metadata

Metadata

Assignees

No one assigned

    Labels

    authority:githubGitHub is the authoritative lifecycle record for this workbeta:compatibleMay be completed without changing the frozen beta contractkind:defectA public product behavior is incorrectpriority:P2Normal-priority product workrepo:serverOwned by the standalone server repositorystatus:readyReady for implementation

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions