Skip to content

[WRONG BRANCH] release: bring preview onto the verified 2.57.0 product tree - #4831

Merged
lidge-jun merged 222 commits into
previewfrom
codex/260917-preview-2570
Sep 16, 2026
Merged

lidge-jun merged 222 commits into
previewfrom
codex/260917-preview-2570

Conversation

@lidge-jun

Copy link
Copy Markdown
Owner

What this is

Step 6 of the 2.57.0 release train: bring preview onto the tree that just shipped, so the
prerelease train does not restate a stable that is already published.

preview was carrying 2.56.0 and the npm preview dist-tag still points at
2.55.0-preview.20260914. After this merge preview's tree is identical to main at
44de45dfdcgit diff origin/main HEAD is empty.

The only conflict was package.json's version line, resolved to main's 2.57.0, which is the
same resolution the 2.56.0 promotion #4698 used.

Release evidence

  • Candidate 1831193294 on dev, Cross-platform CI push run 35131181996: success.
  • main release commit 44de45dfdc, Cross-platform CI run 35133242171 and Service lifecycle
    run 35133242154: both success.
  • Publish: release.yml run 35135131119 with expected-sha=44de45dfdc33d30af22502d2bed98014fe16d83b,
    tag=latest, dry-run=false — success. GitHub release v2.57.0 created.

enforce-target is red here for the same reason it is on every promotion: that gate is for
feature pull requests.

lidge-jun and others added 30 commits September 6, 2026 01:08
[WRONG BRANCH] chore(release): promote verified candidate to 2.43.0
chore(release): promote validated 2.44.0 to main
Promote frozen dev source cf9f662; no new runtime changes. Candidate CI34061274315 and service34061276621 are the validation references. Publication waits for successful validation and the final main push CI at the exact release SHA.
Promote frozen dev source cf9f662 as 2.45.0.

The repository owner explicitly authorized this main/preview release promotion and admin PR-only merge. This is a release-specific owner decision, not an independent approval or the dev-only maintainer exception.

Frozen candidate full CI34061274315 passed all25jobs after one unchanged-source rerun of Windows5; the initial holder busy assertion remains recorded without a root-cause resolution claim. Service lifecycle34061276621 passed Linux/macOS/Windows. Dev version pre-move3812 is merged. Publication still requires this actual main merge SHA's own successful push CI and Service lifecycle. No local suites were run.
[WRONG BRANCH] chore(release): promote verified 2.46.0 to main
[WRONG BRANCH] release: promote 2.47.0 to main
[WRONG BRANCH] release: apply final roster correction to main
[WRONG BRANCH] release: promote 2.48.0 to main
release: promote verified 2.49.0 product tree to main
Promotes the audited freeze SHA 12c248f unchanged. The resulting tree is byte-identical to that commit's tree, d8f5a71, so what ships is exactly what the six-lane regression audit read.
[WRONG BRANCH] release: promote verified 2.50.0 product tree to main
[WRONG BRANCH] release: promote verified 2.51.0 product tree to main
Product tree is dev at 7bfb2ad. Only package.json differs, carrying the
stable channel version 2.52.0.

This promotion follows a CI repair and a regression sweep: dev had drifted 79
commits past its last finished run and the one run allowed to complete had
failed. #4390 fixed an integration test that never denied anything and had been
red on dev since #4342; #4396/#4397/#4398 closed four gaps in the quota
avoidance contract #4368 introduced; #4403 made a port fixture deterministic.
release: promote verified 2.52.0 product tree to main
Product tree is dev at eb81eaa, byte-identical (dev already carries the
2.53.0 version line).

This promotion follows a 364-commit regression audit (origin/main..981b53e)
by 15 parallel subagent lanes plus two audit-spawned fixes reviewed and merged
to dev: #4496 (live sideband connect watchdog) and #4497 (chat image part
shapes). Zero unresolved P0/P1 at promotion time. Exact-head hosted CI green
on eb81eaa (run 34750934849). Local suite NOT RUN per task rule; hosted
exact-head CI is the gate.
[WRONG BRANCH] release: promote verified 2.53.0 product tree to main
Product tree is dev at a84e6e8, byte-identical (dev already carries the
2.54.0 version line).

Headed by the Codex model-picker incident fix (#4531). On Codex
0.154.0-alpha.6.2 a paginated-history preflight vetoed the entire Codex config
write, so model_catalog_json never reached config.toml and both the Codex app
and the CLI fell back to their six built-in models, while ocx sync reported that
failure as success. The refusal is now scoped to the conversation-history
relabel unit on the apply direction only, narrowed to the one permanent reason,
and a provider table the home already published survives the write.

Exact-head hosted CI green on a84e6e8 via #4531 (run 34772128322): all four
Linux test shards, both macOS shards, gates, hygiene, storage policy, api usage,
keyring x3, npm-global x3, docker smoke, react-doctor. Local suite NOT RUN per
task rule; hosted exact-head CI is the gate.
[WRONG BRANCH] release: promote verified 2.54.0 product tree to main
lidge-jun and others added 20 commits September 16, 2026 15:08
…cation

fix(vision): fail closed on truncated sidecar captions (#4727)
…refresh_token_invalidated as revoked (#4737)

Maintainer integration: exact-head hosted CI is green at 7d3c6bd (Cross-platform CI 35044663972, React Doctor 35044663932). The branch merges cleanly onto current dev; a rebase would invalidate the green exact-head evidence without changing the touched contract. Host-owned merge decision; no local suite, typecheck, build, or install was run.
Maintainer integration of the carried #4729 implementation. Exact head 39d0649 passed Cross-platform CI run 35070233415 and React Doctor 35070233385. The carry preserves original author attribution and includes the parser/layout contract fixes found by exact hosted CI. Host-owned rebase and merge; no local suite, typecheck, build, or install was run.
Maintainer integration for the 2.57.0 stabilization scope. Exact head 4f4ccea has a green aggregate ci check with no failing job. The change is 18 lines of CSS plus an opt-in browser regression harness; no default is altered and no src runtime path is touched. Host-owned merge decision; no local suite, typecheck, build, or install was run.
Maintainer integration for the 2.57.0 stabilization scope. Exact head a28a7ef has a green aggregate ci check with no failing job. The retained event set is exactly what the consumers read, overflow drops only the replay record while content, terminal reason and usage still pass through, and preserving usage from completed legs when the continuation factory throws is a real fix. The accepted cost is recorded: on overflow a thinking-heavy turn loses the guard nudge rather than losing output. Host-owned merge decision; no local suite, typecheck, build, or install was run.
…etry (#4741) (#4798)

Maintainer integration for the 2.57.0 stabilization scope. Exact head 2ea335f has a green aggregate ci check with no failing job. This carries #4741 and corrects the half that would have made things worse: the refusal was reported as 502, which the Codex client retries up to four times, so the proxy stopped replaying and handed the amplification to the client. It now answers 429 with upstream_reset_replay_refused, and because a 429 then stops being sufficient evidence of a provider rate limit, all ten call sites that read it that way consult isNonReplayableResponse first and record the transport outcome rather than the client-facing status, so pool health sees exactly what it saw before. The owning structure section is rewritten to separate a refusal this proxy made from an upstream reset reported mid-stream or after a terminal, and the WebSocket post-send verdicts are explicitly unchanged. Host-owned merge decision; no local suite, typecheck, build, or install was run.
…mbership by wire (#4736, #4735) (#4799)

Maintainer integration for the 2.57.0 stabilization scope. Exact head e80d2ed has a green aggregate ci check with no failing job. Two carries. The catalog guard moves to the shared write boundary so both writers apply one rule, which matters because the same source-invalid rejection was reachable through convergence and therefore through every dashboard toggle, combo edit and account login, and because running before the clamp could drop the row the clamp would have kept; the stated producer of the duplicate slugs is still unidentified so the reporting issue is deliberately not closed. The tool guard keeps the declared set flowing on every wire and scopes only the membership refusal, so an explicitly empty catalog still means no client tool may be called; scoping the refusal off the chat and Anthropic wires is recorded in the owning structure sections with #1700 named. Host-owned merge decision; no local suite, typecheck, build, or install was run.
…vents (#4775, #4743) (#4801)

Maintainer integration for the 2.57.0 stabilization scope. Exact head 14b4d30 has a green aggregate ci check with no failing job. Carries #4775 and #4743 with their review fixes. The #4743 event bound was raised because the original 1,000 counted every held argument delta, so a sizeable client-executed apply_patch could cross it and the leg would discard a legitimate tool call; the count is now derived from the code-unit budget that is the real memory guard, and overflow reports as a proxy-side bound instead of blaming the upstream read. Host-owned merge decision; no local suite, typecheck, build, or install was run.
, #4778) (#4797)

Maintainer integration for the 2.57.0 stabilization scope. The exact head has a green aggregate ci check with no failing job. Selection now drops only accounts whose own confirmed roster definitively omits the requested model, inside the existing eligibility gate and ahead of the priority tier, restoring the full list whenever filtering would leave no candidate; unknown and expired rosters stay unknown, so this cannot make a model vanish the way a fail-closed gate would. A conversation carrying uploaded files keeps its issuing account, which is the one documented invariant change and is recorded in the owning structure section. The operator pin is exempt, because filtering it out beforehand would have re-enabled the tiers the operator excluded rather than merely demoting the account. Host-owned merge decision; no local suite, typecheck, build, or install was run.
…#4796)

Maintainer integration for the 2.57.0 stabilization scope. The exact head has a green aggregate ci check with no failing job. Carries #4785 and folds #4789. The containment half closes the leak in #4762 for future runs. The reclamation half needed correcting before it could ship: as authored, an absent ownership marker fell through to removal, and every directory users have accumulated today was written by a version that stamped nothing, so the rule would have deleted TEMP trees the tool cannot show it created. Reclamation now treats a missing marker as disqualifying and requires the owning pid to be dead. An already-affected workstation is not cleaned by this change; those roots are scanned, skipped and left to the user. Host-owned merge decision; no local suite, typecheck, build, or install was run.
…ence and Retry-After (#4807)

Release-blocker fix for 2.57.0, found by the final cross-change regression audit. Exact head has a green aggregate ci check with no failing job. The 429 reclassification that landed in #4798 guarded the call sites that read a 429 as a rate limit but not the ones that write quota evidence, synthesize Retry-After, or reclassify the status on the way out, so in two places the release as it stood invited the replay the change exists to prevent: passthrough recorded the synthetic 429 as quota evidence and attached a default Retry-After, and native Chat dropped the distinct code. Adapter recovery could also replay a refusal produced by a refetch inside an arm, which the single-retry regression could not catch. The invariant is now stated once and recorded: a refusal this proxy made never acquires a Retry-After and never becomes quota evidence. Host-owned merge decision; no local suite, typecheck, build, or install was run.
…e denial lookup behind the read fence (#4806)

Release-blocker fix for 2.57.0, found by the final cross-change regression audit. Exact head has a green aggregate ci check with no failing job. Uploaded-file retention did not reach native compact initial account resolution or the encrypted-recovery preview, so a file-carrying conversation could still be moved before the post-429 guard ran, or preview and final authentication could pick different accounts — either one reproduces the failure #4778 removed. Both paths now carry the bit, answered from the same object and predicate the post-429 guard uses. Separately the flagship denial lookup crossed the native-main read fence by validating cached rosters through the physical main token; it now honours the fence and answers unknown there, which changes nothing because unknown never excludes an account. Host-owned merge decision; no local suite, typecheck, build, or install was run.
…4813)

Release-blocker fix for 2.57.0 from the second regression audit. Exact head has a green aggregate ci check. A namespaced helper name could donate the bare spelling, so a declaration such as mcp__remote.exec added bare exec to the declared set and an undeclared apply_patch, exec_command or write_stdin was then rewritten to it; the exclusion is now keyed on the name rather than the namespace, and a namespaced exec stays usable as itself. Request preview also computed the native-main read fence without the request-owned credential that final authentication includes, so a thread_spawn request with a forwardable caller bearer could read the physical main token and score main differently from final auth. Host-owned merge decision; no local suite, typecheck, build, or install was run.
… per-entry store reads (#4814)

Release-blocker fix for 2.57.0 from the second regression audit. Exact head has a green aggregate ci check. A transient refresh failure whose description mentioned revoked, invalidated or expired was still classified terminal even when the structured code was server_error, which re-created the false quarantine #2887 exists to prevent; classification now uses the structured code whenever one exists and keeps the substring fallback only for bodies that carry no code at all. Separately a warm flagship request could perform up to 256 synchronous account-store reads because credential identity resolved per cache entry; it now resolves once per denial pass without weakening the check that an entry belongs to the credential it claims. Host-owned merge decision; no local suite, typecheck, build, or install was run.
…lias (#4819)

Release-blocker fix for 2.57.0 from the third regression audit. Exact head has a green aggregate ci check. The helper-name fence that landed in #4813 covered the echo-alias path only; the tool_choice compatibility path still manufactured a bare alias, so a request declaring a namespaced exec and selecting it with a bare selector put bare exec into the declared set and an undeclared helper was rewritten onto it. Sweeping for the rule found a third live copy in the passthrough declared catalog, which fenced exactly one name, so a namespaced exec_command or shell_command could also switch nested-helper normalization off for a catalog that genuinely declared the shell. The rule now lives in one place. The follow-up commit corrects an over-strict first attempt: a bare alias does two jobs, identity restoration and declaration, and only the declaration was ever unsafe, so restoration is preserved and a caller-declared, explicitly selected tool keeps working. Host-owned merge decision; no local suite, typecheck, build, or install was run.
…4.0 (#4821)

Release-blocker fix for 2.57.0. The PR aggregate ci check is green at this exact head, and the lane=all dispatch 35113947092 on the same head passed all six Windows shards individually plus both macOS shards, every test shard, gates, keyring, docker and npm-global; only the optional macos control job was cancelled by concurrency. That dispatch is the evidence the Bun pin works: windows 5/6 had failed three release candidates in a row and 1/6 failed the previous dispatch, and all six pass here with the crash masking removed. The suite had been crashing the Bun runtime on every run since 2026-09-08 while reporting green, because a crashed batch was re-run one file per process, which is a configuration in which the defect cannot occur rather than a retry. That verdict now fails. Host-owned merge decision; no local suite, typecheck, build, or install was run.
Four documents: the roadmap, the CI forensics that cleared dev's red tip, the
pull-request triage, and the issue triage. No product code changes.

Co-authored-by: lidge-jun <lidge-jun@users.noreply.github.com>
…easures (#4830)

The first proxy child in native-profile-startup.test.ts published its port at
50.7s against a 45s SPAWN_BUDGET_MS while the next spawn in the same file was
ready in 1.8s. Gate the budget to 90s on win32 only, the same way
BULK_DURABLE_IO_BUDGET_MS already is.

Co-authored-by: lidge-jun <lidge-jun@users.noreply.github.com>
[WRONG BRANCH] chore(release): promote 2.57.0 to main
@lidge-jun
lidge-jun requested a review from Ingwannu as a code owner September 16, 2026 18:36
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 16, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-16T18:38:26.660255Z 1965552 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 404 files, which is 104 over the limit of 300.

To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 0d5f258b-5609-4c55-8d15-484b3191db43

📥 Commits

Reviewing files that changed from the base of the PR and between b552b1d and 1965552.

⛔ Files ignored due to path filters (2)
  • assets/pr-screenshots/usage-chart-review.png is excluded by !**/*.png
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (404)
  • .github/workflows/ci.yml
  • Dockerfile
  • bin/ocx.mjs
  • devlog/_plan/260915_2560_release_train/040_release_decision.md
  • devlog/_plan/260916_release_2570_stabilization/031_openai_tiers_split.md
  • devlog/_plan/260916_release_2570_stabilization/041_preview_fence_test_is_structural.md
  • devlog/_plan/260917_2570_release_train/000_roadmap.md
  • devlog/_plan/260917_2570_release_train/010_dev_green.md
  • devlog/_plan/260917_2570_release_train/020_pr_triage.md
  • devlog/_plan/260917_2570_release_train/030_issue_triage.md
  • docs-site/astro.config.mjs
  • docs-site/src/content/docs/fr/guides/claude-code.md
  • docs-site/src/content/docs/fr/guides/codex-integration.md
  • docs-site/src/content/docs/fr/reference/adapters.md
  • docs-site/src/content/docs/fr/reference/architecture.md
  • docs-site/src/content/docs/fr/reference/cli.md
  • docs-site/src/content/docs/fr/reference/cli/agents.md
  • docs-site/src/content/docs/fr/reference/cli/lifecycle.md
  • docs-site/src/content/docs/fr/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/guides/claude-code.md
  • docs-site/src/content/docs/guides/codex-integration.md
  • docs-site/src/content/docs/guides/combos.md
  • docs-site/src/content/docs/guides/providers.md
  • docs-site/src/content/docs/guides/response-inspection.md
  • docs-site/src/content/docs/guides/web-dashboard.md
  • docs-site/src/content/docs/ja/guides/codex-integration.md
  • docs-site/src/content/docs/ja/reference/adapters.md
  • docs-site/src/content/docs/ja/reference/architecture.md
  • docs-site/src/content/docs/ja/reference/cli.md
  • docs-site/src/content/docs/ja/reference/cli/agents.md
  • docs-site/src/content/docs/ja/reference/cli/lifecycle.md
  • docs-site/src/content/docs/ja/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/ko/guides/codex-integration.md
  • docs-site/src/content/docs/ko/guides/combos.md
  • docs-site/src/content/docs/ko/reference/adapters.md
  • docs-site/src/content/docs/ko/reference/architecture.md
  • docs-site/src/content/docs/ko/reference/cli.md
  • docs-site/src/content/docs/ko/reference/cli/agents.md
  • docs-site/src/content/docs/ko/reference/cli/lifecycle.md
  • docs-site/src/content/docs/ko/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/ko/reference/proxy-formats.md
  • docs-site/src/content/docs/reference/adapters.md
  • docs-site/src/content/docs/reference/architecture.md
  • docs-site/src/content/docs/reference/cli.md
  • docs-site/src/content/docs/reference/cli/agents.md
  • docs-site/src/content/docs/reference/cli/lifecycle.md
  • docs-site/src/content/docs/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/reference/configuration/routing.md
  • docs-site/src/content/docs/reference/configuration/server.md
  • docs-site/src/content/docs/reference/management-api.md
  • docs-site/src/content/docs/reference/proxy-formats.md
  • docs-site/src/content/docs/ru/guides/codex-integration.md
  • docs-site/src/content/docs/ru/reference/adapters.md
  • docs-site/src/content/docs/ru/reference/architecture.md
  • docs-site/src/content/docs/ru/reference/cli.md
  • docs-site/src/content/docs/ru/reference/cli/agents.md
  • docs-site/src/content/docs/ru/reference/cli/lifecycle.md
  • docs-site/src/content/docs/ru/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/tr/guides/claude-code.md
  • docs-site/src/content/docs/tr/guides/codex-integration.md
  • docs-site/src/content/docs/tr/reference/adapters.md
  • docs-site/src/content/docs/tr/reference/architecture.md
  • docs-site/src/content/docs/tr/reference/cli.md
  • docs-site/src/content/docs/tr/reference/cli/agents.md
  • docs-site/src/content/docs/tr/reference/cli/lifecycle.md
  • docs-site/src/content/docs/tr/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/zh-cn/guides/codex-integration.md
  • docs-site/src/content/docs/zh-cn/reference/adapters.md
  • docs-site/src/content/docs/zh-cn/reference/architecture.md
  • docs-site/src/content/docs/zh-cn/reference/cli.md
  • docs-site/src/content/docs/zh-cn/reference/cli/agents.md
  • docs-site/src/content/docs/zh-cn/reference/cli/lifecycle.md
  • docs-site/src/content/docs/zh-cn/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/zh-tw/guides/claude-code.md
  • docs-site/src/content/docs/zh-tw/guides/codex-integration.md
  • docs-site/src/content/docs/zh-tw/reference/adapters.md
  • docs-site/src/content/docs/zh-tw/reference/architecture.md
  • docs-site/src/content/docs/zh-tw/reference/cli.md
  • docs-site/src/content/docs/zh-tw/reference/cli/agents.md
  • docs-site/src/content/docs/zh-tw/reference/cli/lifecycle.md
  • docs-site/src/content/docs/zh-tw/reference/cli/providers-accounts.md
  • gui/README.md
  • gui/package.json
  • gui/src/i18n/de.ts
  • gui/src/i18n/en.ts
  • gui/src/i18n/fr.ts
  • gui/src/i18n/ja.ts
  • gui/src/i18n/ko.ts
  • gui/src/i18n/ru.ts
  • gui/src/i18n/tr.ts
  • gui/src/i18n/zh-TW.ts
  • gui/src/i18n/zh.ts
  • gui/src/main.tsx
  • gui/src/pages/Usage.tsx
  • gui/src/styles.css
  • gui/src/styles/sidebar-brand.css
  • gui/src/styles/usage-chart-accessibility.css
  • gui/tests/sidebar-version-browser.ts
  • gui/tests/sidebar-version-layout.test.ts
  • gui/tests/usage-chart-interactions.test.tsx
  • gui/tests/usage-custom-range.test.tsx
  • package.json
  • scripts/ci/bun-crash-signatures.sh
  • scripts/ci/run-bun-test-batches.sh
  • scripts/file-size-ratchet.ts
  • scripts/test-layout/layout.json
  • scripts/test-temp.ts
  • scripts/test.ts
  • skills/ocx/references/01_management_surface.md
  • src/adapters/codebuddy/adapter.ts
  • src/adapters/codebuddy/scaffold-guard.ts
  • src/adapters/command-code.ts
  • src/adapters/cursor/envelope-echo.ts
  • src/adapters/google.ts
  • src/adapters/kiro-events.ts
  • src/adapters/kiro/payload.ts
  • src/adapters/kiro/reasoning.ts
  • src/adapters/kiro/stream.ts
  • src/adapters/kiro/wire.ts
  • src/adapters/openai-chat.ts
  • src/adapters/openai-chat/tool-name-registry.ts
  • src/adapters/openai-chat/tool-schema.ts
  • src/adapters/openai-responses/passthrough.ts
  • src/bridge/errors.ts
  • src/bridge/response-json.ts
  • src/bridge/sse.ts
  • src/claude/desktop-profile.ts
  • src/claude/outbound.ts
  • src/cli/account-main.ts
  • src/cli/capabilities.ts
  • src/cli/combo.ts
  • src/cli/index.ts
  • src/cli/registry.ts
  • src/cli/system-command.ts
  • src/clients/config-export.ts
  • src/codex/account-label.ts
  • src/codex/account-store.ts
  • src/codex/account-usability.ts
  • src/codex/auth-api/login-flow.ts
  • src/codex/auth-api/reset-credit-service.ts
  • src/codex/auth-context.ts
  • src/codex/catalog/aggregation.ts
  • src/codex/catalog/model-visibility.ts
  • src/codex/catalog/remote.ts
  • src/codex/catalog/retained-sync.ts
  • src/codex/catalog/routed-gather.ts
  • src/codex/cli-install-provenance.ts
  • src/codex/convergence.ts
  • src/codex/desktop-app/types.ts
  • src/codex/desktop-app/windows.ts
  • src/codex/inject.ts
  • src/codex/inject/restore.ts
  • src/codex/model-entitlements.ts
  • src/codex/pool-refresh-backoff.ts
  • src/codex/quota-rejection.ts
  • src/codex/routing.ts
  • src/codex/routing/cache-affinity.ts
  • src/codex/routing/cooldown-math.ts
  • src/codex/routing/selection.ts
  • src/codex/routing/thread-affinity.ts
  • src/codex/routing/transient-hold-dispatch.ts
  • src/codex/warmup.ts
  • src/combos/failover.ts
  • src/combos/request.ts
  • src/combos/types.ts
  • src/config/pending-teardown.ts
  • src/images/loop.ts
  • src/lib/errors.ts
  • src/lib/request-execution-budget.ts
  • src/lib/spend-reservation-ledger.ts
  • src/lib/state-store-registrations.ts
  • src/lib/test-home-guard.ts
  • src/lib/upstream-retry.ts
  • src/lib/windows-elevation.ts
  • src/oauth/index.ts
  • src/oauth/key-providers.ts
  • src/providers/kiro-models.ts
  • src/providers/label.ts
  • src/providers/model-discovery.ts
  • src/providers/registry/entries-core.ts
  • src/providers/registry/entries-extended.ts
  • src/providers/registry/model-seeds.ts
  • src/responses/reasoning-envelope.ts
  • src/routing/identity-domains.ts
  • src/routing/probe-lease.ts
  • src/server/chat-completions.ts
  • src/server/chat-native.ts
  • src/server/index.ts
  • src/server/index/live-sideband.ts
  • src/server/index/websocket-handler.ts
  • src/server/inspection-tee.ts
  • src/server/live.ts
  • src/server/management/combo-routes.ts
  • src/server/relay-eager.ts
  • src/server/relay.ts
  • src/server/request-log.ts
  • src/server/response-log-body.ts
  • src/server/responses-undeclared-tool-guard.ts
  • src/server/responses/account-change-state.ts
  • src/server/responses/adapter-continuation.ts
  • src/server/responses/adapter-delivery.ts
  • src/server/responses/adapter-dispatch.ts
  • src/server/responses/codex-ws-wire.ts
  • src/server/responses/collaboration.ts
  • src/server/responses/combo-session-recall.ts
  • src/server/responses/compact.ts
  • src/server/responses/core-auth.ts
  • src/server/responses/core-codex-account.ts
  • src/server/responses/core-combo.ts
  • src/server/responses/core-errors.ts
  • src/server/responses/core-replay.ts
  • src/server/responses/core.ts
  • src/server/responses/encrypted-payload.ts
  • src/server/responses/input-admission.ts
  • src/server/responses/passthrough-delivery.ts
  • src/server/responses/passthrough-dispatch.ts
  • src/server/responses/passthrough-error.ts
  • src/server/responses/request-prepare.ts
  • src/server/responses/request-send-budget.ts
  • src/server/responses/request-spend.ts
  • src/server/responses/request-transport.ts
  • src/server/responses/run-turn-execution.ts
  • src/server/responses/sidecar-execution.ts
  • src/server/responses/terminal-guard.ts
  • src/service.ts
  • src/service/windows-ops.ts
  • src/service/windows-scheduler.ts
  • src/types.ts
  • src/types/config.ts
  • src/types/request.ts
  • src/types/tools.ts
  • src/update/index.ts
  • src/update/stop-contract.d.mts
  • src/update/stop-contract.mjs
  • src/update/stop-decision.d.mts
  • src/update/stop-decision.mjs
  • src/usage/log.ts
  • src/vision/anthropic-describe.ts
  • src/vision/describe.ts
  • src/web-search/anthropic-executor.ts
  • src/web-search/exa-executor.ts
  • src/web-search/executor.ts
  • src/web-search/gemini-executor.ts
  • src/web-search/loop.ts
  • src/web-search/ollama-executor.ts
  • src/web-search/parse.ts
  • src/web-search/passthrough-bridge.ts
  • src/web-search/xai-executor.ts
  • structure/adapters/compatibility-contracts.md
  • structure/adapters/registry.md
  • structure/catalog.md
  • structure/clients/claude-desktop.md
  • structure/clients/integrations.md
  • structure/codex-home.md
  • structure/config.md
  • structure/data-planes/images.md
  • structure/data-planes/inbound-compat.md
  • structure/gui-and-management-api.md
  • structure/manifest.json
  • structure/ops/docs-and-release.md
  • structure/ops/service-and-sidecars.md
  • structure/overview.md
  • structure/providers/chat-compat.md
  • structure/providers/cursor.md
  • structure/providers/google.md
  • structure/providers/kiro.md
  • structure/providers/openai-tiers.md
  • structure/providers/xai-grok.md
  • structure/runtime.md
  • structure/subagents.md
  • structure/transports/byte-accounting.md
  • structure/transports/inventory.md
  • structure/transports/responses.md
  • structure/transports/streaming-health.md
  • tests/adapters/bridge.test.ts
  • tests/adapters/google/google-structured-output.test.ts
  • tests/adapters/openai/openai-chat-bounded-tool-names.test.ts
  • tests/ci-workflows/ci-bun-crash-classifier.test.ts
  • tests/ci-workflows/ci-workflows.test.ts
  • tests/ci-workflows/file-size-ratchet.test.ts
  • tests/ci-workflows/install-scripts.test.ts
  • tests/ci-workflows/macos-serial-lanes.test.ts
  • tests/ci-workflows/test-home-guard.test.ts
  • tests/ci-workflows/test-runner.test.ts
  • tests/claude-integration/claude-model-info.test.ts
  • tests/claude-integration/claude-outbound.test.ts
  • tests/cli/cli-headless-parity.test.ts
  • tests/cli/cli-native-profile.test.ts
  • tests/clients/desktop-3p.test.ts
  • tests/clients/desktop-app-restart-posix.test.ts
  • tests/clients/desktop-app-restart.test.ts
  • tests/clients/desktop-profile.test.ts
  • tests/codex-integration/catalog-duplicate-slug-dedup.test.ts
  • tests/codex-integration/catalog-input-modality-enum.test.ts
  • tests/codex-integration/catalog-modelalias-unique-sync.test.ts
  • tests/codex-integration/catalog-remote-pull.test.ts
  • tests/codex-integration/catalog-slug-uniqueness-boundary.test.ts
  • tests/codex-integration/catalog-verbosity-default.test.ts
  • tests/codex-integration/client-injection-guard.test.ts
  • tests/codex-integration/codex-account-label.test.ts
  • tests/codex-integration/codex-account-selection-preferences.test.ts
  • tests/codex-integration/codex-account-store-refresh-classification.test.ts
  • tests/codex-integration/codex-account-store.test.ts
  • tests/codex-integration/codex-auth-api.test.ts
  • tests/codex-integration/codex-cli-install-provenance.test.ts
  • tests/codex-integration/codex-composed-acceptance.test.ts
  • tests/codex-integration/codex-entitlement-identity-read-fence.test.ts
  • tests/codex-integration/codex-inject-integration.test.ts
  • tests/codex-integration/codex-metadata-integrity.test.ts
  • tests/codex-integration/codex-model-entitlements.test.ts
  • tests/codex-integration/codex-pool-refresh-backoff.test.ts
  • tests/codex-integration/codex-quota-rejection.test.ts
  • tests/codex-integration/codex-warmup.test.ts
  • tests/codex-integration/combos.test.ts
  • tests/codex-integration/issue-914-transport-attribution.test.ts
  • tests/codex-integration/reserve-dispatch.test.ts
  • tests/codex-integration/selected-models.test.ts
  • tests/config/client-config-export-new-clients.test.ts
  • tests/config/client-config-new-clients.test.ts
  • tests/fixtures/file-size-baseline.json
  • tests/fixtures/realtime-voice-sideband/audio.json
  • tests/fixtures/realtime-voice-sideband/connect.json
  • tests/fixtures/realtime-voice-sideband/session.json
  • tests/fixtures/realtime-voice-sideband/shutdown.json
  • tests/fixtures/realtime-voice-sideband/tools.json
  • tests/fixtures/realtime-voice-sideband/transcript.json
  • tests/fixtures/test-layout-expected.json
  • tests/helpers/codex-warmup-rate-limit.ts
  • tests/helpers/combo-context-headroom-cases.ts
  • tests/helpers/combo-context-overflow-cases.ts
  • tests/helpers/combo-forced-effort-cases.ts
  • tests/helpers/combo-provider.ts
  • tests/helpers/home-destruction-scan.ts
  • tests/helpers/isolated-codex-home.ts
  • tests/helpers/remove-tree.ts
  • tests/helpers/reset-credit-consume-validation.ts
  • tests/helpers/responses-core-source.ts
  • tests/helpers/temp-home.ts
  • tests/helpers/test-budget.ts
  • tests/lab/core-lab-boundary.test.ts
  • tests/lib/execution-budget-permits.test.ts
  • tests/lib/remove-tree-helper.test.ts
  • tests/lib/transient-budget-scope-source.test.ts
  • tests/lib/upstream-retry.test.ts
  • tests/oauth/state-store-sweeper.test.ts
  • tests/preload.ts
  • tests/providers/codebuddy-adapter.test.ts
  • tests/providers/cursor/cursor-envelope-echo-retry.test.ts
  • tests/providers/deepseek-reasoning-replay.test.ts
  • tests/providers/flash-route-image-modalities.test.ts
  • tests/providers/kimi-responses-adjacency.test.ts
  • tests/providers/kiro/kiro-adapter.test.ts
  • tests/providers/kiro/kiro-reasoning-roundtrip.test.ts
  • tests/providers/provider-model-discovery-contract.test.ts
  • tests/providers/provider-registry-parity.test.ts
  • tests/providers/rate-limit-retry.test.ts
  • tests/providers/upstream-transient-retry.test.ts
  • tests/providers/xai/grok-lifecycle.test.ts
  • tests/responses/bare-echo-alias.test.ts
  • tests/responses/chat-completions-deferred-tools.test.ts
  • tests/responses/chat-completions-endpoint.test.ts
  • tests/responses/empty-completion-core.test.ts
  • tests/responses/passthrough-abort.test.ts
  • tests/responses/responses-4546-incident-regression.test.ts
  • tests/responses/responses-account-change-scrub.test.ts
  • tests/responses/responses-account-label.test.ts
  • tests/responses/responses-bare-echo-helper-fence.test.ts
  • tests/responses/responses-core-modules.test.ts
  • tests/responses/responses-parser.test.ts
  • tests/responses/responses-preview-main-read-fence.test.ts
  • tests/responses/responses-send-budget-counts.test.ts
  • tests/responses/responses-send-budget-errors.test.ts
  • tests/responses/responses-spend-ledger-wiring.test.ts
  • tests/responses/ws-failure-stage.test.ts
  • tests/routing/combo-management-api.test.ts
  • tests/routing/probe-lease-dispatch-wiring.test.ts
  • tests/routing/probe-lease.test.ts
  • tests/routing/router-combo-failover-classification.test.ts
  • tests/routing/routing-policy-fallback.test.ts
  • tests/routing/subagent-fallback-handle-responses.test.ts
  • tests/routing/subagent-fallback-preview-sites.test.ts
  • tests/server/input-admission.test.ts
  • tests/server/management-client-config-route.test.ts
  • tests/server/model-discovery-management-api.test.ts
  • tests/server/response-log-inspection.test.ts
  • tests/server/retry-after-429.test.ts
  • tests/server/server-combo-failover-e2e.test.ts
  • tests/server/server-combo-reasoning-replay-eligibility.test.ts
  • tests/server/server-key-failover-e2e.test.ts
  • tests/server/server-live-realtime-fixtures.test.ts
  • tests/server/server-live.test.ts
  • tests/server/server-management-auth.test.ts
  • tests/server/server-search.test.ts
  • tests/server/server-xai-oauth-401-replay.test.ts
  • tests/server/terminal-guard.test.ts
  • tests/service/stop-deferred-teardown.test.ts
  • tests/update/update-stop-classification.test.ts
  • tests/usage/key-attribution.test.ts
  • tests/usage/request-log-nonstream.test.ts
  • tests/vision/vision-fail-closed.test.ts
  • tests/web-search/web-search-parse.test.ts
  • tests/web-search/web-search-progress-stream.test.ts
  • tests/windows/windows-elevation-spawn.test.ts
  • tests/windows/windows-scheduler-install-verification.test.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@lidge-jun
lidge-jun merged commit b70f3d7 into preview Sep 16, 2026
9 of 11 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

Deterministic PR hygiene checks passed.

@lidge-jun
lidge-jun deleted the codex/260917-preview-2570 branch September 16, 2026 18:36
@github-actions github-actions Bot changed the title release: bring preview onto the verified 2.57.0 product tree [WRONG BRANCH] release: bring preview onto the verified 2.57.0 product tree Sep 16, 2026
@github-actions

github-actions Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

⏳ DRAFT

  • wrong target branch (preview); retarget to dev. UI screenshot required.

What to do

  • Retarget this PR to dev — all contributions go to dev.
  • Add a screenshot of the UI change to the PR description.

Its title has been prefixed with [WRONG BRANCH].
Automatic draft conversion failed (token cannot change draft status). Please convert this pull request to a draft manually. The required enforce-target check will keep failing until every issue above is resolved.

@lidge-jun

Copy link
Copy Markdown
Owner Author

리뷰 · 우선순위 75 / 80

이 PR은 기능을 새로 넣는 요청이 아니다. 2.57.0 릴리스 트레인의 6번째 단계로, 이미 main에 올라간 검증된 제품 트리를 preview 브랜치에도 맞추는 프로모션이다. 지금 로컬에서 갱신한 dev HEAD는 406606a87이고, 패키지 버전은 2.58.0이다. 이 PR의 base는 preview, head는 codex/260917-preview-2570(196555257)이다. 웨이크 직후 이미 머지되어 merge commit이 b70f3d7fc로 찍혀 있고, state는 MERGED/CLOSED다.

머지 후 트리를 다시 맞춰 봤다. origin/mainorigin/preview의 tree SHA가 둘 다 349e3dc499로 같고, git diff origin/main origin/preview는 비어 있다. package.json 버전도 main=2.57.0, preview=2.57.0으로 같다. 본문이 말한 “유일한 conflict는 version 한 줄이었고 main의 2.57.0으로 풀었다”는 주장과, 2.56.0 프로모션 #4698과 같은 해법이라는 설명은 현재 브랜치 상태와 맞다. 파일 수가 406개(+20394/-1647)로 큰 것도 preview가 2.56.0대에 머물러 있던 것을 한 번에 따라잡은 catch-up이라서 정상이다.

제목에 [WRONG BRANCH]가 붙고 enforce-target이 빨간 것도 버그가 아니다. 이 게이트는 기능 PR이 dev를 base로 쓰게 막는 장치라서, base=preview인 프로모션은 매번 같은 빨간 표를 받는다. #4829(main 프로모션)와 같은 패턴이다. 그래서 enforce-target FAILURE만으로 닫거나 dev로 retarget하라고 하면 안 된다. pr-gate 봇이 스크린샷·draft 변환을 요구한 것도 기능 PR 규칙이 그대로 덮친 소음으로 보면 된다.

릴리스 증거 쪽도 현재 dev 스냅샷·040_release.md와 맞물린다. 후보 183119329의 Cross-platform CI, main 릴리스 44de45dfdc의 CI/Service lifecycle, release.yml 실제 publish(expected-sha=44de45dfdc, tag=latest)와 GitHub release v2.57.0까지 본문이 적어 둔 흐름이 이미 닫힌 상태다. dev에서는 companion으로 #4827이 2.58.0을 연 뒤, #4832가 릴리스·레지스트리 전파 상태를 040_release.md에 기록해 tip이 406606a87까지 왔다. types.ts/config.ts 스플릿 캠페인은 이번 같은 release chore에는 해당 없다.

한 가지 남은 바깥 상태는 브랜치가 아니라 npm 태그다. 레지스트리 @bitkyc08/opencodexdist-tags.latest는 이미 2.57.0이지만, dist-tags.preview는 아직 2.55.0-preview.20260914다. 이 PR은 git preview 트리를 main과 같게 만드는 일이고, npm preview 태그를 다시 찍는 일은 별도 release 디스패치(또는 의도적 보류)로 남는다. 본문도 머지 전 상태를 그렇게 적어 두었다.

라인 단위로 “이 줄이 틀렸다”고 찍을 제품 패치는 없다. 아래는 경로·게이트·후속 상태 점검이다.

경로 preview ← codex/260917-preview-2570 - base/head가 프로모션 의도에 맞고, 이미 b70f3d7fc로 머지됨.
경로 origin/main^{tree} == origin/preview^{tree} - 둘 다 349e3dc499. 본문 주장 검증됨.
경로 package.json - main/preview=2.57.0, 현재 dev=2.58.0. version conflict 해법(main 쪽)과 일치.
게이트 enforce-target / [WRONG BRANCH] - 예상된 빨간 표시. 기능 PR 기준으로 retarget·닫기 하면 오판.
경로 npm dist-tags.preview - 아직 2.55.0-preview.20260914. git preview 정렬과 npm preview 태그는 별개 후속.
경로 devlog/_plan/260917_2570_release_train/040_release.md - #4832로 wp5 닫힘 기록이 dev tip에 반영됨.

메인테이너의 판단이 필요한 지점

  • npm preview dist-tag를 2.57.0(또는 다음 preview 빌드)으로 다시 찍을지, git 정렬만으로 이번 트레인을 끝낼지.
  • pr-gate가 요구한 screenshot/draft 변환 소음을 프로모션 예외로 문서에 고정할지.
  • 040_release.md의 registry-lag 경고대로, latest 전파 확인 후 추가 공지·후속 이슈 클로즈를 누가 소유할지.

너의 추천
이미 머지된 프로모션이므로 추가 rebase/닫기 동작은 필요 없다. enforce-target FAILURE만으로 되돌리거나 dev로 retarget하지 않는다. 다음 액션은 npm preview 태그를 의도대로 갱신할지 결정하고, 040_release.md에 적힌 latest 전파 확인·공지로 트레인을 마무리하는 것이다. types/config 스플릿 이유로 이 chore를 되돌릴 필요는 없다.

이 댓글은 grok-bot이 작성했습니다

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.