The current plan card shows only the plan expiry date.
Permission credential validity moves to Sync details, with a note that it refreshes automatically while online. This client change is awaiting release.
Upload changed file contents and an encrypted inventory each hour. Weekly generations start with an independent seed; every recovery point restores without replaying earlier hourly inventories.
Restore verifies encrypted objects, file hashes and database integrity, and continues to read existing full backups. Initial migration retains all old archives and new recovery points without automatic deletion.
Version 0.1.157 is published. Local end-to-end acceptance restored multiple recovery points and a legacy full archive, including SQLite verification. Production migration and restore acceptance remain pending; only the backup service needs an update.
Fix the disabled next-step predictions switch on Windows. Connect an AI gateway, enable takeover and sign in to ChatGPT, then restart ChatGPT through Codex Pass.
Version 0.6.46 is published with Windows regression checks passing. Native prediction display still awaits Windows acceptance and depends on the current model and ChatGPT preferences.
Secure-channel permissions refresh even when team synchronization fails. Compatibility with older Consoles preserves existing profile ownership checks.
Revoked permissions still take effect, and existing team data remains protected during Console upgrades.
Console 0.1.153 is now deployed with the workspace identity endpoints required by current desktop clients. This restores permission renewal that could otherwise stop after a client upgrade.
Verified with the secure channel enabled: two real model requests completed successfully.
An optional Codex setting shortens recognized base instructions while retaining essential tool rules. It is off by default and includes one-click restore for subsequent requests.
Applies to native Responses requests sent to an AI gateway through the local proxy. Custom instructions, Skills, memory, unknown templates, official account requests, and other protocols are preserved. Savings and task results vary by model.
The sidebar toggle sits at the upper-right corner of the sidebar, with space beside its edge. When the sidebar is hidden, the toggle remains available in the upper-left toolbar.
The toggle stays in the window-control row with space around the icon. On macOS it clears the system window controls, including in narrow windows. Keyboard shortcuts and the saved sidebar state remain available.
Changing the model, reasoning effort or Fast mode no longer triggers a configuration alert, including preferences saved in profiles. Other ordinary settings also stay quiet.
External changes to connection and routing settings still trigger a reminder. Deleted, unreadable or malformed configuration files and referenced model catalogs still require attention. Current edits are preserved.
Diagnostic reports include recent failed-request metadata and identify information that could not be collected. Interrupted HTTP 200 streams also count as failures.
Dollar amounts in usage views display two decimal places. Weekly report images retain the full cost summary and place the brand on its own line.
Root administrators can view and download App diagnostic reports, filter their status and save handling notes. Original reports remain available for the existing 90-day retention period.
Team administrators can see ChatGPT emails for team-managed accounts and active personal sign-ins in the member list. Credentials are not returned.
Changes are awaiting release; Console has not been deployed.
Find projects by their Codex names and chats by their titles. Project selection, project filters and chat selection use searchable menus styled for the app.
Instructions follow the project and its chat membership. Renaming a project keeps its instructions; projects sharing a folder stay separate. Existing folder rules are reused only when they identify one project.
Chat instructions override project instructions, then global instructions. Clearing an override restores inheritance. Saved changes invalidate earlier suggestions.
Set instructions globally, per project directory or per conversation. Conversation instructions override project instructions, and projects override the global default. Clearing an override restores inheritance.
The settings page shows the saved effective source and instructions. Filter conversations by project and search by title or ID. Composer help uses connected paragraphs. Notification fallback follows the same instructions.
Saved edits invalidate earlier prediction cache versions. Repeated native predictions reuse the previous answer when only helper-message IDs or internal timestamps change.
Nine checks passed with the original signed macOS client and real GPT-6.1 Sol text inference in an isolated profile. Web search/image tools were disabled for this acceptance run; Windows/Linux native runtime was not exercised. Already displayed suggestions refresh on the next native prediction.
When several Codex binaries are installed, discovery selects the stable release over a same-number alpha and correctly orders numbered prereleases.
Build metadata alone no longer triggers an app update or a minimum-version requirement. The Codex version gap does not count multiple builds of the same release as separate upgrades.
Compatibility warnings and macOS/Windows desktop build rules retain their existing scope. This fix is not yet released.
Capability scans and Check updates use the same version comparison, including alpha, beta and release-candidate suffixes.
A prerelease is older than the stable release with the same version number. An alpha of the next version is newer than the previous stable release. Build metadata does not affect version precedence.
Compatibility warnings are retained. This fix is not yet released.
Administrators in Plan and Workspace can open a separate temporary sign-in window through the member account proxy. The window and member dialog show the measured exit IP.
Location follows the exit IP and WebRTC is restricted. Missing or mismatched exits, unavailable routing or expired authorization stop the browser; device anonymity is not guaranteed.
Implemented and not released. Requires the matching Console update and macOS 14 or later on Mac. Native test pages passed on macOS, Windows Server 2025 (WebView2) and Ubuntu 22.04 (WebKitGTK). Real ChatGPT authorization and Windows 10/11 desktop acceptance remain unverified.
A signed desktop administrator endpoint supplies the current pending member authorization and matching account proxy to the native App. Ordinary account lists remain redacted and refresh tokens are never returned.
Merged into the source and not deployed. Update the Console app together with the matching App; core, executor, schema, environment and reverse-proxy changes are not required.
Next-step reminders stay on the computer running that turn, matching turn-cost reminders. Synced conversations no longer generate extra suggestions or consume model quota elsewhere. Continuing on another computer follows its new turn, including when usage logging is off or upstream usage is absent.
Pending Codex settings remain visible after reopening Codex Pass. Restarting ChatGPT acknowledges only settings saved before that restart began, preserving reminders for concurrent saves. Model-picker preferences and unchanged settings do not create a durable reminder.
Doctor can verify that a local route probe actually reaches Codex Pass. Optional native checks compare direct arrival with the Codex Pass proxy environment without credentials or redirects; external Codex process routes remain unverified.
More changes
Usage includes remote Codex compaction outside ordinary token snapshots. Repeated scans, archive copies and identified responses across pages do not count that consumption twice, while existing ordinary request identities remain stable.
With Official first enabled and an AI gateway selected, explicit model-capacity failures during compaction can fall back to that connection and keep follow-up requests there. Quota is not marked exhausted; policy refusals, unrelated failures and streams that already produced output retain their handling.
The tray stops showing quota from an invalid or previous ChatGPT login. Signing out, switching accounts or an authentication rejection invalidates old readings. Temporary network failures preserve otherwise valid readings; late observations from an earlier login are ignored.
Released as v0.6.39 (prerelease) for macOS Apple Silicon and Intel, Linux ARM64 and x86_64, and Windows x86_64. All five public update packages were downloaded and their signatures verified. Please update Codex Pass on both computers.
Adaptive routing can score a channel's success rate by a lower confidence bound, so a channel with only a few successes ranks below a proven one until it has enough results. New channels still receive traffic.
Adaptive routing can keep each channel's long-term success rate and first-byte latency in the database, shared by all gateway nodes, so a restart or a quiet period no longer gives a chronically failing channel its full share again. In an end-to-end restart test, failed attempts on such a channel fell from 10–14 to 3–6 per 60 requests.
Both are new options on the circuit breaker settings card (Score Confidence and Long-Term Score Half-Life) and are off by default; with both off, routing is unchanged. Texts cover Chinese, English, French, Spanish and Japanese.
Extends the macOS Send-button compatibility to Windows and Linux. With an AI gateway connected and takeover enabled, an exhausted official allowance no longer blocks sending to that gateway.
Please open ChatGPT from Codex Pass to load the required settings. Windows can request a restart for an existing client; on Linux, please fully quit ChatGPT first, then reopen it from Codex Pass.
Released in v0.6.38. Preserves the official login, actual quota recovery checks and configured Official-first thresholds. Windows and Linux native startup paths are tested with isolated fixtures; authenticated native GUI acceptance remains pending. Official voice, image generation and Apps remain subject to their own availability.
On macOS, a connected AI gateway can keep the Send button available when the official ChatGPT allowance is exhausted. Open ChatGPT from Codex Pass; an already running client may need one restart.
The official login, usage percentages, reset times and separate feature limits are retained. Official-first keeps its configured reserve thresholds and checks the real allowance independently for recovery.
Released in v0.6.37. Update Codex Pass, then open ChatGPT from Codex Pass; one restart may be needed. Native acceptance used simulated exhaustion and a local model fixture. Voice, image generation and Apps remain subject to official availability.
MyCP now suggests mostly common English names, with a smaller selection of less common established names. Customers can request another suggestion; free text and symbols remain rejected.
Existing pinyin names remain valid for renewal and synchronization. The matching IdP update is deployed and Console v0.1.151 is published. The operator still needs to update the Console app.
Adds a four-digit @mycp.dev identity beside ChatGPT account binding. One-time CNY 100 payment covers 30 days; display names use generated pinyin. Initial capacity is 25 seats.
Console federation links a fixed user identity with verified payment and single-use login codes. Expiry or refund stops new SSO. OpenAI membership removal is required before an administrator releases a paid seat.
Console v0.1.150 is published and MyCP is deployed. Purchases remain closed until the operator updates Console and configures matching keys, Stripe and verified-domain joining. Live payment and automatic team joining remain to be verified.
Codex first tries a WebSocket connection to the Responses API. Codex Pass answers 426 so Codex uses HTTP. The request log now labels these rows Switched to HTTP and explains that no action is needed.
These rows appear under successful requests instead of failed ones, and they no longer make the tray report recent errors. Other 426 responses and real failures on the same path still show as failed.
Released in v0.6.37. Please update Codex Pass to use the corrected request status.
The AI gateway console adds a Degradation benchmark page next to channel health, visible to administrators.
A fixed probe suite of five SVG drawing tasks and one deterministic logic question replays against every enabled channel on a schedule, every 3 hours by default. Each channel runs one model, chosen the same way as channel tests, and a channel ID list can limit the scope.
The archive shows each probe's SVG output or answer, pass or fail, the failure reason, duration, channel and model. A Run now button starts a round immediately, and root can change enablement, frequency and channel filters on the page.
Texts cover Chinese, English, French, Spanish and Japanese. Prepared for review and not released.
Connection codes accept Apps in the same major.minor series. For example, a code issued for 0.6.1 can connect an updated 0.6.x App. Other series and device platforms must still match.
Requires App 0.6.36 or later in the same version series and Console 0.1.149 or later. Login encryption, device binding, and one-use codes remain enforced. Older Apps keep exact-version checks and do not consume a mismatched code.
Existing login recovery keeps the same device connection when an administrator signs a lapsed ChatGPT account in again. The App retrieves the renewed credentials automatically; the member does not need to reconnect through Console. Explicitly revoked connections still require new access.
Connection codes accept Apps in the same major.minor series. For example, a code issued for 0.6.1 can connect an updated 0.6.x App. Other series and device platforms must still match.
Requires App 0.6.36 or later in the same version series and Console 0.1.149 or later. Login encryption, device binding, and one-use codes remain enforced. Older Apps keep exact-version checks and do not consume a mismatched code.
The release images are published; server deployment is managed by the operator. Existing recovery keeps the same device connection when an administrator signs a lapsed ChatGPT account in again. Explicitly revoked connections still require new access.
Startup checks configuration changes made while Codex Pass was closed. An enabled connection restores its saved route and repairs conflicting model catalog references and matching stale caches, while keeping compatible settings and explicitly saved custom catalogs.
Notifications distinguish restored connections, adopted settings, and incomplete recovery. Failed recovery retries on the next launch. Native model selection and sign-in files are preserved. Running Codex clients must reload their configuration.
Doctor detects custom catalogs even when they contain gpt-* model names, including the active profile. Intentional catalogs can be kept; explicit removal preserves model preferences and catalog files.
Background monitoring reports configuration changes; it does not block other processes from writing files.
Each full restart checks public update requirements immediately. Required updates download automatically; other users can continue using the app and receive the normal update notice.
A minimum supported version can require an upgrade. Existing local package verification and explicit restart remain in place. Earlier clients need one normal upgrade to support these requirements.
Published in 0.6.35 for Windows x86_64, macOS x86_64/arm64, and Linux x86_64/arm64. All five public update packages were downloaded in full and their signatures verified again after Console deployment. Console 0.1.148 is deployed with every rule optional. Native Windows forced-update installation remains pending.
System settings includes App updates, with force-latest and minimum version controls for all platforms, Windows, macOS, and Linux.
Global requirements also apply to each platform. The higher minimum wins, and the required version must have published packages for every supported architecture. Reading the policy requires no login or invitation.
Console and its backup service are running 0.1.148. Core and executor were left unchanged. The public policy endpoint is live; all platform rules remain optional with no minimum version. Legacy connections are not revoked.
The App checks its public IP through the actual ChatGPT route, including enterprise channels, account proxies, Console tunnels and configured local proxies. Signed reports distinguish public measurements from Console connection sources. Requires Console 0.1.146 or later.
Official account keeps Retry available. Failed or stale checks do not reuse a previous matching result; Console browser checks remain separate from the member App.
Raw Codex memories are exported read-only into the storage vault as JSONL. Team uploads are redacted. This is backup-only and is not restored into another computer. Other computers using 0.6.33 or earlier must update before reading the new vault manifest; newer Apps skip unknown entry kinds.
More changes
Team storage can upload one project’s memory and immediately sync its sessions, memories and raw memories. Members’ Apps can also execute Console scan-and-upload commands on the next sync.
Workspace sync skips project documents the member cannot read for that round, preserves existing local content and continues other projects. Reconnection-required failures still appear. Home recent-conversation titles use smaller text.
Released as v0.6.34. The public update feed provides macOS Apple Silicon and Intel, Linux x86_64 and ARM64, and Windows x86_64 packages; downloaded updater packages match their published sizes and SHA-256 digests and pass updater signature verification. Your installed App still needs to be updated.
App connection sources, including private enterprise tunnel addresses, are shown separately from measured public exits. Legacy observations are no longer reported as public-exit mismatches.
Member-account dialogs and platform seats can test the current browser directly. Browser results have their own time and do not overwrite the member App result; proxy rules may differ between browsers and Apps.
Updated Apps report a signed public check through their ChatGPT route and identify enterprise channels and configured local proxies. Failed or stale measurements do not claim matching exits. Actual App measurements require the matching App update.
Console v0.1.146 is published with verified amd64 and arm64 images. Actual App measurements are included in App v0.6.34. The Console server still requires an operator update; publication does not confirm deployment.
Account IP checks use the actual ChatGPT route, covering enterprise channels, account proxies, Console tunnels and configured local proxies. Public echo requests carry no account token, Console credential or device proof.
The App automatically measures and signs a minimal report to Console. Official account always offers Retry; failed and stale checks do not reuse a previous matching result. Requires Console 0.1.146 or later.
Released as v0.6.34. The public update feed provides macOS Apple Silicon and Intel, Linux x86_64 and ARM64, and Windows x86_64 packages; downloaded updater packages match their published sizes and SHA-256 digests and pass updater signature verification. Your installed App still needs to be updated.
The Last 24 hours list uses smaller conversation titles to keep recent activity easy to scan. Text continues to follow your interface size setting.
Released as v0.6.34. The public update feed provides macOS Apple Silicon and Intel, Linux x86_64 and ARM64, and Windows x86_64 packages; downloaded updater packages match their published sizes and SHA-256 digests and pass updater signature verification. Your installed App still needs to be updated.
Changing a conversation model or reasoning preference no longer raises a configuration warning, including inside profiles. Connection and permission changes and damaged configuration files still raise alerts.
Usage logs can filter for saved request content, with request and response content shown before technical details. Capture also covers model catalogs, MCP, invalid requests and unmatched routes; existing limits remain, and pairing credentials are excluded.
Share links provide Markdown instructions for AI agents, with visitor API and MCP access. The Sharing page can copy AI access instructions. Existing invitations, limits and moderation rules still apply.
More changes
Opening a thread just to read it no longer immediately calls a prediction model. Unchanged threads reuse a local cached prediction; a new prediction waits five seconds and is cancelled if you close the thread or switch to another thread during that time.
Enterprise channel failures stay visible in notices, Home and Settings until connectivity succeeds. Monitoring, exempt and paused routes do not show an outage warning.
Released as v0.6.32. macOS Apple Silicon and Intel, Linux x86_64 and ARM64, and Windows x86_64 packages are available through the public update feed. Your installed app still needs to be updated.
Remembering a model or reasoning preference no longer triggers an external configuration warning, including when using configuration profiles.
Connection, permission, and other monitored settings still trigger alerts. Missing, unreadable, or malformed configuration files still trigger alerts. Current settings are not overwritten.
Released as v0.6.32. macOS Apple Silicon and Intel, Linux x86_64 and ARM64, and Windows x86_64 packages are available through the public update feed. Your installed app still needs to be updated.
Use the Contains request data filter to find requests with viewable content, including records beyond the first page.
Rows with request data are marked in the list. Request and response content appears before technical details.
Recording also covers model and plugin catalogs, MCP and HTTP handler failures. Pairing credentials are excluded. Existing size and retention limits still apply.
Released as v0.6.32. macOS Apple Silicon and Intel, Linux x86_64 and ARM64, and Windows x86_64 packages are available through the public update feed. Your installed app still needs to be updated.
Team owners and administrators can set monthly and total USD limits from a member’s usage dialog. Both limits apply alongside account-wide limits.
Each member’s budget counts only spending in the selected Workspace. Dollar usage and remaining amounts are shown first; Token and request controls remain available.
Console and Core are deployed to v0.1.131. Existing member caps remain unlimited until a manager sets them.
View monthly and lifetime limits, used amounts and remaining amounts for both your account and the connected Workspace. Console v0.1.131 or later is required for team limits.
Dollar costs take priority in usage views, with pending and settled charges kept distinct.
Published in v0.6.30 for macOS, Windows x64 and Linux. The in-app update feed serves this release; GitHub labels it as a prerelease. Microsoft Store submission is blocked by listing search terms.
Spare tasks use official weekly quota that would otherwise expire.
Check & repair → Processes shows which project, conversation and command uses CPU and memory when ChatGPT or Codex slows down.
Check & repair → Processes now works on Windows.
More changes
Check & repair shows how far an installed Codex is behind the official stable release.
Refreshing or reconnecting the Remote page no longer locks the conversations it had open.
A conversation that Codex is using elsewhere on the computer opens read-only in Remote instead of empty.
Remote starts conversations with the model and thinking depth chosen in Codex on the computer.
A pairing link opened in a tab that already shows Remote now connects and clears the key from the address bar.
A new Remote conversation is titled with its first message right away, renamed files are labelled as renamed in the changes panel, and English counts read "1 minute ago" and "1 step".
Model usage now includes sessions that Codex has compressed.
Long conversations that span several session files are counted request by request.
Cache hits reported by Chat Completions AI gateways are no longer lost.
The Sharing page says why visitors cannot ask new questions when the sharing service holds them back.
A visitor who returns to a share that has since been deleted sees that it no longer exists.
Visitors see why a voice question failed.
Busy or rate-limited requests no longer tell visitors that no questions are left.
The moderation inbox loads older reports.
Codex threads on Chat Completions AI gateways no longer stop with HTTP 400 after certain tool-call histories.
Kimi and Moonshot AI gateways accept the tools that Codex Desktop provides.
Gemini tool calls keep working after the first tool turn.
Reasoning that a gateway writes inside thinking tags is shown as reasoning, and long reasoning streams without pauses.
Responses from AI gateways that mix LF and CRLF line endings no longer stall.
Your own storage now backs up sessions that Codex has compressed.
Usage logs show the thread name for requests from sessions that Codex has compressed.
The session sync page now counts conflict copies of compressed sessions.
A sharing entitlement now works only for the connection it was issued for.
Log files no longer contain the local credential of the enterprise channel.
Sync client, Remote and Share sources in an isolated worktree while retaining enterprise identity, service origins and signature checks. Local source sync only; unpublished.
The page's explanation is rewritten in plain words in all five languages: most of these requests are settled automatically; nothing here costs extra credits or changes the bill; only members with a monthly Token limit are affected, because an unconfirmed request counts toward their limit at an estimate; to resolve one, open Request details and enter the actual usage.
A live Solo subscription upgrades to Team without canceling.
Accounts holding a paid lifetime license (bought signed in, claimed by key, or credited) no longer receive the Solo lifetime award; the evaluation is recorded as excluded (paid_lifetime).
Team storage redacts conversations and memories before sealing them.
The AI gateway has one name everywhere.
Each page's own refresh button is gone.
More changes
The Data sync page explains its four sections and how conversation sync and your own storage relate.
Approving a computer for team-held keys now binds the fingerprint the administrator verified.
Creating a team key no longer deletes the local key when the Console's answer is uncertain.
A connection that pinned a team key never falls back to plaintext uploads.
Your own storage no longer syncs the memories the workspace delivers.
An unreadable manifest from another computer can no longer make an older memory version win.
Switching where Skills are stored no longer stops syncing forever.
In-app ChatGPT installation verifies nested code with codesign --deep and respects every Gatekeeper rejection.
Reset to the official state keeps what you wrote yourself.
The startup wizard and in-app ChatGPT installation handle failures and cancellation properly.
Your own storage keeps local files safe in more edge cases.
Skills sync to your own storage reports the storage's real error codes, no longer lets two computers overwrite the same version, and syncs before switching locations.
Reset to the official state is safer and more transparent.
Diagnostics redact more secrets and no longer wait for a running startup check.
Team storage validates presigned URLs, hides their signatures in error texts, and reclaims safely.
Team-held keys are verified end to end.
ChatGPT keeps its connection when Codex Pass restarts or updates.
Plans ask for a term and a payment method separately.
Credit packs on a Workspace without a paid plan now say that a paid plan comes first and point to the plans, instead of "No top-up packs are on sale yet".
Public pricing page, /pricing.
More changes
Personal purchase gift in Console.
Copy: the six-month term reads "6 months, paid once" (「6 个月,一次付清」); see docs/billing.md for the corrected credit pack rule.
The System page lists saved Resend keys by their last four characters and sender, adds keys one per line and removes them one at a time; keys are still never sent to the browser.
The legacy erase now also removes the team memory contributions the Console kept.
Fixed: when two first requests created the same member or shared vault at once, the losing request answered with its own discarded key instead of the stored one.
Prepaid renewals retain the original calendar day after a short month.
Deployment for the five-edition rollout: update console app first and confirm its database migrations finish, then update console-core before enabling the new plans.
Codex Pass now checks the signature of the compatibility notes, quota policy, hook descriptions and feature descriptions it downloads from the public mirror.
The enterprise secure channel is rolled out in stages.
The enterprise secure channel can run on a server other than the Console.
More changes
When the secure channel refuses or cannot complete a connection, the error in Codex now names the secure channel and the address.
A failed enterprise secure channel connection now says why.
The recent-usage home card and the conversation-usage panel now report totals that cover the entire time window.
On Windows, launch at login is now registered for the current Windows user only.
Permission prompts raised by ChatGPT are no longer attributed to Codex Pass on macOS.
On Windows, the Codex Pass data folder and credential files are restricted to your user account and the system.
Codex Pass tells you once when this installation cannot receive updates.
Reconnecting a custom API no longer overwrites what you type while the saved settings load.
A pushed workspace conversation that Codex could not start no longer stays in "Preparing" for ever.
Launch at login now works when the app is installed on a second disk or an external drive.
The capability scan tests at most three models at a time.
When a local command-line tool refuses its input and exits at once, its own error message is kept.
Image download addresses named by an AI gateway can no longer point at this computer through the unspecified addresses 0.0.0.0 and ::.
Goal guardrails now notice edits to a file listed after a rename whose old path was three bytes or shorter.
Skill sync rejects packages that contain paths the scanner itself skips, such as .git, node_modules or .DS_Store.
Skill sync caps the size of a downloaded object.
Access log rows for requests stopped by the official quota hard stop say which limit stopped them.
The Optimize page no longer reports a missing initial configuration when it only failed to read the backup.
Jev connection failures and probe timeouts are shown in the interface language.
Mission Control no longer shows another goal's project check command for a moment while the goal list changes.
The first step of the first-use guide describes what Codex Pass shows and changes in Codex, and the Chinese guide addresses you formally.
A startup check that fails is reported with its error and a way to check again.
Clearing an outdated setting from the startup check explains why a key cannot be removed.
With the hard stop on, simultaneous requests to the official account can no longer pass the stop line together.
With the hard stop on and the official account as the current connection, compaction requests respect the stop line.
The skill sync service refuses an oversized upload while reading it.
The enterprise secure channel works again with Consoles older than 0.1.53.
A browser removed in Remote Access now says so after a reload and forgets the saved access key.
On Windows, sharing no longer fails with "Cannot write local sharing state" when several changes are saved at the same moment.
Connection security keeps only pairing and device binding.
A paired channel server that reaches the Console over the internal network shows as "internal network" instead of a private address as its exit.
On start the Console moves 0.1.62's channel exits into the pool under the same IDs (member exits, defaults and usage keep pointing at them), merges entries with the same address and empties cp_workspace_channel_exits (the table stays for a pinned core, so the schema check passes and core needs no upgrade).
New internal endpoints for the server (GET /internal/v1/secure-channel/exits, POST …/exits/report, POST …/usage); the lease carries exitId and exitProxy.
Policy version 3 (X-CP-Secure-Channel-Policy: 3) adds destinations to the signed policy (all for a Workspace's own server, allow with the host list for the platform's), so the next App sends only those connections into the channel.
A paired server reaches devices only after the Console checked it.
Pairing is the only way to set a Workspace's server: the address and trust-anchor fields are gone from the page and the settings endpoint ignores them.
The platform's own channel, for plans with platform_channel, is a cp-channel server named by CODEXPASS_SECURE_CHANNEL_ORIGIN with its inner CA in CODEXPASS_SECURE_CHANNEL_CA_FILE (and a platform token from CODEXPASS_SECURE_CHANNEL_SERVER_TOKENS); without the origin there is no platform channel.
Add an independent enterprise desktop and Windows/macOS preview builds. Bundle an optional standalone channel that upgrades do not automatically enable.
Move Remote and Share to Node.js and SQLite. Organize services with Compose while retaining access controls and customer configuration. A supporting-service milestone for the enterprise client.
Deploy this Console version and the existing platform signing key before that Desktop release: bound clients need a signed policy even when their plan does not enable the channel.
Testing a model connection reports the most useful failure.
The Models page no longer locks up when the entry being edited disappears after a refresh.
Request and access logs show when a refresh or "load more" fails
More changes
Image generation explains an ended workspace seat instead of saying you are not signed in,
A damaged Codex desktop state file no longer stops the sharing library from loading.
Opening Codex Pass a second time brings the window back to the taskbar,
The outbound proxy keeps working after a connection error, accepts IPv6 proxy addresses, and only opens the Console tunnel to trusted Console addresses.
The workspace invite-code description points to the "Invite members to the workspace" section by its current name.
Remote control no longer sends your messages to a computer that is in the middle of disconnecting.
Opening a remote-control pairing link no longer stores the key in the browser without asking.
A shared question that times out while waiting in the queue is given back to the visitor's allowance.
Codex Doctor finds Codex installed through pnpm, nvm or a custom npm prefix on Windows,
Codex desktop updates that require a single-number macOS version are no longer hidden.
Exporting diagnostics no longer leaves a partial file behind when it fails,
Restarting ChatGPT asks for confirmation when Codex Pass cannot tell whether a conversation is running,
A damaged Codex Pass block in AGENTS.md no longer causes content outside the block to be deleted.
The Codex compatibility cache from an older version is refreshed instead of trusted,
Links in the Codex hooks section open in the browser,
Team memory can pull the team's memory on a computer without local repositories,
Adding a workspace session no longer overwrites session entries Codex wrote at the same moment.
Mission Control respects its on/off switch,
Gateway error messages describe the failure more precisely.
Traditional Chinese and Japanese error messages use the interface's wording.
Requests that are still too large after removing images now also drop earlier generated images,
Chat Completions channels report truncated or unusual replies correctly.
Tool search calls and xAI tool schemas are handled correctly,
Compaction no longer skips the tool-output check and reports summary failures as request errors instead of server errors,
A failed search fallback no longer switches the rest of the request to the official account.
Official-first routing only stops after a real sign-in rejection,
Adding official models to a relay keeps new official-only switches turned off,
A connection made with the member's own login now ends only when the console revokes it.
The connections page shows a member whose team account is not working that they may sign in their own account meanwhile, when the policy allows it, and offers "Use my own ChatGPT account" next to a working team account when the policy is "Allowed, and used first".
Update the console app container; the new own_login_policy column on cp_pool_accounts is added automatically.
This also applies when the team account's refresh failed: the member waits for the administrator to sign it in again instead of claiming a free account.
The connections page shows only the status of the team account to a locked member, without the own sign-in form or the free account, and the member list tells administrators that signing in an account replaces the member's own login in the team.
Connection-code form: the project picker moves into "More options" next to device compatibility, so device name, the ChatGPT replacement choice and "Create App connection code" fit on one screen.
The list of authorized apps is padded inside its panel with a line between rows (the 0.1.38 panels put text and buttons against the panel edge).
The activity log, team knowledge and backup lists get the same inset and row lines.
Picks up the current shared design library: higher-contrast secondary text in light and dark mode, consistent icon spacing and the current palette set.
Company memory ranks entries by recent use as well as agreement.
Members' "Mark wrong" in the App now reaches Console (PUT /desktop/v1/team-memory/flags, the device's complete list).
scripts/team-memory-e2e runs the merge, ranking and flag flow against a local console started by scripts/dev.sh, signing requests like the App, and writes the transcript as its artifact.
A member whose own login is signed out (by them or by OpenAI) can now enter another ChatGPT email instead of being refused with "Disconnect the existing ChatGPT account".
Member entitlements list every catalog key with enabled and reason, add maxDevices, and apply a new step after the Workspace policy: member_off.
Issuing or redeeming a connection for a member who has reached the plan's device limit is refused with HTTP 409 device_limit_reached and the limit; connected devices are never cut off.
Every Workspace now buys model credits at the platform retail multiplier.
More changes
Team plan cards show Stripe tiered (volume) prices by their tiers, and root can set a regular price per price mapping that is shown struck through next to the price.
Sell local edition licenses (cpl1, Ed25519) on the new /licenses page: monthly and yearly subscriptions and a lifetime one-time purchase at the fixed prices of the editions contract.
Update both containers, the console app first and then the model relay (console-core), and announce the relay update in advance: the uniform retail multiplier is applied by the relay, so set CONSOLE_CORE_TAG to v0.1.34 in .env.
Add the optional CODEXPASS_INFERENCE_BASE_URL setting: the origin new App connections send model requests to.
Update both containers, the console app first and then the model relay (console-core), and announce the relay update in advance: set CONSOLE_CORE_TAG to v0.1.33 in .env.
Existing services become relayed: their keys are no longer sent to member Apps, which remove them at their next sync.
Update both containers, the console app first and then the model relay (console-core), and announce the relay update in advance: set CONSOLE_CORE_TAG to v0.1.32 in .env.
A TypeSafe Jev service is a decision service, not a model provider: it is sent to member Apps in a new decisionServices list, it never appears in the member model list, and it accepts exactly one model.
Rename settlement alerts to "Usage to confirm" and rewrite the page in plain language in English, Chinese, Japanese, Spanish, and French: what the listed amounts are, that they are not charged, that they only affect members with a monthly Token limit, and when no action is needed.
Update both the console app container and the model relay (console-core): the new zero-usage rule runs in the relay, and the one-time cleanup runs in the app.
Show members by their display name consistently across lists, account dialogs, ownership, project handoff, model access, and memory access.
Add password visibility controls, preserve unfinished input when switching sections, confirm before discarding memory drafts or removing a domain, and make invitation setup actions lead directly to the relevant controls.
Replace internal setting names and technical explanations with clearer labels and guidance in English, Chinese, Japanese, Spanish, and French.
This update changes Console pages and member display data only.
Display top-up offers, balances, wallet history and redemption results as USD usage amounts instead of mixing internal credits with estimated model tokens.
Redesign Trials & gifts around the user's available promotional balance, nearest expiration, and individual gift balances.
Localize the invitation welcome gift in all five languages, keep expired, exhausted, revoked, and other-workspace grants out of the available total, and show claim duration, limits, loading, retry, and empty states.
Avoid reporting a proxy connection failure as an authentication error when its URL or port happens to contain 407.
Let connected App users buy credit packs for their personal Workspace through device-authenticated Stripe checkout, with balance and purchase history.
Bind a managed ChatGPT account's device traffic to the server's exit (docs/egress-binding.md, first step): the connection payload and credential snapshot carry an egress block for Apps from 0.5.50 ({"mode":"console"} for a root pool account, {"mode":"device","url":…} with the proxy for a team member account with one), GET /desktop/v1/egress/whoami tells a connected App which address it arrives from and records it, saving or testing a proxy learns the address the console leaves from through it (via the public GET /api/desktop/egress/echo), and administrators see the server and App exits side by side in the member dialog, the pool's proxy list and seat list.
Tunnel a pool account's OpenAI traffic through the console: GET /desktop/v1/egress/tunnel?host=…&port=443 (sync key and device signature, WebSocket) pipes the device's own TLS session to an OpenAI host through the account's egress proxy, or from the server itself when the account has none, so the console never decrypts it.
Regularize page layouts: one page width for every workspace and administration page, metrics as one framed row, the overview as full-width connect block plus two equal panels, one level of framing per page (boxes inside a panel become divided blocks or inset panels), the plan and balance section as a side navigation instead of a second row of tabs, and System settings without its duplicate card heading.
Let the desktop App's Workspace page show the member's account, Workspace and plan, and let owners and administrators create, list, re-copy and revoke member invitations with the App's device credential (GET /desktop/v1/workspace, /desktop/v1/workspace/invitations).
Use formal, polite wording in every language (Chinese 您 and 请, Japanese です・ます, English without contractions, Spanish usted, French vous), including messages returned by the server.
Connect Stripe from System settings: the secret key and webhook signing secret are saved sealed and applied at once, with the environment variables as fallback.
More changes
Price gateway reseller traffic at the gateway wholesale price times a retail multiplier set in System settings (plans can override it), show every model's wholesale, retail and list prices to administrators and its retail prices to workspace members, and record every relay request in a per-request ledger.
Reconcile each reported gateway day against that ledger: the difference between wholesale × multiplier and what was charged is settled as one true-up entry per workspace, and corrected gateway figures apply only the change.
Add the Personal Plus plan for personal workspaces, with an optional monthly token allowance that lapses at the period end, sold as prepaid one-, three- or twelve-month terms or as a card subscription.
Sell credit packs and accept redemption codes: one-time payments confirm asynchronously (Alipay, WeChat Pay), orders are applied once, and codes generated by administrators add credits to the workspace that redeems them.
Show personal workspaces a balance card with the period allowance and permanent balance in tokens, the plans and packs on sale, redemption, orders and invoices; list orders and redemption codes under Subscriptions & payments; include the balance in the App configuration.
Group general settings, members, client preferences and activity behind bookmarkable workspace tabs.
Show existing devices before installation guidance, distinguish device names from platform details, and separate downloading the App from connecting a new device.
Use a compact workspace summary and narrower settings pages, with responsive navigation and the shared light/dark theme.
Prefill App connections with the latest published desktop version and detected platform, enable ChatGPT account replacement by default, and align its checkbox and explanation on narrow screens.
Apply consistent information layouts across system administration, personal workspace and authentication pages while preserving the shared palette.
Keep directory search, filters and pagination outside scrollable tables; add sortable plan columns, column visibility and contextual actions while retaining server-side user and workspace pagination.
More changes
Organize settings, workspace details, plans, billing, trials and account-pool records into named task views that preserve unsaved drafts.
Improve compact project and record lists, dialog focus restoration, trial form alignment and loading or unavailable states.
Include repeatable browser checks and a local before/after viewer covering 38 route and role views plus 50 named page sections.
Opening a native Codex thread from the sharing page or Mission Control uses the neutral codex_open_thread command; the desktop project list file name lives in codex_config, so the workspace module no longer depends on the remote-access module.
Separate current plans, permanent balance, trial benefits, saved configuration and device reports.
Improve administrator directories, plan pricing, subscriptions, channels and system settings.
Fix narrow-screen table readability, form alignment, recent-project ordering across time zones, and draft retention while switching settings categories.
More changes
Read the Gateway reseller balance and available pricing groups, and allow administrators to select the workspace pricing group.
Include repeatable local fixtures, browser interaction checks and page-by-page Refero design references covering 32 page types.
Usage accounting no longer writes to SQLite on the proxy's request threads.
The proxy notices panel showed "…" while loading because it asked for a translation key that did not exist; it now says "Loading notices…" in all four languages.
Remote access points at [link omitted] the address 0.5.5 shipped with no longer serves the relay.
Codex Doctor now reports "installed but not recognized" instead of "not installed" when it finds an OpenAI-signed desktop app under an unknown identity.
Windows installs of the current ChatGPT desktop app are detected again.
Sharing works on Windows and Linux: the host now finds the installed Codex CLI instead of assuming the macOS desktop path.
Third-party models that reason but publish no effort levels now advertise low / medium / high in Codex's catalog; models that do not reason advertise none.