Skip to content

release: promote verified 2.52.0 product tree to main - #4407

Merged
lidge-jun merged 289 commits into
mainfrom
codex/release-2520-main
Sep 12, 2026
Merged

release: promote verified 2.52.0 product tree to main#4407
lidge-jun merged 289 commits into
mainfrom
codex/release-2520-main

Conversation

@lidge-jun

Copy link
Copy Markdown
Owner

Summary

Verification

  • Regression sweep over every non-merge commit in the unverified window: devlog/_plan/260912_release_regression_train/025_sweep_results.md. Eight read-only lanes, six clean, one already-fixed minor, one blocking finding now landed.
  • dev push-event Cross-platform CI passed on 4b6849cf12 and f2f1783ae0 during the repair sequence.
  • The main push-event Cross-platform CI run on this promotion, plus the Service lifecycle run that package.json triggers, are the release gates and have to pass before anything publishes.
  • enforce-target rejects this PR because it targets main; that is the promotion exception in the branch policy.
  • Local tests, build, typecheck and install: NOT RUN under the standing restriction.

Checklist

  • Scope stays focused and avoids unrelated cleanup.
  • Docs or release notes were updated when needed.
  • Security-sensitive changes were reviewed for secrets, auth, and unsafe defaults.

lidge-jun and others added 30 commits September 11, 2026 22:40
…n actually sends

A client-tool turn suspends before turnEnded, and upstream sends that turns checkpoint right after toolCallStarted - after the 50ms drain grace, so it was cancelled away and every such turn full-replayed with cached_tokens 0. Measured live with the tool catalog held constant: 50ms captures nothing, 1500ms captures 3036 bytes. Extend once, bounded, before finalizeAfterDrain (which terminates the event state), and fire early from the capture site so a turn that does send a checkpoint pays arrival latency instead of the whole window. The native wire-model gate is untouched: capturedAfterClientTool proves arrival, not coverage.
…capture

fix(cursor): capture the conversation checkpoint a suspended tool turn actually sends
…4282)

Splits the DeepSeek thinking set by who serves the route (first-party deepseek-flash vs gateway deepseek-v4.1-flash), removes the retired deepseek-v4-pro from every static roster, and excludes it from the routed catalog on live-discovery providers where deleting a row would strip capabilities instead of the model. Carries the Command Code effort ladders from #4258. Maintainer integration into dev per MAINTAINERS.md with all checks passing at the exact head.
…le from logs

Every checkpoint diagnostic reported bytes, which cannot distinguish a snapshot that contains the suspended tool call from one that merely arrived after it - the exact gap that leaves the native wire-model gate undecidable in #4245. cursorCheckpointShape returns counts only, never content, and the decode is skipped unless provider debug is on.
…helper

The audit named readPaths, previousWorkspaceUris and the fileStates keys as fields a later extension could leak. Record that in the code rather than only in the review thread.
feat(cursor): report decoded checkpoint shape so coverage is answerable from logs
* docs(devlog): open the account pool unification unit

* docs(devlog): fold two audit rounds into the account pool unification plan

* docs(devlog): write the five phase documents for the account pool unit

---------

Co-authored-by: Codex <codex@users.noreply.github.com>
The audit drove the first version of these tests red on the parent branch: all three passed with the production change reverted, because they only re-asserted what resetCodexRoutingForManualSelection and the deliberately exempt failover promote already did.

Three defects fall out of that. Deletion reaches routing through clearCodexUpstreamHealthForAccount, which did not revoke the preference, so a preference could outlive its account and suppress every later write. The generation sweep had the same hole. The model-detour promote wrote over the operator's selection while preemption next to it yielded. The independent-scope preference entries were written and consumed but never read by any guard.

Co-authored-by: Heisenberg <audit@localhost>
Guarding it failed 8 cases in codex-routing.test.ts. A model detour runs because the operator account cannot serve the model at all, and under a rotating strategy the promote moves only the process-local cursor, never the persisted selection.
reconcileCodexRoutingHealth had no test at all, so the preference sweep added for the delete-path blocker was verified by reading rather than by running. Both halves are covered now: an account the generation no longer lists loses its preference, and one that is still listed keeps it. Red control: removing the four sweep lines makes the first case read undefined.
…ards

clearCodexUpstreamHealth dropped every health map but kept lastReconciledGeneration and liveHealthAccountIds, so after a full reset recordCodexUpstreamOutcome would still discard a writer whose generation predated the watermark for any account missing from the equally stale live set. Found because the watermark leaked between test files: the new generation-sweep coverage failed two unrelated cases in codex-routing.test.ts when both files ran in one process.
feat(providers): pick a warm API key before the first attempt
refactor(oauth): move the pool rotation kernel out of the Codex namespace
lidge-jun and others added 23 commits September 12, 2026 21:17
…vin-windows

fix(devin-cli): honor platform path semantics in credential discovery
…ge owner

Carry #3663 from 8e0b53b with two contract changes: context ownership is partitioned by the admission principal minted for the matched opencodex API key and bound to the stable user the accepted credential proves, and one deadline covers the whole relay starting before the body is read. Local product tests NOT RUN per explicit user instruction; hosted CI follows.

Co-authored-by: ykvv <229483879+y2ambition-ai@users.noreply.github.com>

Co-authored-by: nbbb26 <259064678+nbbb26@users.noreply.github.com>
…before relay dispatch

Address review of the relay carry: a caller bearer must be the exact credential an accepted model turn used, a credential proving no stable user cannot rebind an entry by sharing its workspace id, conflicting user claims poison the existing entry, and admission is re-resolved against the listener policy before dispatch. Tests updated for the new signatures with regressions for each rule. Local product tests NOT RUN per explicit user instruction.
…sions

Issue distinct tokens for one proven user so refresh and rotation cases exercise a changed fingerprint, keep the root-mismatch regression on an authenticated admission, and assert the superseded caller bearer stops matching.
The deadline now starts before credential selection, so a client that leaves during that wait must be reported as a hangup with nothing dispatched and the admitted turn released.
…dex key

Security review found the relay unreachable in its only supported configuration: the default bind is loopback, admission there never reads a token, and the injector only rewrites the base URL for loopback hosts, so every history call returned 403 even with a valid key. The relay now asks the identity question separately from admission - a context request presenting a real opencodex key owns its sessions, one presenting none is still refused - and a regression exercises the real resolver instead of a hand-built admission.
…wnership

Security re-audit found the previous fix one-sided: the relay could name a loopback caller but the model turn still recorded ownership from admission alone, so a correctly named caller found no entry and got 409. Both paths now use resolveContextPrincipal. The guides and structure doc now state what actually works - a remote bind with a configured key, or a client that sends x-opencodex-api-key - because the built-in loopback injection cannot carry that header, and whether a loopback bind should identify callers is left as a maintainer decision rather than a relaxed refusal.
…ental opt-in

The opt-in only guarded the injected base URL, so the ten endpoints and the ownership registry stayed live for any caller able to reach the data plane, including one posting the paths directly. contextRelayActivated reads Codex own config and now guards the relay handler and the recording path as well; absent, unreadable or malformed config is not an opt-in, and the decision is cached against config identity so turning it off applies without a restart. Regressions assert 404 on both prefixes, no owner recorded and zero upstream calls while it is off.
Resolve the Codex home inside the try rather than in a default parameter, since those evaluate before the body and this gate now runs during model turns, where an unreadable CODEX_HOME would abort a turn upstream already served. Gate the route match as well so a disabled feature takes no turn lease. Pin cache invalidation without the reset seam and the unreadable-home refusal, and restore the Korean disable paragraph.
Add the #3433 transport matrix with actual Chat handler and captured canonical Responses request. Preserve key and original header spellings; no identity synthesis. Synthetic fixtures do not establish Hermes emission or cache-hit improvement. Local suites NOT RUN; hosted CI pending.
test(chat): verify native outbound conversation identity (#3433)
The fallback-port fixture records a port from allocateFreePort, which reports the
port it has already released. On a four-shard runner every other test binding an
ephemeral port is a candidate to take it, and when that happens status finds a
listener on the recorded port, reports the record as live, and the assertion
fails against something the test never set up. It failed exactly that way on the
preview promotion run while the same commit passed on dev.

Confirm the recorded port refuses immediately before and immediately after the
status probe, and re-allocate when something took it in between. The assertion
is unchanged and no weaker: a run only counts when the endpoint demonstrably
refused across the whole probe, and exhausting the attempts fails with that
reason rather than silently passing.
feat(codex): relay experimental context history under a least-privilege owner
chore(release): open dev at 2.53.0 before releasing 2.52.0
test(cli): stop judging a stale record on a port another test can take
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.
@lidge-jun
lidge-jun requested a review from Ingwannu as a code owner September 12, 2026 12:52
@lidge-jun
lidge-jun merged commit 4d37c35 into main Sep 12, 2026
5 of 16 checks passed
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 12, 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-12T12:54:43.836388Z 95c4875 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 12, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 840 files, which is 540 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: b5c58c47-bfe4-41b3-b37c-206f134121ad

📥 Commits

Reviewing files that changed from the base of the PR and between c155cc7 and 95c4875.

⛔ Files ignored due to path filters (15)
  • devlog/_plan/260911_account_pool_unification/assets/wp5b-pool-settings.png is excluded by !**/*.png
  • devlog/_plan/260912_cline_client/evidence/cline-export.png is excluded by !**/*.png
  • devlog/_plan/260912_cline_client/evidence/cline-integration.png is excluded by !**/*.png
  • devlog/_plan/260912_combo_carry/031_exhausted.png is excluded by !**/*.png
  • devlog/_plan/260912_combo_carry/032_unknown.png is excluded by !**/*.png
  • devlog/_plan/260912_combo_carry/033_expired.png is excluded by !**/*.png
  • devlog/_plan/260912_omo_client_integration/evidence/integrations-omo-tab.png is excluded by !**/*.png
  • devlog/_plan/260912_provider_catalog_unified_search/evidence/wp2-local-tab.png is excluded by !**/*.png
  • devlog/_plan/260912_provider_catalog_unified_search/evidence/wp3-note-clamp.png is excluded by !**/*.png
  • devlog/_plan/260912_provider_catalog_unified_search/evidence/wp3-note-popup.png is excluded by !**/*.png
  • devlog/_plan/260912_provider_catalog_unified_search/evidence/wp4-browse-mode.png is excluded by !**/*.png
  • devlog/_plan/260912_provider_catalog_unified_search/evidence/wp4-search-accounts.png is excluded by !**/*.png
  • devlog/_plan/260912_provider_catalog_unified_search/evidence/wp4-search-groups.png is excluded by !**/*.png
  • gui/public/provider-icons/devin.svg is excluded by !**/*.svg
  • gui/public/provider-icons/omo.svg is excluded by !**/*.svg
📒 Files selected for processing (840)
  • AGENTS.md
  • CONTRIBUTING.md
  • devlog/_fin/260912_devin_cli_account_login/000_plan.md
  • devlog/_fin/260912_devin_cli_account_login/001_cli_auth_survey.md
  • devlog/_fin/260912_devin_cli_account_login/002_audit_resolution.md
  • devlog/_fin/260912_devin_cli_account_login/003_blocker1_resolution.md
  • devlog/_fin/260912_devin_cli_account_login/004_live_cli_probe.md
  • devlog/_fin/260912_devin_cli_account_login/005_cli_key_is_a_real_credential.md
  • devlog/_fin/260912_devin_cli_account_login/006_prior_art.md
  • devlog/_fin/260912_devin_cli_account_login/007_reference_proxy_corroboration.md
  • devlog/_fin/260912_devin_cli_account_login/010_phase1_cli_login.md
  • devlog/_fin/260912_devin_cli_account_login/011_phase1_credential_import.md
  • devlog/_fin/260912_devin_cli_account_login/020_phase2_reclassify.md
  • devlog/_fin/260912_devin_cli_account_login/021_phase2_oauth_and_transport.md
  • devlog/_fin/260912_devin_cli_account_login/030_phase3_surface_and_land.md
  • devlog/_fin/260912_devin_cli_account_login/031_phase3_surface_and_land.md
  • devlog/_fin/260912_devin_cli_account_login/090_outcome.md
  • devlog/_plan/260911_account_pool_unification/000_plan.md
  • devlog/_plan/260911_account_pool_unification/010_phase1_manual_selection.md
  • devlog/_plan/260911_account_pool_unification/020_phase2_shared_kernel.md
  • devlog/_plan/260911_account_pool_unification/030_phase3_cache_affinity.md
  • devlog/_plan/260911_account_pool_unification/040_phase4_key_pool_strategy.md
  • devlog/_plan/260911_account_pool_unification/050_phase5_surface_consolidation.md
  • devlog/_plan/260911_cursor_checkpoint_capture/000_plan.md
  • devlog/_plan/260911_cursor_checkpoint_capture/001_frame_evidence.md
  • devlog/_plan/260911_cursor_checkpoint_capture/010_phase1_grace_experiment.md
  • devlog/_plan/260911_cursor_checkpoint_capture/011_wp2_deconfound.md
  • devlog/_plan/260911_cursor_checkpoint_capture/012_wp4_measurement_artifact.md
  • devlog/_plan/260911_cursor_checkpoint_capture/020_phase2_responses_identity.md
  • devlog/_plan/260911_cursor_checkpoint_capture/030_phase3_landing.md
  • devlog/_plan/260911_cursor_checkpoint_capture/040_wp5_coverage_instrument.md
  • devlog/_plan/260911_deepseek_v41_transition/000_plan.md
  • devlog/_plan/260911_deepseek_v41_transition/001_evidence.md
  • devlog/_plan/260911_deepseek_v41_transition/002_inventory.md
  • devlog/_plan/260911_deepseek_v41_transition/010_phase1_pr4258.md
  • devlog/_plan/260911_deepseek_v41_transition/020_phase2_v41_rollout.md
  • devlog/_plan/260911_deepseek_v41_transition/030_phase3_v4pro_removal.md
  • devlog/_plan/260911_deepseek_v41_transition/040_phase4_merge.md
  • devlog/_plan/260911_devin_two_providers/001_plan.md
  • devlog/_plan/260911_devin_two_providers/002_audit.md
  • devlog/_plan/260911_devin_two_providers/003_live_evidence.md
  • devlog/_plan/260911_devin_two_providers/004_devin_cli_split.md
  • devlog/_plan/260911_ocx_login_codex_routing/000_plan.md
  • devlog/_plan/260911_ocx_login_codex_routing/010_audit_round1.md
  • devlog/_plan/260911_opencode_go_free_stabilization/000_plan.md
  • devlog/_plan/260911_opencode_go_free_stabilization/001_issue_triage.md
  • devlog/_plan/260911_opencode_go_free_stabilization/002_cross_proxy_survey.md
  • devlog/_plan/260911_opencode_go_free_stabilization/003_registry_gap_inventory.md
  • devlog/_plan/260911_opencode_go_free_stabilization/004_audit_rounds.md
  • devlog/_plan/260911_opencode_go_free_stabilization/010_phase1_preset_structured_output.md
  • devlog/_plan/260911_opencode_go_free_stabilization/020_phase2_preset_consistency_guard.md
  • devlog/_plan/260911_opencode_go_free_stabilization/030_phase3_docs_and_pr.md
  • devlog/_plan/260911_opencode_go_free_stabilization/031_wp4_outcome.md
  • devlog/_plan/260911_r2_merge_train/000_plan.md
  • devlog/_plan/260911_r2_merge_train/010_phase1_pr4244.md
  • devlog/_plan/260911_r2_merge_train/020_phase2_pr4248.md
  • devlog/_plan/260911_r2_merge_train/030_phase3_pr4246.md
  • devlog/_plan/260911_r2_merge_train/040_phase4_pr4247.md
  • devlog/_plan/260911_ws_commit_boundary/000_plan.md
  • devlog/_plan/260911_ws_commit_boundary/010_journey_evaluation.md
  • devlog/_plan/260911_ws_commit_boundary/020_design_record.md
  • devlog/_plan/260911_ws_commit_boundary/025_audit_round1.md
  • devlog/_plan/260911_ws_commit_boundary/030_wp2_plan.md
  • devlog/_plan/260911_ws_commit_boundary/040_wp3_plan.md
  • devlog/_plan/260911_ws_commit_boundary/045_wp4_plan.md
  • devlog/_plan/260911_ws_commit_boundary/050_review.md
  • devlog/_plan/260912_accounts/000_plan.md
  • devlog/_plan/260912_accounts/001_roadmap_audit.md
  • devlog/_plan/260912_accounts/010_callback.md
  • devlog/_plan/260912_accounts/011_callback_delivery.md
  • devlog/_plan/260912_accounts/020_eligibility.md
  • devlog/_plan/260912_accounts/030_reset.md
  • devlog/_plan/260912_accounts/040_generic_family.md
  • devlog/_plan/260912_accounts/041_generic_lifecycle.md
  • devlog/_plan/260912_accounts/042_generic_health.md
  • devlog/_plan/260912_accounts/045_warmup.md
  • devlog/_plan/260912_accounts/050_history.md
  • devlog/_plan/260912_accounts/060_capacity.md
  • devlog/_plan/260912_accounts/070_tun.md
  • devlog/_plan/260912_accounts/080_reauth_api.md
  • devlog/_plan/260912_accounts/090_reauth_ui.md
  • devlog/_plan/260912_accounts/100_final.md
  • devlog/_plan/260912_cache_lane/000_plan.md
  • devlog/_plan/260912_cache_lane/010_claim.md
  • devlog/_plan/260912_cache_lane/020_affinity.md
  • devlog/_plan/260912_cache_lane/025_affinity_native.md
  • devlog/_plan/260912_cache_lane/026_affinity_adapt.md
  • devlog/_plan/260912_cache_lane/027_affinity_slot.md
  • devlog/_plan/260912_cache_lane/030_prefix.md
  • devlog/_plan/260912_cache_lane/035_prefix_adapt.md
  • devlog/_plan/260912_cache_lane/036_prefix_linear.md
  • devlog/_plan/260912_cache_lane/037_prefix_slot.md
  • devlog/_plan/260912_cache_lane/040_hermes.md
  • devlog/_plan/260912_cache_lane/041_hermes_ci_refresh.md
  • devlog/_plan/260912_cache_lane/050_verify.md
  • devlog/_plan/260912_cache_lane/060_handoff.md
  • devlog/_plan/260912_campaign_ci_fixtures/000_plan.md
  • devlog/_plan/260912_catalog_lane_readiness/000_plan.md
  • devlog/_plan/260912_catalog_lane_readiness/010_roadmap.md
  • devlog/_plan/260912_catalog_lane_readiness/011_design_reflection.md
  • devlog/_plan/260912_catalog_lane_readiness/020_review.md
  • devlog/_plan/260912_catalog_lane_readiness/022_keyboard_repair.md
  • devlog/_plan/260912_catalog_lane_readiness/030_evidence.md
  • devlog/_plan/260912_cline_client/000_plan.md
  • devlog/_plan/260912_cline_client/001_contract.md
  • devlog/_plan/260912_cline_client/009_roadmap_result.md
  • devlog/_plan/260912_cline_client/010_contract.md
  • devlog/_plan/260912_cline_client/019_contract_result.md
  • devlog/_plan/260912_cline_client/020_surfaces.md
  • devlog/_plan/260912_cline_client/029_surfaces_result.md
  • devlog/_plan/260912_cline_client/030_verification.md
  • devlog/_plan/260912_cline_client/039_gui_evidence.md
  • devlog/_plan/260912_codex_gpt54_retirement/000_plan.md
  • devlog/_plan/260912_codex_gpt54_retirement/010_catalog_removal.md
  • devlog/_plan/260912_codex_gpt54_retirement/020_defaults_repoint.md
  • devlog/_plan/260912_codex_gpt54_retirement/030_surfaces_and_gate.md
  • devlog/_plan/260912_codex_gpt54_retirement/040_done.md
  • devlog/_plan/260912_combo_carry/000_plan.md
  • devlog/_plan/260912_combo_carry/010_runtime.md
  • devlog/_plan/260912_combo_carry/020_editor.md
  • devlog/_plan/260912_combo_carry/030_verification.md
  • devlog/_plan/260912_combo_carry/034_render_evidence.md
  • devlog/_plan/260912_combo_carry/040_pnpm_ci_repair.md
  • devlog/_plan/260912_combo_carry/050_active_reactivation_repair.md
  • devlog/_plan/260912_grok_reset_coupon_gui/000_plan.md
  • devlog/_plan/260912_grok_reset_coupon_gui/005_status.md
  • devlog/_plan/260912_grok_reset_coupon_gui/010_architect_dispositions.md
  • devlog/_plan/260912_grok_reset_coupon_gui/020_reflection_gaps.md
  • devlog/_plan/260912_grok_reset_coupon_gui/030_audit_round1.md
  • devlog/_plan/260912_grok_reset_coupon_gui/evidence/architect-round1.md
  • devlog/_plan/260912_grok_reset_coupons/000_plan.md
  • devlog/_plan/260912_grok_reset_coupons/001_survey_seams.md
  • devlog/_plan/260912_grok_reset_coupons/005_status.md
  • devlog/_plan/260912_grok_reset_coupons/010_phase1_core_client.md
  • devlog/_plan/260912_grok_reset_coupons/020_phase2_surfaces.md
  • devlog/_plan/260912_grok_reset_coupons/030_phase3_delivery.md
  • devlog/_plan/260912_history_containment/000_plan.md
  • devlog/_plan/260912_history_containment/010_containment.md
  • devlog/_plan/260912_history_containment/020_continuation.md
  • devlog/_plan/260912_history_containment/030_relay.md
  • devlog/_plan/260912_history_containment/040_verification.md
  • devlog/_plan/260912_history_containment/051_resume_status.md
  • devlog/_plan/260912_omo_client_integration/000_plan.md
  • devlog/_plan/260912_omo_client_integration/001_omo_contract.md
  • devlog/_plan/260912_omo_client_integration/002_registration_checklist.md
  • devlog/_plan/260912_omo_client_integration/003_brand_mark_provenance.md
  • devlog/_plan/260912_omo_client_integration/010_wp2_backend.md
  • devlog/_plan/260912_omo_client_integration/020_wp3_gui.md
  • devlog/_plan/260912_omo_client_integration/030_wp4_docs.md
  • devlog/_plan/260912_omo_client_integration/040_wp5_verification.md
  • devlog/_plan/260912_omo_client_integration/050_wp6_gjc_rename.md
  • devlog/_plan/260912_omo_client_integration/060_wp3_rendered_proof.md
  • devlog/_plan/260912_omo_client_integration/090_outcome.md
  • devlog/_plan/260912_operations/000_plan.md
  • devlog/_plan/260912_operations/001_roadmap_audit.md
  • devlog/_plan/260912_operations/010_update.md
  • devlog/_plan/260912_operations/020_listeners.md
  • devlog/_plan/260912_operations/030_totals.md
  • devlog/_plan/260912_operations/040_client_usage.md
  • devlog/_plan/260912_operations/050_pairing.md
  • devlog/_plan/260912_operations/060_transport.md
  • devlog/_plan/260912_operations/070_verification.md
  • devlog/_plan/260912_operations/080_update_events.md
  • devlog/_plan/260912_phantom_account_short_quota/000_plan.md
  • devlog/_plan/260912_phantom_account_short_quota/010_phase1_drop_elapsed_short_carry.md
  • devlog/_plan/260912_provider_catalog_unified_search/000_plan.md
  • devlog/_plan/260912_provider_catalog_unified_search/010_context.md
  • devlog/_plan/260912_provider_catalog_unified_search/015_codesign_grok.md
  • devlog/_plan/260912_provider_catalog_unified_search/016_audit_corrections.md
  • devlog/_plan/260912_provider_catalog_unified_search/020_r3_local_tab.md
  • devlog/_plan/260912_provider_catalog_unified_search/030_r2_note_clamp.md
  • devlog/_plan/260912_provider_catalog_unified_search/040_r1_unified_search.md
  • devlog/_plan/260912_provider_catalog_unified_search/050_delivery.md
  • devlog/_plan/260912_provider_catalog_unified_search/060_delivery_record.md
  • devlog/_plan/260912_provider_catalog_unified_search/evidence/grok-4.6-codesign.md
  • devlog/_plan/260912_release_regression_train/000_plan.md
  • devlog/_plan/260912_release_regression_train/010_ci_repair.md
  • devlog/_plan/260912_release_regression_train/020_regression_sweep.md
  • devlog/_plan/260912_release_regression_train/025_sweep_results.md
  • devlog/_plan/260912_release_regression_train/030_defect_landing.md
  • devlog/_plan/260912_release_regression_train/040_preview_release.md
  • devlog/_plan/260912_release_regression_train/050_main_release.md
  • devlog/_plan/260912_remote_workspace_carry/000_plan.md
  • devlog/_plan/260912_remote_workspace_carry/010_protocol.md
  • devlog/_plan/260912_remote_workspace_carry/020_executor_runtime.md
  • devlog/_plan/260912_remote_workspace_carry/030_integration.md
  • devlog/_plan/260912_remote_workspace_carry/040_hosted_validation.md
  • devlog/_plan/260912_zcode_protocol_and_catalog/000_plan.md
  • devlog/_plan/260912_zcode_protocol_and_catalog/001_research_zai_model_facts.md
  • devlog/_plan/260912_zcode_protocol_and_catalog/002_research_zcode_bundle_schema.md
  • devlog/_plan/260912_zcode_protocol_and_catalog/003_research_ocx_internals.md
  • devlog/_plan/260912_zcode_protocol_and_catalog/010_wp2_zcode_export_responses.md
  • devlog/_plan/260912_zcode_protocol_and_catalog/020_wp3_glm53_flash_modalities.md
  • devlog/_plan/260912_zcode_protocol_and_catalog/030_wp4_zai_responses_default.md
  • devlog/_plan/260912_zcode_protocol_and_catalog/evidence/zai-responses-models.json
  • docs-site/src/components/Landing.astro
  • docs-site/src/content/docs/fr/getting-started/quickstart.md
  • docs-site/src/content/docs/fr/guides/claude-code.md
  • docs-site/src/content/docs/fr/guides/codex-app-models.md
  • docs-site/src/content/docs/fr/guides/codex-integration.md
  • docs-site/src/content/docs/fr/guides/combos.md
  • docs-site/src/content/docs/fr/guides/integrations.md
  • docs-site/src/content/docs/fr/guides/model-ordering.md
  • docs-site/src/content/docs/fr/guides/providers.md
  • docs-site/src/content/docs/fr/guides/sidecars.md
  • docs-site/src/content/docs/fr/guides/sub-agent-surface.md
  • docs-site/src/content/docs/fr/reference/adapters.md
  • docs-site/src/content/docs/fr/reference/cli/agents.md
  • docs-site/src/content/docs/fr/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/fr/reference/configuration/agents.md
  • docs-site/src/content/docs/fr/reference/configuration/providers.md
  • docs-site/src/content/docs/fr/reference/configuration/server.md
  • docs-site/src/content/docs/fr/reference/management-api.md
  • docs-site/src/content/docs/fr/reference/proxy-formats.md
  • docs-site/src/content/docs/getting-started/quickstart.md
  • docs-site/src/content/docs/guides/claude-code.md
  • docs-site/src/content/docs/guides/codex-app-models.md
  • docs-site/src/content/docs/guides/codex-integration.md
  • docs-site/src/content/docs/guides/combos.md
  • docs-site/src/content/docs/guides/integrations.md
  • docs-site/src/content/docs/guides/model-ordering.md
  • docs-site/src/content/docs/guides/opencode.md
  • docs-site/src/content/docs/guides/providers.md
  • docs-site/src/content/docs/guides/sidecars.md
  • docs-site/src/content/docs/guides/sub-agent-surface.md
  • docs-site/src/content/docs/guides/web-dashboard.md
  • docs-site/src/content/docs/ja/getting-started/quickstart.md
  • docs-site/src/content/docs/ja/guides/claude-code.md
  • docs-site/src/content/docs/ja/guides/codex-app-models.md
  • docs-site/src/content/docs/ja/guides/codex-integration.md
  • docs-site/src/content/docs/ja/guides/combos.md
  • docs-site/src/content/docs/ja/guides/providers.md
  • docs-site/src/content/docs/ja/guides/sidecars.md
  • docs-site/src/content/docs/ja/guides/sub-agent-surface.md
  • docs-site/src/content/docs/ja/reference/adapters.md
  • docs-site/src/content/docs/ja/reference/cli/agents.md
  • docs-site/src/content/docs/ja/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/ja/reference/configuration/agents.md
  • docs-site/src/content/docs/ja/reference/configuration/providers.md
  • docs-site/src/content/docs/ja/reference/configuration/server.md
  • docs-site/src/content/docs/ja/reference/management-api.md
  • docs-site/src/content/docs/ja/reference/proxy-formats.md
  • docs-site/src/content/docs/ko/getting-started/quickstart.md
  • docs-site/src/content/docs/ko/guides/claude-code.md
  • docs-site/src/content/docs/ko/guides/codex-app-models.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/guides/providers.md
  • docs-site/src/content/docs/ko/guides/sidecars.md
  • docs-site/src/content/docs/ko/guides/sub-agent-surface.md
  • docs-site/src/content/docs/ko/guides/web-dashboard.md
  • docs-site/src/content/docs/ko/reference/adapters.md
  • docs-site/src/content/docs/ko/reference/cli/agents.md
  • docs-site/src/content/docs/ko/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/ko/reference/configuration/agents.md
  • docs-site/src/content/docs/ko/reference/configuration/providers.md
  • docs-site/src/content/docs/ko/reference/configuration/server.md
  • docs-site/src/content/docs/ko/reference/management-api.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/cli/agents.md
  • docs-site/src/content/docs/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/reference/configuration.md
  • docs-site/src/content/docs/reference/configuration/agents.md
  • docs-site/src/content/docs/reference/configuration/providers.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/getting-started/quickstart.md
  • docs-site/src/content/docs/ru/guides/claude-code.md
  • docs-site/src/content/docs/ru/guides/codex-app-models.md
  • docs-site/src/content/docs/ru/guides/codex-integration.md
  • docs-site/src/content/docs/ru/guides/combos.md
  • docs-site/src/content/docs/ru/guides/providers.md
  • docs-site/src/content/docs/ru/guides/sidecars.md
  • docs-site/src/content/docs/ru/guides/sub-agent-surface.md
  • docs-site/src/content/docs/ru/guides/web-dashboard.md
  • docs-site/src/content/docs/ru/reference/adapters.md
  • docs-site/src/content/docs/ru/reference/cli/agents.md
  • docs-site/src/content/docs/ru/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/ru/reference/configuration/agents.md
  • docs-site/src/content/docs/ru/reference/configuration/providers.md
  • docs-site/src/content/docs/ru/reference/configuration/server.md
  • docs-site/src/content/docs/ru/reference/management-api.md
  • docs-site/src/content/docs/ru/reference/proxy-formats.md
  • docs-site/src/content/docs/tr/getting-started/quickstart.md
  • docs-site/src/content/docs/tr/guides/claude-code.md
  • docs-site/src/content/docs/tr/guides/codex-app-models.md
  • docs-site/src/content/docs/tr/guides/codex-integration.md
  • docs-site/src/content/docs/tr/guides/combos.md
  • docs-site/src/content/docs/tr/guides/integrations.md
  • docs-site/src/content/docs/tr/guides/providers.md
  • docs-site/src/content/docs/tr/guides/sidecars.md
  • docs-site/src/content/docs/tr/guides/sub-agent-surface.md
  • docs-site/src/content/docs/tr/reference/adapters.md
  • docs-site/src/content/docs/tr/reference/cli/agents.md
  • docs-site/src/content/docs/tr/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/tr/reference/configuration/agents.md
  • docs-site/src/content/docs/tr/reference/configuration/providers.md
  • docs-site/src/content/docs/tr/reference/configuration/server.md
  • docs-site/src/content/docs/tr/reference/management-api.md
  • docs-site/src/content/docs/tr/reference/proxy-formats.md
  • docs-site/src/content/docs/zh-cn/getting-started/quickstart.md
  • docs-site/src/content/docs/zh-cn/guides/claude-code.md
  • docs-site/src/content/docs/zh-cn/guides/codex-app-models.md
  • docs-site/src/content/docs/zh-cn/guides/codex-integration.md
  • docs-site/src/content/docs/zh-cn/guides/combos.md
  • docs-site/src/content/docs/zh-cn/guides/providers.md
  • docs-site/src/content/docs/zh-cn/guides/sidecars.md
  • docs-site/src/content/docs/zh-cn/guides/sub-agent-surface.md
  • docs-site/src/content/docs/zh-cn/guides/web-dashboard.md
  • docs-site/src/content/docs/zh-cn/reference/adapters.md
  • docs-site/src/content/docs/zh-cn/reference/cli/agents.md
  • docs-site/src/content/docs/zh-cn/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/zh-cn/reference/configuration/agents.md
  • docs-site/src/content/docs/zh-cn/reference/configuration/providers.md
  • docs-site/src/content/docs/zh-cn/reference/configuration/server.md
  • docs-site/src/content/docs/zh-cn/reference/management-api.md
  • docs-site/src/content/docs/zh-cn/reference/proxy-formats.md
  • docs-site/src/content/docs/zh-tw/getting-started/quickstart.md
  • docs-site/src/content/docs/zh-tw/guides/claude-code.md
  • docs-site/src/content/docs/zh-tw/guides/codex-app-models.md
  • docs-site/src/content/docs/zh-tw/guides/codex-integration.md
  • docs-site/src/content/docs/zh-tw/guides/combos.md
  • docs-site/src/content/docs/zh-tw/guides/integrations.md
  • docs-site/src/content/docs/zh-tw/guides/providers.md
  • docs-site/src/content/docs/zh-tw/guides/sidecars.md
  • docs-site/src/content/docs/zh-tw/guides/sub-agent-surface.md
  • docs-site/src/content/docs/zh-tw/guides/web-dashboard.md
  • docs-site/src/content/docs/zh-tw/reference/adapters.md
  • docs-site/src/content/docs/zh-tw/reference/cli/agents.md
  • docs-site/src/content/docs/zh-tw/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/zh-tw/reference/configuration/agents.md
  • docs-site/src/content/docs/zh-tw/reference/configuration/providers.md
  • docs-site/src/content/docs/zh-tw/reference/configuration/server.md
  • docs-site/src/content/docs/zh-tw/reference/management-api.md
  • docs-site/src/content/docs/zh-tw/reference/proxy-formats.md
  • docs/README.md
  • docs/codex-app-model-catalog.md
  • docs/shadow-call-intercept.md
  • gui/public/provider-icons/README.md
  • gui/src/account-pool-strategy.ts
  • gui/src/app-routing.ts
  • gui/src/codex-auto-switch.ts
  • gui/src/combo-workspace-data.ts
  • gui/src/components/AddProviderModal.tsx
  • gui/src/components/CodexPoolStrategySetting.tsx
  • gui/src/components/apikeys-workspace/ClientConfigDialog.tsx
  • gui/src/components/apikeys-workspace/ClientConfigPanel.tsx
  • gui/src/components/apikeys-workspace/client-config-clients.ts
  • gui/src/components/integration-marks.ts
  • gui/src/components/provider-catalog/CatalogAccountRow.tsx
  • gui/src/components/provider-catalog/ProviderCatalog.tsx
  • gui/src/components/provider-catalog/ProviderNoteModal.tsx
  • gui/src/components/provider-catalog/account-row-types.ts
  • gui/src/components/provider-catalog/provider-presets.ts
  • gui/src/components/provider-workspace/AnthropicAccountPoolSettings.tsx
  • gui/src/components/provider-workspace/GrokResetCoupons.tsx
  • gui/src/components/provider-workspace/ProviderAuthPanel.tsx
  • gui/src/hooks/useGrokResetCoupons.ts
  • 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/pages/Combos.tsx
  • gui/src/pages/api-keys-panels.tsx
  • gui/src/pages/dashboard-overview-sections.tsx
  • gui/src/pages/integrations/FileIntegrationPage.tsx
  • gui/src/pages/integrations/integration-api.ts
  • gui/src/pages/integrations/integration-tabs.ts
  • gui/src/pages/integrations/overview-clients.ts
  • gui/src/pages/providers-shared.ts
  • gui/src/pool-settings.ts
  • gui/src/provider-icons.ts
  • gui/src/styles/provider-catalog.css
  • gui/tests/account-pool-strategy.test.tsx
  • gui/tests/anthropic-pool-quota-window.test.tsx
  • gui/tests/api-access-models.test.ts
  • gui/tests/apikeys-actions.test.tsx
  • gui/tests/apikeys-model-test-wire.test.tsx
  • gui/tests/apikeys-models-states.test.tsx
  • gui/tests/client-config-panel.test.tsx
  • gui/tests/codex-account-auto-switch.test.tsx
  • gui/tests/codex-auto-switch-controller.test.tsx
  • gui/tests/combo-workspace-dirty.test.tsx
  • gui/tests/combo-workspace-empty.test.tsx
  • gui/tests/fr-localization.test.ts
  • gui/tests/grok-reset-coupons.test.tsx
  • gui/tests/integrations-api.test.ts
  • gui/tests/integrations-overview-rows.test.ts
  • gui/tests/locale-parity.test.ts
  • gui/tests/page-loading-contract.test.tsx
  • gui/tests/provider-catalog-note-popup.test.tsx
  • gui/tests/provider-catalog-search.test.tsx
  • gui/tests/subagents-fallback.test.tsx
  • gui/tests/vision-reasoning-contract.test.ts
  • gui/tests/vision-sidecar-dashboard.test.tsx
  • package.json
  • scripts/release-notes.ts
  • scripts/structure-ssot.ts
  • scripts/test-layout/layout.json
  • skills/ocx/references/01_management_surface.md
  • src/AGENTS.md
  • src/adapters/cline-pass-deepseek-v4-tool-replay.ts
  • src/adapters/command-code.ts
  • src/adapters/cursor.ts
  • src/adapters/cursor/checkpoint-store.ts
  • src/adapters/cursor/live-transport.ts
  • src/adapters/devin-cli/acp.ts
  • src/adapters/devin-cli/adapter.ts
  • src/adapters/devin-cli/binary.ts
  • src/adapters/devin-cli/models.ts
  • src/adapters/devin.ts
  • src/adapters/devin/cloud-direct/auth.ts
  • src/adapters/devin/cloud-direct/catalog.ts
  • src/adapters/devin/cloud-direct/chat.ts
  • src/adapters/devin/cloud-direct/index.ts
  • src/adapters/devin/cloud-direct/metadata.ts
  • src/adapters/devin/cloud-direct/wire.ts
  • src/adapters/devin/live-models.ts
  • src/adapters/google.ts
  • src/adapters/openai-chat.ts
  • src/adapters/openai-responses.ts
  • src/adapters/registry.ts
  • src/bridge.ts
  • src/claude/inbound-cache-stabilize.ts
  • src/claude/inbound.ts
  • src/cli/account-auth.ts
  • src/cli/account-extended.ts
  • src/cli/account.ts
  • src/cli/capabilities.ts
  • src/cli/config-command.ts
  • src/cli/dispatch.ts
  • src/cli/export-command.ts
  • src/cli/help.ts
  • src/cli/opencode.ts
  • src/cli/registry.ts
  • src/clients/config-export.ts
  • src/clients/config-export/cline.ts
  • src/clients/config-export/contracts.ts
  • src/clients/config-export/model-metadata.ts
  • src/clients/config-export/zcode.ts
  • src/codex/account-store.ts
  • src/codex/auth-context.ts
  • src/codex/catalog/effort.ts
  • src/codex/catalog/metadata.ts
  • src/codex/catalog/native-models.ts
  • src/codex/catalog/parsing.ts
  • src/codex/catalog/provider-fetch.ts
  • src/codex/catalog/sync.ts
  • src/codex/context-compat.ts
  • src/codex/context-owner.ts
  • src/codex/history-provider.ts
  • src/codex/inject-coordination.ts
  • src/codex/inject.ts
  • src/codex/pool-rotation.ts
  • src/codex/quota.ts
  • src/codex/retired-model-migration.ts
  • src/codex/routing.ts
  • src/codex/warmup.ts
  • src/combos/failover.ts
  • src/combos/resolve.ts
  • src/config.ts
  • src/grok/grpc-web.ts
  • src/grok/reset-coupon-ledger.ts
  • src/grok/reset-coupons.ts
  • src/integrations/catalog-refresh.ts
  • src/integrations/cline-document.ts
  • src/integrations/cline-io.ts
  • src/integrations/cline-transaction.ts
  • src/integrations/config-io.ts
  • src/integrations/journal.ts
  • src/integrations/omp-yaml-source.ts
  • src/integrations/ownership-policy.ts
  • src/integrations/ownership.ts
  • src/integrations/registry.ts
  • src/integrations/state.ts
  • src/integrations/store.ts
  • src/integrations/writer.ts
  • src/lab/subject/behavior-fingerprint.ts
  • src/lib/abort.ts
  • src/lib/local-destinations.ts
  • src/lib/upstream-retry.ts
  • src/oauth/account-quota-rank.ts
  • src/oauth/callback-server.ts
  • src/oauth/devin-cli.ts
  • src/oauth/devin.ts
  • src/oauth/devin/api-base.ts
  • src/oauth/devin/login.ts
  • src/oauth/devin/register-user.ts
  • src/oauth/devin/types.ts
  • src/oauth/generic-account-failover.ts
  • src/oauth/index.ts
  • src/oauth/login-cli.ts
  • src/oauth/pool-kernel.ts
  • src/oauth/pool-settings-capability.ts
  • src/oauth/store.ts
  • src/oauth/token-guardian.ts
  • src/providers/codebuddy-models.ts
  • src/providers/command-code-efforts.ts
  • src/providers/default-aliases.ts
  • src/providers/derive.ts
  • src/providers/devin-cli-authmode-migration.ts
  • src/providers/key-failover.ts
  • src/providers/model-rename-startup.ts
  • src/providers/qoder-models.ts
  • src/providers/quota-key-accounts.ts
  • src/providers/quota-routing-cache.ts
  • src/providers/quota-types.ts
  • src/providers/quota.ts
  • src/providers/registry.ts
  • src/providers/stale-context-window-migration.ts
  • src/providers/zai-responses-migration.ts
  • src/quota/reset-observer.ts
  • src/quota/reset-seen-store.ts
  • src/remote-control/crypto.ts
  • src/remote-control/host.ts
  • src/remote-control/index.ts
  • src/remote-control/protocol.ts
  • src/remote-control/relay.ts
  • src/remote-control/workspace-agent-protocol.ts
  • src/remote-control/workspace-rpc-framing.ts
  • src/remote-control/workspace-tools.ts
  • src/remote-control/workspace-utf8.ts
  • src/responses/custom-tool-compat.ts
  • src/router.ts
  • src/routing/compatibility/behavior.ts
  • src/server/adapter-resolve.ts
  • src/server/auth-cors.ts
  • src/server/chat-completions.ts
  • src/server/chat-native.ts
  • src/server/claude-messages.ts
  • src/server/context-history.ts
  • src/server/images.ts
  • src/server/index.ts
  • src/server/live.ts
  • src/server/management-api.ts
  • src/server/management/agent-settings-routes.ts
  • src/server/management/config-routes.ts
  • src/server/management/grok-coupon-routes.ts
  • src/server/management/integration-routes.ts
  • src/server/management/oauth-account-routes.ts
  • src/server/management/provider-routes.ts
  • src/server/management/route-registry.ts
  • src/server/request-log.ts
  • src/server/responses-undeclared-tool-guard.ts
  • src/server/responses/codex-ws-exchange.ts
  • src/server/responses/codex-ws-wire.ts
  • src/server/responses/compact.ts
  • src/server/responses/core.ts
  • src/server/responses/ws-upstream.ts
  • src/server/zai-responses-startup.ts
  • src/types/config.ts
  • src/types/provider.ts
  • src/types/request.ts
  • src/types/tools.ts
  • src/update/job.ts
  • src/vision/plan.ts
  • src/web-search/index.ts
  • structure/02_config-and-codex-home.md
  • structure/03_catalog-and-subagents.md
  • structure/04_transports-and-sidecars.md
  • structure/AGENTS.md
  • structure/INDEX.md
  • structure/adapters/compatibility-contracts.md
  • structure/adapters/compatibility-lab.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/data-planes/search.md
  • structure/decisions/ADR-0001-product-boundary.md
  • structure/decisions/ADR-0002-lifecycle.md
  • structure/decisions/ADR-0003-lifecycle.md
  • structure/decisions/ADR-0004-lifecycle.md
  • structure/decisions/ADR-0005-codex-home.md
  • structure/decisions/ADR-0006-codex-home.md
  • structure/decisions/ADR-0007-codex-home.md
  • structure/decisions/ADR-0008-codex-home.md
  • structure/decisions/ADR-0009-codex-home.md
  • structure/decisions/ADR-0010-codex-home.md
  • structure/decisions/ADR-0011-codex-home.md
  • structure/decisions/ADR-0012-codex-home.md
  • structure/decisions/ADR-0013-codex-home.md
  • structure/decisions/ADR-0014-codex-home.md
  • structure/decisions/ADR-0015-codex-home.md
  • structure/decisions/ADR-0016-config-surface.md
  • structure/decisions/ADR-0017-config-injection.md
  • structure/decisions/ADR-0018-config-injection.md
  • structure/decisions/ADR-0019-config-injection.md
  • structure/decisions/ADR-0020-provider-validation-ownership.md
  • structure/decisions/ADR-0021-shared-catalog.md
  • structure/decisions/ADR-0022-routed-tool-discovery-and-hosted-search.md
  • structure/decisions/ADR-0023-ultra-reasoning-level.md
  • structure/decisions/ADR-0024-ultra-reasoning-level.md
  • structure/decisions/ADR-0025-ultra-reasoning-level.md
  • structure/decisions/ADR-0026-ultra-reasoning-level.md
  • structure/decisions/ADR-0027-subagents.md
  • structure/decisions/ADR-0028-background-service-command-selection.md
  • structure/decisions/ADR-0029-windows-startup-ownership-listing-reuse.md
  • structure/decisions/ADR-0030-stable-service-launcher-launchd-and-systemd.md
  • structure/decisions/ADR-0031-responses-http-sse.md
  • structure/decisions/ADR-0032-responses-http-sse.md
  • structure/decisions/ADR-0033-responses-http-sse.md
  • structure/decisions/ADR-0034-responses-http-sse.md
  • structure/decisions/ADR-0035-responses-http-sse.md
  • structure/decisions/ADR-0036-responses-http-sse.md
  • structure/decisions/ADR-0037-responses-http-sse.md
  • structure/decisions/ADR-0038-responses-http-sse.md
  • structure/decisions/ADR-0039-responses-http-sse.md
  • structure/decisions/ADR-0040-responses-http-sse.md
  • structure/decisions/ADR-0041-responses-http-sse.md
  • structure/decisions/ADR-0042-responses-http-sse.md
  • structure/decisions/ADR-0043-responses-http-sse.md
  • structure/decisions/ADR-0044-responses-http-sse.md
  • structure/decisions/ADR-0045-standalone-images.md
  • structure/decisions/ADR-0046-claude-desktop-config-library-resolution.md
  • structure/decisions/ADR-0047-cursor-native-exec.md
  • structure/decisions/ADR-0048-cursor-native-exec.md
  • structure/decisions/ADR-0049-heartbeat-and-stall-deadline.md
  • structure/decisions/ADR-0050-heartbeat-and-stall-deadline.md
  • structure/decisions/ADR-0051-reasoning-and-tool-result-compatibility.md
  • structure/decisions/ADR-0052-reasoning-and-tool-result-compatibility.md
  • structure/decisions/ADR-0053-cursor-active-context-usage.md
  • structure/decisions/ADR-0054-cursor-conversation-checkpoint-reuse.md
  • structure/decisions/ADR-0055-google-thought-text-visibility-boundary.md
  • structure/decisions/ADR-0056-google-response-part-field-boundary.md
  • structure/decisions/ADR-0057-google-tool-call-thought-signature-replay.md
  • structure/decisions/ADR-0058-google-tool-result-adjacency-repair.md
  • structure/decisions/ADR-0059-xai-grok-hardening-official-grok-build-contract.md
  • structure/decisions/ADR-0060-kiro-client-parallel-tool-hint.md
  • structure/decisions/ADR-0061-kiro-responses-text-controls.md
  • structure/decisions/ADR-0062-chat-streaming-client-with-a-json-upstream-resul.md
  • structure/decisions/ADR-0063-volcengine-ark-assistant-continuation-shapes.md
  • structure/decisions/ADR-0064-chat-structured-output-compatibility.md
  • structure/decisions/ADR-0065-chat-structured-output-compatibility.md
  • structure/decisions/ADR-0066-anthropic-structured-output-compatibility.md
  • structure/decisions/ADR-0067-reasoning-display-parity-hidethinkingsummary.md
  • structure/decisions/ADR-0068-reasoning-display-parity-hidethinkingsummary.md
  • structure/decisions/ADR-0069-chat-to-responses-message-phase-inference.md
  • structure/decisions/ADR-0070-same-provider-combo-quota-fallback.md
  • structure/decisions/ADR-0071-combo-streaming-commit-boundary.md
  • structure/decisions/ADR-0072-transport-inventory.md
  • structure/decisions/ADR-0073-authentication-boundaries.md
  • structure/decisions/ADR-0074-api-ownership.md
  • structure/decisions/ADR-0075-startup-safety.md
  • structure/decisions/ADR-0076-startup-safety.md
  • structure/decisions/ADR-0077-startup-safety.md
  • structure/decisions/ADR-0078-usage-accounting.md
  • structure/decisions/ADR-0079-usage-accounting.md
  • structure/decisions/ADR-0080-github-pages.md
  • structure/decisions/ADR-0081-container-deployment-recipe.md
  • structure/decisions/ADR-0082-windows-service-wrapper-and-incomplete-updates.md
  • structure/decisions/ADR-0083-maintenance-governance.md
  • structure/decisions/ADR-0084-public-provider-contract.md
  • structure/decisions/ADR-0085-public-provider-contract.md
  • structure/decisions/ADR-0086-public-provider-contract.md
  • structure/decisions/ADR-0087-model-and-wire-identity.md
  • structure/decisions/ADR-0088-model-and-wire-identity.md
  • structure/decisions/ADR-0089-process-local-affinity-diagnostics.md
  • structure/decisions/ADR-0090-hermes-model-capabilities.md
  • structure/decisions/ADR-0091-ownership-axes.md
  • structure/decisions/ADR-0092-zcode-runtime-metadata.md
  • structure/decisions/ADR-0093-moonshot-ref-with-siblings-normalization.md
  • structure/decisions/ADR-0094-canonical-forward-continuation-extensions.md
  • structure/decisions/ADR-0095-canonical-forward-continuation-extensions.md
  • structure/decisions/ADR-0096-z-ai-quota-destination-ownership.md
  • structure/design-methodology.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/remote-workspace.md
  • structure/runtime.md
  • structure/subagents.md
  • structure/transports/inventory.md
  • structure/transports/responses.md
  • structure/transports/streaming-health.md
  • tests/adapters/adapter-registry-authority.test.ts
  • tests/adapters/adapter-tool-conformance.test.ts
  • tests/adapters/bridge-legacy-shell-normalization.test.ts
  • tests/adapters/bridge-nonstreaming-terminal.test.ts
  • tests/adapters/key-failover.test.ts
  • tests/adapters/openai/openai-api-virtual-models.test.ts
  • tests/adapters/openai/openai-chat-hardening.test.ts
  • tests/adapters/openai/openai-chat-model-suffix.test.ts
  • tests/adapters/openai/openai-chat-path-override.test.ts
  • tests/adapters/openai/openai-provider-option.test.ts
  • tests/ci-workflows/structure-ssot.test.ts
  • tests/claude-integration/claude-context-windows.test.ts
  • tests/claude-integration/claude-inbound-cache-stabilize.test.ts
  • tests/claude-integration/claude-inbound.test.ts
  • tests/claude-integration/claude-management-api.test.ts
  • tests/claude-integration/claude-model-info.test.ts
  • tests/claude-integration/claude-models-discovery.test.ts
  • tests/claude-integration/claude-native-affinity.test.ts
  • tests/cli/cli-account-pool-verbs.test.ts
  • tests/cli/cli-capabilities.test.ts
  • tests/cli/cli-dispatch.test.ts
  • tests/cli/cli-headless-parity.test.ts
  • tests/cli/cli-status-json.test.ts
  • tests/clients/client-export-modality-enum.test.ts
  • tests/clients/cline-client.test.ts
  • tests/clients/cline-writer.test.ts
  • tests/clients/desktop-3p.test.ts
  • tests/clients/integrations-state.test.ts
  • tests/clients/integrations-writer.test.ts
  • tests/clients/omo-client.test.ts
  • tests/clients/remote-control-prototype.test.ts
  • tests/clients/remote-workspace-protocol.test.ts
  • tests/clients/remote-workspace-rpc-framing.test.ts
  • tests/clients/sync-client-integrations.test.ts
  • tests/codex-integration/bearer-admission-routed-provider.test.ts
  • tests/codex-integration/catalog-full-picker-order.test.ts
  • tests/codex-integration/catalog-zero-credit-picker.test.ts
  • tests/codex-integration/codex-auth-context.test.ts
  • tests/codex-integration/codex-catalog-golden.test.ts
  • tests/codex-integration/codex-catalog-model-picker-order.test.ts
  • tests/codex-integration/codex-catalog-restore.test.ts
  • tests/codex-integration/codex-catalog-sync-hardening.test.ts
  • tests/codex-integration/codex-catalog.test.ts
  • tests/codex-integration/codex-context-owner.test.ts
  • tests/codex-integration/codex-convergence-account-selectors.test.ts
  • tests/codex-integration/codex-history-provider.test.ts
  • tests/codex-integration/codex-inject-integration.test.ts
  • tests/codex-integration/codex-inject.test.ts
  • tests/codex-integration/codex-journal.test.ts
  • tests/codex-integration/codex-metadata-integrity.test.ts
  • tests/codex-integration/codex-pool-rotation.test.ts
  • tests/codex-integration/codex-quota-auto-refresh-main-admission.test.ts
  • tests/codex-integration/codex-quota-parser-parity.test.ts
  • tests/codex-integration/codex-quota-rejection.test.ts
  • tests/codex-integration/codex-routing.test.ts
  • tests/codex-integration/codex-v2-gate.test.ts
  • tests/codex-integration/codex-warmup.test.ts
  • tests/codex-integration/combos.test.ts
  • tests/codex-integration/context-compat.test.ts
  • tests/codex-integration/effort-policy.test.ts
  • tests/codex-integration/issue-702-expired-replay-state.test.ts
  • tests/codex-integration/main-account-hard-lock-policy.test.ts
  • tests/codex-integration/model-visibility-management-api.test.ts
  • tests/codex-integration/native-model-toggle.test.ts
  • tests/codex-integration/reasoning-effort.test.ts
  • tests/codex-integration/slug-codec.test.ts
  • tests/codex-integration/token-guardian.test.ts
  • tests/codex-integration/warmup.test.ts
  • tests/config/client-config-export-new-clients.test.ts
  • tests/config/client-config-export.test.ts
  • tests/config/yaml-fragment-source.test.ts
  • tests/e2e-style/phase100-native-parity.test.ts
  • tests/fixtures/baseten-models.json
  • tests/fixtures/test-layout-expected.json
  • tests/gui/alibaba-intl-token-plan.test.ts
  • tests/gui/combo-workspace-data.test.ts
  • tests/gui/integrations-invariants.test.ts
  • tests/gui/provider-workspace-data.test.ts
  • tests/gui/volcengine-providers.test.ts
  • tests/oauth/generic-oauth-failover.test.ts
  • tests/oauth/oauth-callback-server.test.ts
  • tests/oauth/pool-kernel-generic-sweep.test.ts
  • tests/providers/baseten-provider.test.ts
  • tests/providers/cline-pass-deepseek-v4-tool-replay.test.ts
  • tests/providers/cline-pass-provider.test.ts
  • tests/providers/cline-pass-reasoning-efforts.test.ts
  • tests/providers/command-code-provider.test.ts
  • tests/providers/context-window-seed-repair.test.ts
  • tests/providers/cursor/cursor-tool-finalize-race.test.ts
  • tests/providers/cursor/cursor-tool-suspended-checkpoint.test.ts
  • tests/providers/cyber-policy-error-fidelity.test.ts
  • tests/providers/devin-adapter.test.ts
  • tests/providers/devin-cli-adapter.test.ts
  • tests/providers/devin-cli-authmode-migration.test.ts
  • tests/providers/devin-cli-login.test.ts
  • tests/providers/devin-hardening.test.ts
  • tests/providers/digitalocean-scaleway-provider.test.ts
  • tests/providers/opencode-cli.test.ts
  • tests/providers/opencode-go-deepseek.test.ts
  • tests/providers/opencode-go-session-header.test.ts
  • tests/providers/opencode-zen-deepseek-reasoning.test.ts
  • tests/providers/orcarouter-provider.test.ts
  • tests/providers/provider-config-batch-management.test.ts
  • tests/providers/provider-model-discovery-contract.test.ts
  • tests/providers/provider-quota.test.ts
  • tests/providers/provider-registry-parity.test.ts
  • tests/providers/upstream-transient-retry.test.ts
  • tests/providers/xai/grok-reset-coupon-cli.test.ts
  • tests/providers/xai/grok-reset-coupons.test.ts
  • tests/providers/zcode-client.test.ts
  • tests/responses/chat-conversation-affinity.test.ts
  • tests/responses/custom-tool-compat.test.ts
  • tests/responses/responses-undeclared-tool-guard.test.ts
  • tests/responses/ws-failure-stage.test.ts
  • tests/responses/ws-upstream.test.ts
  • tests/routing/fastwire-policy.test.ts
  • tests/routing/router-combo-failover-classification.test.ts
  • tests/routing/router.test.ts
  • tests/server/account-pool-management-api.test.ts
  • tests/server/adapter-resolve.test.ts
  • tests/server/config.test.ts
  • tests/server/context-history-ownership.test.ts
  • tests/server/context-history.test.ts
  • tests/server/data-plane-admission-identity.test.ts
  • tests/server/loopback-listener-admission.test.ts
  • tests/server/management-client-config-route.test.ts
  • tests/server/management-provider-validation.test.ts
  • tests/server/server-combo-failover-e2e.test.ts
  • tests/server/server-images.test.ts
  • tests/server/server-key-failover-e2e.test.ts
  • tests/server/server-live.test.ts
  • tests/server/server-management-auth.test.ts
  • tests/test-layout.test.ts
  • tests/update/update-job.test.ts
  • tests/update/update-pnpm.test.ts
  • tests/usage/quota-reset-observation.test.ts
  • tests/usage/quota-reset-seen-store.test.ts
  • tests/vision/sidecar-abort.test.ts
  • tests/vision/sidecar-settings-vision-controls.test.ts
  • tests/vision/sidecar-settings-vision-filter.test.ts
  • tests/vision/vision-anthropic.test.ts
  • tests/vision/vision-cache.test.ts
  • tests/vision/vision-eligibility.test.ts
  • tests/vision/vision-reasoning-contract.test.ts
  • tests/web-search/web-search.test.ts
  • tests/windows/windows-deploy-close-regressions.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 deleted the codex/release-2520-main branch September 12, 2026 12:53
@github-actions

Copy link
Copy Markdown
Contributor

Deterministic PR hygiene checks passed.

@lidge-jun

Copy link
Copy Markdown
Owner Author

리뷰 · 우선순위 78 / 80

이 PR은 새 기능을 더하는 작업이 아닙니다. 이미 dev에서 검증해 둔 2.52.0 제품 트리를 안정 채널 main으로 올리는 출구입니다. 검증 tip은 7bfb2ad8a(머지 #4403, cli-status-json fallback-port 픽스처가 다른 샤드가 포트를 가로채면 다시 잡도록 고친 HEAD)이고, 승격 커밋 95c4875aa는 그 tip에서 package.json 버전만 2.52.0으로 바꾼 것입니다. 로컬에서 git diff 7bfb2ad8a 95c4875aa --name-only를 다시 재면 나오는 파일은 package.json 하나뿐입니다. 파일 목록·blob도 그 한 줄만 다릅니다. 본문이 말한 “검증한 제품 트리와 같고 버전 줄만 안정 채널 숫자”는 맞습니다.

이 리뷰 시점에 이 PR은 이미 머지되어 있습니다. 머지 커밋은 4d37c3515이고, origin/mainpackage.json2.52.0입니다. 지금 로컬 dev HEAD는 같은 7bfb2ad8a이고 package.json#4405 덕분에 2.53.0입니다. 그래서 이 컷은 지금 dev tip 전체를 그대로 밀어 넣는 게 아니라, 감사·수리 끝난 2.52.0 트리를 main에 고정하는 일입니다. npm @bitkyc08/opencodex@2.52.0은 아직 404이고, 태그 v2.52.0도 없습니다(미리보기 태그 v2.52.0-preview.20260911만 있음). .github/workflows/release.yml이 요구하는 “dev가 찍을 태그보다 앞서 있어야 한다”(assert-ahead) 조건은 #4405로 이미 채워져 있습니다.

main 대비 디프가 거대해 보이는 이유는 2.51.0(c155cc792) 이후 dev에만 쌓여 있던 제품 커밋(본문 기준 약 248개, 파일 약 840개 · +51912/−5573 근처)이 한꺼번에 보이기 때문입니다. 여기서 각 버그를 다시 라인 리뷰할 단계는 아닙니다. 출구 체크는 (1) 트리 동일성(버전 줄 제외), (2) 버전선 2.52.0, (3) 회귀 스윕·수리 열차가 블로커를 닫았는지, (4) 머지 후 push-event Cross-platform CI·Service lifecycle, (5) release.yml dry-run → live입니다. CodeRabbit이 300파일 한도로 스킵한 것도 이 승격 형태에서는 정상입니다.

본문이 강조한 수리 축은 실제로 출구를 막던 것들입니다. #4390은 #4342 이후 빨갛게 남아 있던 “아무것도 거절하지 않던” 통합 픽스처를 고쳤고, #4396+#4397+#4398은 #4368이 만든 quotaAvoidUntil 계약에서 메인 Codex 로그인이 창을 무시하던 구멍을 닫았습니다. 스윕 증거는 devlog/_plan/260912_release_regression_train/025_sweep_results.md에 있고, 이 경로가 origin/main에도 실려 있음을 확인했습니다. 레인 1이 BLOCKING으로 잡은 내용이 바로 “풀은 최대 6시간 피하는데 메인 계정은 15분 쿨다운만 보고 다시 후보가 된다”는 것이었고, src/codex/routing.ts의 메인 재삽입 경로가 isCodexQuotaAvoided를 보지 않던 구멍이 핵심이었습니다. #4403은 첫 승격 push에서 샤드 간 포트 경쟁으로 깨진 status 픽스처를 결정적으로 만들었습니다. 수리·회귀 열차 없이 그냥 tip을 자르는 컷이 아닙니다.

게이트 쪽은 이전 안정 승격(#4271 2.51.0, #4195 2.50.0 등)과 같은 패턴입니다. enforce-target이 빨갛고 제목에 [WRONG BRANCH]가 붙는 것은 “기여는 dev로” 규칙이 main 타깃을 막아서입니다. 안정판 출구는 원래 main이 맞습니다. 봇 안내대로 dev로 리타깃하면 이번 승격이 깨집니다. 미리보기 완충은 이미 #4399로 preview2.52.0-preview…가 올라간 상태라, 2.51 때처럼 preview 쌍이 비어 있지는 않습니다. types.ts/config.ts 대형 분리 캠페인과 충돌하는 내용도 승격 범위에는 없습니다.

남은 게이트는 발행입니다. 머지 직후 push-event Cross-platform CI 런 34694895923은 이 리뷰 시점에 아직 진행 중(queued/in_progress)입니다. Service lifecycle는 같은 SHA에서 이미 success입니다. release.yml은 pull-request CI가 아니라 이 브랜치 push-event Cross-platform 초록을 요구합니다. PR 쪽 잡이 머지 직후 cancelled/failure로 보이는 것은 출구 판정에서 빼도 됩니다. 로컬 테스트·빌드·타입체크는 본문대로 standing restriction으로 안 돌렸고, 그건 이번 리뷰에서도 재실행하지 않았습니다.

경로 base=main / enforce-target 실패 / 제목 [WRONG BRANCH] - 안정 채널 승격의 의도된 main 타깃입니다. dev로 리타깃하지 마세요.
경로 트리 동일성 (7bfb2ad8a95c4875aa, 바뀐 파일 package.json만) - 로컬에서 재확인했습니다. 제품 blob은 같고 버전 줄만 다릅니다.
경로 package.json 2.52.0 - origin/main은 이미 2.52.0. npm@2.52.0·태그 v2.52.0은 아직 없음. dev는 #4405로 2.53.0. 숫자선은 맞습니다.
경로 devlog/_plan/260912_release_regression_train/025_sweep_results.md - 스윕 패킷이 프리즈/승격/main에 실려 있습니다. 블로커(메인 로그인 quota-avoid)는 #4396+#4397+#4398로 닫힌 상태입니다.
경로 #4403 status port flake - 첫 승격 push에서 깨진 픽스처가 검증 tip에 포함되어 있습니다. 제품 델타가 아니라 출구 CI 안정화입니다.
경로 머지 커밋 push CI 4d37c3515 런 34694895923 - Cross-platform은 아직 진행 중. Service lifecycle는 success. release.yml 전제는 이 push-event 초록입니다.
경로 PR pull-request CI cancelled/failure 집계 - 머지 직후 취소된 PR 런입니다. 발행 게이트로 쓰지 마세요.
경로 preview 쌍 #4399 - 이미 머지됨. 이번 컷은 main/latest 출구입니다.

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

  • Cross-platform CI 런 34694895923이 초록이 될 때까지 기다릴지, 아니면 실패 시 어느 샤드부터 다시 볼지
  • dry-run → live를 누가 돌리고, 레지스트리 관측 실패 시 republish 금지 계약을 누가 눈으로 지킬지
  • v2.52.0 태그·GitHub Release·npm latest 공지 문구를 누가 최종 확인할지
  • preview([WRONG BRANCH] release: promote verified 2.52.0-preview.20260912 product tree to preview #4399) 완충만으로 latest 사고면을 충분하다고 볼지

너의 추천
트리 동일성(버전 줄 제외)과 버전선·#4405 선행 조건은 맞습니다. 봇의 retarget-to-dev 안내는 무시하세요. 이미 main으로 머지된 상태이니 다음 一手는 머지 커밋 push-event Cross-platform CI(34694895923) 초록을 확인한 뒤 release.yml dry-run → live로 2.52.0을 발행하는 것입니다. Service lifecycle는 이미 통과했습니다. PR CI 빨간 집계는 무시하세요. types/config 분리와 무관하니 닫거나 되돌리지 마세요. npm에 2.52.0이 보이기 전에는 “출시 완료”라고 말하지 마세요.

이 댓글은 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.

2 participants