Skip to content

Add SDK and CLI server protocol compatibility checks - #481

Merged
longquanzheng merged 1 commit into
mainfrom
codex/sdk-server-protocol-compatibility
Sep 16, 2026
Merged

longquanzheng merged 1 commit into
mainfrom
codex/sdk-server-protocol-compatibility

Conversation

@longquanzheng

Copy link
Copy Markdown
Contributor

Summary

  • add FlowService.GetServerInfo with diagnostic Server version and an inclusive supported protocol interval
  • negotiate the highest common protocol before Attribute index synchronization and WorkerService binding in all five SDKs
  • add dexcli version check with structured compatibility output and failure reporting
  • inject and verify Server, CLI, and SDK artifact versions in release builds
  • document upgrade sequencing and protocol compatibility in English and Simplified Chinese

Rationale and user impact

Artifact versions do not reliably describe wire compatibility. Server and client protocol intervals let newer SDKs retain support for older Servers while allowing breaking Server releases to reject SDKs that no longer overlap. Servers without GetServerInfo are rejected, so the mechanism is introduced with a Server-first upgrade.

Workers now fail startup before index synchronization or listener binding when the information RPC fails, an interval is invalid, or the intervals do not overlap. Existing running Workers do not renegotiate. Operators can check CLI compatibility explicitly with dexcli version check.

Validation

  • UV_CACHE_DIR=/tmp/dex-uv-cache make generated-code-check
  • make copyright-check
  • make docs-prose-check
  • make -C server unitTests
  • Temporal and Cadence TestServerInfo integration tests
  • CLI test and integration suites
  • Go, Java, Python, TypeScript, and Rust SDK compatibility tests
  • Java publication smoke test and public documentation check
  • Python pre-commit and public documentation checks
  • TypeScript typecheck, tests, and documentation check
  • Rust fmt, clippy, tests, and documentation check
  • actionlint for every changed release workflow

The full local Server integration command also exercised the new tests successfully, but the aggregate run reached its 20-minute timeout after two unrelated Cadence text-search assertions returned no results. Those assertions reproduced in isolation and are outside this change's search paths.

Related

The matching dex-developer skill update is published as a separate stacked PR because it lives in another repository.

@longquanzheng
longquanzheng marked this pull request as ready for review September 16, 2026 21:12
@longquanzheng
longquanzheng merged commit e93b803 into main Sep 16, 2026
60 checks passed
@longquanzheng
longquanzheng deleted the codex/sdk-server-protocol-compatibility branch September 16, 2026 21:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant