DocsReference archive
Reference archive
Markdown ↗

Provider sign-in validation — 2026-09-26

Reference record from the SDK documentation snapshot. For current setup, use Install & connect.
On this pageActual native runtimeLifecycle and wire checksDesktop and browser checks

Scope: the source-preview Codex device authentication method and its owned SDK lifecycle, plus desktop 0.1.0-alpha.2. This is not a registry SDK release or a live-account/model qualification. The contract describes the supported workflow and its limits.

Actual native runtime

scripts/test-codex-native.py --suite setup ran the official Linux x64 Codex 0.157.0 ELF and adjacent code-mode executable in a bubblewrap namespace. The real home was hidden and external networking disabled. Binary SHA256: 1a822376d4634ac32dddc030e5117c63359f7f8cd4b1b64382c68190287d0258.

The production SDK worker, manager and HTTP transport drove native initialization, empty-account verification, account/login/start with chatgptDeviceCode, native completion and a fresh verified account/read. The fixture proved:

  • Actual native device-code polling, token exchange, workspace account routing and private credential-file creation. The SDK did not read credential contents.
  • Caller-bound attempt access, inability to confirm before native verification, explicit confirmation, stable SDK account binding and unchanged execution grants.
  • Cancellation and graceful-shutdown cleanup of unpublished private profiles; a confirmed profile and unrelated existing-account sentinel remained intact.
  • No thread/turn/tool/model RPCs and zero model calls.

The fixture's synthetic issuer uses Codex's official test issuer override on a loopback HTTP server. A test-only executable interposer passes the actual native RPC stream through and translates only that fixture verification URL to the production allowlisted device URL. Login IDs, completion, account verification, token exchange and storage are the native implementation. This seam does not qualify live issuer TLS, browser authorization, account device-flow eligibility, quota or any model. Production strips that test override and rejects a device URL other than https://auth.openai.com/codex/device.

The only provider HTTP routes observed were synthetic /api/accounts/deviceauth/usercode, /api/accounts/deviceauth/token, /oauth/token and /backend-api/wham/accounts/check. Raw exchange bodies, headers and credential files were not included in receipts.

Lifecycle and wire checks

The SDK check passed 336 tests, including new worker/lifecycle cases for early completion notification ordering, wrong login ID, unsafe device URL, completion without a verified account, populated-profile preservation, process cancellation, opaque/caller-bound attempts, revision conflict, credential expiry, replay rejection, shutdown, configuration preflight and redacted synchronous native failures. Existing active-run configuration isolation tests continued to pass.

The TypeScript, Python sync/async, Go and Rust blocking/async clients passed the shared conformance cases over loopback HTTP and certificate-verified HTTPS. New cases exercise waiting and verified state, empty lists, malformed/duplicate attempts, wrong account/provider/revision/attempt ID, invalid phase/time/ID and an untrusted device URL. The reference host checks the exact serialized setup request. Native account credentials are absent from the wire contract.

Desktop and browser checks

Seven desktop backend/security/packaging tests passed. Native Electron launch passed on Fedora with the actual renderer, isolated IPC and bundled Node. The external-link policy allows the exact official device page and rejects other issuer paths, query/hash injection and lookalike hosts.

The native renderer regression also checks the actual shared provider component: starting or cancelling sign-in preserves the selected provider's settings, confirmation remains unavailable until verification, successful confirmation selects the newly saved provider, and older hosts without the setup feature do not show an unsupported sign-in action. These checks use a synthetic transport inside the isolated smoke renderer and do not contact a provider.

T3's collaborative browser used the actual desktop renderer, controller, SDK host and a synthetic native executable in a separate private profile. It checked waiting with a device code, refresh preserving the attempt, no confirmation button before verification, account identity before saving, explicit confirmation, unchanged execution grants and visible reported models. Desktop and 390 × 844 views had no page overflow. Device interactions were absent from browser storage. The fixture did not open or authorize a live provider account.

The new native setup suite runs in the existing Prometheus-only Codex CI job; desktop packaging retains its non-root, offline Debian native smoke. Exact CI run/artifact evidence is recorded on issue #50 after the source is pushed.

Maintained with the AgenticDriver SDKSource snapshot ↗