Skip to content

fix(catalog): fold dated model aliases in both directions and accept MMDD - #3041

Draft
ntdatt812 wants to merge 2 commits into
lidge-jun:devfrom
ntdatt812:fix/3024-dated-variant-fold
Draft

fix(catalog): fold dated model aliases in both directions and accept MMDD#3041
ntdatt812 wants to merge 2 commits into
lidge-jun:devfrom
ntdatt812:fix/3024-dated-variant-fold

Conversation

@ntdatt812

@ntdatt812 ntdatt812 commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Fixes #3024.

The dated-alias fold exists to keep a configured model id in the catalog when live discovery returns the same model under a date-suffixed id. It missed two independent cases, and the result was that a model on the account's plan, present in providers.<name>.models, and verifiably callable was dropped from the authoritative catalog — with GET /api/providers still reporting discovery: { "status": "ok" }, so nothing on the API surface said a model had gone.

1. Only YYYYMMDD matched

return /^\d{8}$/.test(liveId.slice(configuredId.length + 1));

Providers on the Alibaba Token Plan and DeepSeek date with MMDD (deepseek-v4-pro-0813), so they never folded.

Four digits are also how a version reads, and the existing test pins that: claude-haiku-4-5-2025 must not be a dated variant. So accepting any four digits was not an option. isDateSuffix requires a real month and day instead — 0813 is August 13th, 2025 has no twentieth month. That keeps the existing case a non-match on its own merits rather than by accident of digit count.

2. Only configured = baselive = dated folded

const dated = out.find(live => isDatedVariantId(live.id, candidate.id));

The reverse — the account configured with deepseek-v4-pro-0813 while discovery answers deepseek-v4-pro — is the case in the report, and was not handled at all. The call site now tries both directions. isDatedVariantId itself stays directional, so its meaning and its existing tests are unchanged.

Tests

bun test tests/codex-catalog.test.ts   193 pass, 0 fail
bun x tsc --noEmit                     clean

Added:

  • isDatedVariantId accepts an MMDD suffix that is a real date — the two ids from the report plus model-1231
  • isDatedVariantId still rejects four digits that are not a date2025 (no month 20), 0001 (no month 00), 1300, 1240
  • keeps a configured dated id when discovery answers the base id — the reverse fold, end to end through mergeConfiguredModelsIntoLiveCatalog

Mutation-checked. Dropping the reverse direction from the call site:

192 pass, 1 fail — keeps a configured dated id when discovery answers the base id

The existing isDatedVariantId matches only <alias>-YYYYMMDD test is untouched and still passes, including its -2025 and -latest negatives.

Review readiness checklist

This PR stays in draft until every box below is ticked. Tick all four boxes once the requirements are met:

  • All CI tests are green on my local testing.

  • I pushed my PR to the latest dev commit.

  • I resolved all correct Codex and CodeRabbit findings.

  • My PR is ready for review.

Review follow-up (2026-08-31)

Both requests from the review are in:

  • Test name. isDatedVariantId matches only <alias>-YYYYMMDD was no longer true. Renamed to matches <alias>-YYYYMMDD and <alias>-MMDD, nothing else, and the MMDD case it now covers is asserted inside it.
  • The -1024 cost is pinned. A four-digit suffix that is a valid month and day is read as one, so model-1024 folds into model. The new test states that plainly and also pins what stays safe: 2048, 4096, 8192 and 0000 cannot be a date, so they remain separate models. Nothing in an id says which reading was intended, and rejecting MMDD outright is the bug this fold exists to fix.

bun test tests/codex-catalog.test.ts194 pass, 0 fail. Branch base is level with dev.

One correction to the review: #3034 is by @kaicot, not me. I have no claim on it, so it is not mine to close as superseded — that call is yours and theirs. On the substance I agree the two overlap and only one can land; if you prefer their suffix coverage (YYMMDD/YYMM) over the reverse-direction fold, I am happy for this one to be the closed half instead.

YYMMDD/YYMM are still not accepted here, so deepseek-v4-pro-250813 remains a non-match. Left as follow-up as the review suggested.

…MMDD

The dated-alias fold keeps a configured model id in the catalog when live
discovery returns the same model under a date-suffixed id. It missed two
cases, and a model that is on the plan, configured, and callable was dropped
from the authoritative catalog while discovery still reported ok.

isDatedVariantId only accepted an 8-digit YYYYMMDD suffix, so providers that
date with MMDD (deepseek-v4-pro-0813) never matched. Four digits also read
as a version number, so the month and day now have to be real ones: 0813 is
August 13th, 2025 has no twentieth month, which is what keeps the existing
claude-haiku-4-5-2025 case a non-match.

The fold also only ran configured=base -> live=dated. The reverse, where the
account is configured with the dated id and discovery answers the base one,
is the case reported here and was not handled at all.

Refs lidge-jun#3024.
@coderabbitai

coderabbitai Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 1143 files, which is 843 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: Pro Plus

Run ID: a99b917d-3b32-4145-af5e-bd0e0e09b656

📥 Commits

Reviewing files that changed from the base of the PR and between 4180067 and b9ac5e0.

⛔ Files ignored due to path filters (20)
  • assets/pr2950-capacity-expiry.png is excluded by !**/*.png
  • devlog/_plan/260830_models_provider_header/evidence/010-after-ko-1100.png is excluded by !**/*.png
  • devlog/_plan/260830_models_provider_header/evidence/010-before-ko-1100.png is excluded by !**/*.png
  • devlog/_plan/260830_sidecar_control_band/evidence/010-after-ko-1024.png is excluded by !**/*.png
  • devlog/_plan/260830_sidecar_control_band/evidence/010-after-ko-1440.png is excluded by !**/*.png
  • devlog/_plan/260830_sidecar_control_band/evidence/010-before-ko-1024.png is excluded by !**/*.png
  • devlog/_plan/260830_sidecar_control_band/evidence/010-before-ko-1440.png is excluded by !**/*.png
  • devlog/_plan/260830_sidecar_control_band/evidence/020-after-en-1600.png is excluded by !**/*.png
  • devlog/_plan/260830_sidecar_control_band/evidence/020-after-ko-1024.png is excluded by !**/*.png
  • devlog/_plan/260830_sidecar_control_band/evidence/020-after-ko-1440.png is excluded by !**/*.png
  • devlog/_plan/260830_sidecar_control_band/evidence/020-after-ru-1440.png is excluded by !**/*.png
  • docs-site/public/pr-screenshots/2678-codex-set-dialog.jpg is excluded by !**/*.jpg
  • docs-site/public/pr-screenshots/2678-codex-set-presets.jpg is excluded by !**/*.jpg
  • docs-site/public/pr-screenshots/2678-codex-set-prompt.jpg is excluded by !**/*.jpg
  • docs-site/public/pr-screenshots/2692-git-attribution-row.png is excluded by !**/*.png
  • docs-site/public/pr-screenshots/2696-base-switch-row.png is excluded by !**/*.png
  • docs-site/public/pr-screenshots/2696-base-variant-picker.png is excluded by !**/*.png
  • docs-site/public/pr-screenshots/2709-prompt-ux-dialog.png is excluded by !**/*.png
  • docs-site/public/pr-screenshots/2709-prompt-ux-panel.png is excluded by !**/*.png
  • src/generated/model-metadata.ts is excluded by !**/generated/**
📒 Files selected for processing (1143)
  • .github/scripts/closed-pr-branch-cleanup.cjs
  • .github/scripts/closed-pr-branch-cleanup.test.cjs
  • .github/workflows/ci.yml
  • .github/workflows/cleanup-closed-pr-branches.yml
  • .github/workflows/dev-version-bump.yml
  • AGENTS.md
  • MAINTAINERS.md
  • README.md
  • bunfig.toml
  • devlog/_fin/260724_release_v2_7_39/000_plan.md
  • devlog/_fin/260724_release_v2_7_39/001_research.md
  • devlog/_fin/260724_release_v2_7_39/010_phase1_release.md
  • devlog/_fin/260724_release_v2_7_39/011_verification.md
  • devlog/_fin/260827_kiro_text_control_guard/000_plan.md
  • devlog/_fin/260827_kiro_text_control_guard/001_text_control_taxonomy.md
  • devlog/_fin/260827_kiro_text_control_guard/002_audit_round1.md
  • devlog/_fin/260827_kiro_text_control_guard/010_phase1_guard_narrowing.md
  • devlog/_fin/260827_kiro_text_control_guard/020_phase2_pull_request.md
  • devlog/_fin/260827_ocx_restart_macos_portability/000_plan.md
  • devlog/_fin/260828_kiro_turn_termination/000_research.md
  • devlog/_fin/260828_kiro_turn_termination/010_wp1_terminal_boundary.md
  • devlog/_fin/260828_kiro_turn_termination/011_audit_round1.md
  • devlog/_fin/260828_kiro_turn_termination/012_audit_round2.md
  • devlog/_fin/260828_kiro_turn_termination/020_wp2_duplicate_answer.md
  • devlog/_fin/260828_kiro_turn_termination/021_audit_round3.md
  • devlog/_fin/260828_kiro_turn_termination/030_wp1_live_measurement.md
  • devlog/_fin/260828_kiro_turn_termination/040_close_out.md
  • devlog/_fin/260829_bugpr_zero_remaining/000_plan.md
  • devlog/_fin/260829_bugpr_zero_remaining/001_audit_round1_synthesis.md
  • devlog/_fin/260829_bugpr_zero_remaining/002_audit_round3_synthesis.md
  • devlog/_fin/260829_bugpr_zero_remaining/010_wp8_version_line_keystone.md
  • devlog/_fin/260829_bugpr_zero_remaining/020_wp2_lane_a_clean_merges.md
  • devlog/_fin/260829_bugpr_zero_remaining/030_wp3_lane_b_stale_rebase.md
  • devlog/_fin/260829_bugpr_zero_remaining/040_wp4_lane_c_oauth_429_rotation.md
  • devlog/_fin/260829_bugpr_zero_remaining/050_wp5_lane_d_reimplementation.md
  • devlog/_fin/260829_bugpr_zero_remaining/060_wp6_lane_e_prless_bug_issues.md
  • devlog/_fin/260829_bugpr_zero_remaining/070_wp7_closeout.md
  • devlog/_fin/260829_bugpr_zero_remaining/080_wp9_current_head_reaudit.md
  • devlog/_fin/260829_cursor_tool_continuation_pairing/000_rca.md
  • devlog/_fin/260829_cursor_tool_continuation_pairing/001_audit_round1.md
  • devlog/_fin/260829_cursor_tool_continuation_pairing/002_audit_round2_redesign.md
  • devlog/_fin/260829_cursor_tool_continuation_pairing/010_phase1_call_result_pairing.md
  • devlog/_fin/260829_cursor_tool_continuation_pairing/020_phase2_tests_and_delivery.md
  • devlog/_fin/260829_cursor_tool_continuation_pairing/030_phase4_final_gate.md
  • devlog/_fin/260829_cursor_tool_continuation_pairing/040_phase5_checkpoint_suffix_gap.md
  • devlog/_fin/260829_cursor_tool_continuation_pairing/050_phase6_native_turn_orphan.md
  • devlog/_fin/260829_cursor_tool_continuation_pairing/060_phase7_positional_bound.md
  • devlog/_fin/260829_cursor_tool_continuation_pairing/070_phase8_checkpoint_suffix_orphan_strip.md
  • devlog/_fin/260829_cursor_tool_continuation_pairing/080_final_gate.md
  • devlog/_fin/260830_kiro_post_answer_tool_calls/000_research.md
  • devlog/_fin/260830_kiro_post_answer_tool_calls/010_wp2_terminal_completion_contract.md
  • devlog/_fin/260830_kiro_post_answer_tool_calls/020_close_out.md
  • devlog/_fin/260831_kiro_pause_path_and_answer_shape/000_research.md
  • devlog/_fin/260831_kiro_pause_path_and_answer_shape/010_wp2_pause_path.md
  • devlog/_fin/260831_kiro_pause_path_and_answer_shape/020_close_out.md
  • devlog/_plan/260724_gpt_live_hotfix/010_session_header_fix.md
  • devlog/_plan/260802_codex_set_prompt_composer/021_wp2_amendments.md
  • devlog/_plan/260802_codex_set_prompt_composer/022_empirical_gate_findings.md
  • devlog/_plan/260802_codex_set_prompt_composer/023_stack_scope_presets.md
  • devlog/_plan/260802_codex_set_prompt_composer/080_wp8_stack_publication.md
  • devlog/_plan/260802_codex_set_prompt_composer/091_stack_gate_findings.md
  • devlog/_plan/260805_ssh_app_server_catalog_race/000_plan.md
  • devlog/_plan/260805_ssh_app_server_catalog_race/001_two_host_comparison.md
  • devlog/_plan/260805_ssh_app_server_catalog_race/002_startup_vs_sync_asymmetry.md
  • devlog/_plan/260813_apply_patch_tool_visibility/000_plan.md
  • devlog/_plan/260813_apply_patch_tool_visibility/001_codex_opencodex_survey.md
  • devlog/_plan/260813_apply_patch_tool_visibility/010_decision_and_noop_or_fix.md
  • devlog/_plan/260813_apply_patch_tool_visibility/011_decision_record.md
  • devlog/_plan/260813_apply_patch_tool_visibility/020_push_and_close.md
  • devlog/_plan/260813_bun_canary_dogfood/000_plan.md
  • devlog/_plan/260813_bun_canary_dogfood/010_git_cleanup.md
  • devlog/_plan/260813_bun_canary_dogfood/020_bun_canary.md
  • devlog/_plan/260813_bun_canary_dogfood/030_memory_patches.md
  • devlog/_plan/260813_bun_canary_dogfood/040_verification_deploy.md
  • devlog/_plan/260813_openai_chat_baseurl_normalize/000_plan.md
  • devlog/_plan/260813_openai_chat_baseurl_normalize/010_normalize_chat_baseurl.md
  • devlog/_plan/260825_owner_backlog_and_bugpr_closeout/000_research_snapshot.md
  • devlog/_plan/260825_owner_backlog_and_bugpr_closeout/001_audit_response.md
  • devlog/_plan/260825_owner_backlog_and_bugpr_closeout/010_wp2_merge_train_remainder.md
  • devlog/_plan/260825_owner_backlog_and_bugpr_closeout/020_wp4_google_lane.md
  • devlog/_plan/260825_owner_backlog_and_bugpr_closeout/030_wp5_hygiene_and_drafts.md
  • devlog/_plan/260825_owner_backlog_and_bugpr_closeout/040_wp6_cursor_catalog.md
  • devlog/_plan/260825_owner_backlog_and_bugpr_closeout/050_wp7_oauth_failover.md
  • devlog/_plan/260825_owner_backlog_and_bugpr_closeout/060_wp8_wp9_cli_and_platform.md
  • devlog/_plan/260825_owner_backlog_and_bugpr_closeout/070_wp10_wp11_slug_and_exec.md
  • devlog/_plan/260825_owner_backlog_and_bugpr_closeout/080_wp12_catalog_ux.md
  • devlog/_plan/260825_owner_backlog_and_bugpr_closeout/090_wp13_architecture.md
  • devlog/_plan/260825_owner_backlog_and_bugpr_closeout/100_wp6_wp8_execution.md
  • devlog/_plan/260825_owner_backlog_and_bugpr_closeout/110_wp7_oauth_failover.md
  • devlog/_plan/260825_owner_backlog_and_bugpr_closeout/111_wp7_audit_response.md
  • devlog/_plan/260825_owner_backlog_and_bugpr_closeout/120_wp5_2497_security_review.md
  • devlog/_plan/260825_owner_backlog_and_bugpr_closeout/130_wp16_late_bug_prs.md
  • devlog/_plan/260825_owner_backlog_and_bugpr_closeout/140_closeout.md
  • devlog/_plan/260825_owner_backlog_and_bugpr_closeout/150_community_bug_sweep.md
  • devlog/_plan/260825_owner_backlog_and_bugpr_closeout/160_terminal_record.md
  • devlog/_plan/260826_backlog_triage/000_snapshot.md
  • devlog/_plan/260826_backlog_triage/010_stale_prs.md
  • devlog/_plan/260826_backlog_triage/020_issue_quick_wins.md
  • devlog/_plan/260826_backlog_triage/030_recommendations.md
  • devlog/_plan/260826_config_rebase_provenance/010_design.md
  • devlog/_plan/260826_cursor_responses_gap/000_plan.md
  • devlog/_plan/260826_cursor_responses_gap/001_seed_thread_failure_catalog.md
  • devlog/_plan/260826_cursor_responses_gap/010_probe_campaign.md
  • devlog/_plan/260826_cursor_responses_gap/020_gap_summary.md
  • devlog/_plan/260826_cursor_responses_gap/025_ultra_k3_research.md
  • devlog/_plan/260826_cursor_responses_gap/030_callid_sse_parity.md
  • devlog/_plan/260826_cursor_responses_gap/040_preamble_floor.md
  • devlog/_plan/260826_cursor_responses_gap/050_checkpoint_continuity.md
  • devlog/_plan/260826_cursor_responses_gap/060_catalog_honesty.md
  • devlog/_plan/260826_cursor_responses_gap/070_ultra_mode.md
  • devlog/_plan/260826_cursor_responses_gap/080_stall_corruption_diag.md
  • devlog/_plan/260826_cursor_responses_gap/090_gap8_codex_exec_qa.md
  • devlog/_plan/260826_cursor_responses_gap/100_wire_ndjson_qa.md
  • devlog/_plan/260826_cursor_responses_gap/110_app_route_qa.md
  • devlog/_plan/260826_cursor_responses_gap/120_repetition_breaker.md
  • devlog/_plan/260826_cursor_responses_gap/130_envelope_echo_guard.md
  • devlog/_plan/260826_cursor_responses_gap/140_round2_probe_results.md
  • devlog/_plan/260826_cursor_responses_gap/150_routing_commentary_hallucination.md
  • devlog/_plan/260826_glm53_flash_preseed/000_plan.md
  • devlog/_plan/260826_pre_substrate_adoption/010_design.md
  • devlog/_plan/260826_provenance_writer/010_design.md
  • devlog/_plan/260826_quota_window_and_backlog/000_plan.md
  • devlog/_plan/260826_quota_window_and_backlog/001_audit_response.md
  • devlog/_plan/260826_quota_window_and_backlog/010_phase1.md
  • devlog/_plan/260826_quota_window_and_backlog/020_phase2.md
  • devlog/_plan/260826_quota_window_and_backlog/030_phase3.md
  • devlog/_plan/260826_quota_window_and_backlog/040_phase4.md
  • devlog/_plan/260826_quota_window_and_backlog/050_phase5.md
  • devlog/_plan/260826_quota_window_and_backlog/060_phase6.md
  • devlog/_plan/260826_quota_window_and_backlog/070_phase7.md
  • devlog/_plan/260826_restart_codex_linux_survivor/000_repro_and_root_cause.md
  • devlog/_plan/260826_session_lane_bounds/010_design.md
  • devlog/_plan/260826_session_lane_bounds/020_reconnect_followup.md
  • devlog/_plan/260826_wp13_disposable_host/010_census.md
  • devlog/_plan/260826_wp7e_presence_driven_oauth_failover/010_plan.md
  • devlog/_plan/260826_wp7e_presence_driven_oauth_failover/011_audit_response.md
  • devlog/_plan/260826_wp7e_presence_driven_oauth_failover/020_execution.md
  • devlog/_plan/260826_wp7e_presence_driven_oauth_failover/030_post_merge_f5.md
  • devlog/_plan/260827_bug_pr_merge_round/000_intake.md
  • devlog/_plan/260827_bug_pr_merge_round/001_pr2694_compile_break.md
  • devlog/_plan/260827_bug_pr_merge_round/002_pr2639_regression.md
  • devlog/_plan/260827_bug_pr_merge_round/003_disposition_matrix.md
  • devlog/_plan/260827_bug_pr_merge_round/004_pr2693_missing_implementation.md
  • devlog/_plan/260827_bug_pr_merge_round/005_audit_corrections.md
  • devlog/_plan/260827_bug_pr_merge_round/006_execution_order.md
  • devlog/_plan/260827_bug_pr_merge_round/007_audit_round2.md
  • devlog/_plan/260827_bug_pr_merge_round/010_lane_l1_commit_then_merge.md
  • devlog/_plan/260827_bug_pr_merge_round/011_wp2_l1_outcome.md
  • devlog/_plan/260827_bug_pr_merge_round/020_lane_l3_cherry_pick.md
  • devlog/_plan/260827_bug_pr_merge_round/021_status_vs_created_at_asymmetry.md
  • devlog/_plan/260827_bug_pr_merge_round/022_l3_audit.md
  • devlog/_plan/260827_bug_pr_merge_round/030_lane_l2_close_squash.md
  • devlog/_plan/260827_bug_pr_merge_round/031_wp4_l2_outcome.md
  • devlog/_plan/260827_bug_pr_merge_round/040_lane_l4_reimplement.md
  • devlog/_plan/260827_bug_pr_merge_round/041_wp5_l4_outcome.md
  • devlog/_plan/260827_bug_pr_merge_round/050_round_closeout.md
  • devlog/_plan/260827_dev_hardening/000_inventory.md
  • devlog/_plan/260827_dev_hardening/010_wp2_version_line.md
  • devlog/_plan/260827_dev_hardening/020_wp3_failover_identity.md
  • devlog/_plan/260827_dev_hardening/030_wp4_locale_docs.md
  • devlog/_plan/260827_dev_hardening/040_wp5_local_gates.md
  • devlog/_plan/260827_dev_hardening/050_wp6_invariant_locks.md
  • devlog/_plan/260827_dev_hardening/060_wp8_launcher_flake.md
  • devlog/_plan/260827_dev_hardening/070_wp7_promotion_readiness.md
  • devlog/_plan/260827_dev_regression_and_prompt_variants/000_plan.md
  • devlog/_plan/260827_dev_regression_and_prompt_variants/001_regression_review.md
  • devlog/_plan/260827_dev_regression_and_prompt_variants/010_wp2_git_attribution_layer.md
  • devlog/_plan/260827_dev_regression_and_prompt_variants/020_wp3_base_variants.md
  • devlog/_plan/260827_dev_regression_and_prompt_variants/021_audit_blockers.md
  • devlog/_plan/260827_dev_regression_and_prompt_variants/030_wp4_docs_and_stack.md
  • devlog/_plan/260827_dev_regression_and_prompt_variants/040_remote_verification_and_wp3_landing.md
  • devlog/_plan/260827_dev_regression_and_prompt_variants/041_wp3_audit_direct.md
  • devlog/_plan/260827_dev_regression_and_prompt_variants/042_wp3_remote_gate_and_landing.md
  • devlog/_plan/260827_igwanu_bug_pr_merge_round/000_plan.md
  • devlog/_plan/260827_igwanu_bug_pr_merge_round/010_phase1.md
  • devlog/_plan/260827_igwanu_bug_pr_merge_round/011_wp1_outcome.md
  • devlog/_plan/260827_igwanu_bug_pr_merge_round/020_phase2.md
  • devlog/_plan/260827_igwanu_bug_pr_merge_round/021_wp2_outcome.md
  • devlog/_plan/260827_igwanu_bug_pr_merge_round/030_phase3.md
  • devlog/_plan/260827_igwanu_bug_pr_merge_round/040_phase4.md
  • devlog/_plan/260827_igwanu_bug_pr_merge_round/041_wp2b_2729_supersede.md
  • devlog/_plan/260827_igwanu_bug_pr_merge_round/050_phase5.md
  • devlog/_plan/260827_igwanu_bug_pr_merge_round/060_phase6.md
  • devlog/_plan/260827_igwanu_bug_pr_merge_round/070_outcome.md
  • devlog/_plan/260827_kiro_builder_id_profile/010_builder_id_request_scoped_profile.md
  • devlog/_plan/260827_kiro_subagent_delegation_unblock/000_plan.md
  • devlog/_plan/260827_kiro_subagent_delegation_unblock/010_exec_discovery_preservation.md
  • devlog/_plan/260827_kiro_subagent_delegation_unblock/011_root_cause_nudge_gap.md
  • devlog/_plan/260827_kiro_subagent_delegation_unblock/012_audit_round1_synthesis.md
  • devlog/_plan/260827_kiro_subagent_delegation_unblock/013_wp1_check_evidence.md
  • devlog/_plan/260827_kiro_subagent_delegation_unblock/020_unbounded_kiro_delegation.md
  • devlog/_plan/260827_kiro_subagent_delegation_unblock/030_verification.md
  • devlog/_plan/260827_kiro_subagent_delegation_unblock/040_exec_catalog_priority.md
  • devlog/_plan/260827_kiro_subagent_delegation_unblock/041_wp2_audit_synthesis.md
  • devlog/_plan/260827_kiro_subagent_delegation_unblock/042_wp2_check_evidence.md
  • devlog/_plan/260827_kiro_subagent_delegation_unblock/050_ship.md
  • devlog/_plan/260827_kiro_subagent_delegation_unblock/051_ci_shard4_triage.md
  • devlog/_plan/260827_release_train/000_state_and_decisions.md
  • devlog/_plan/260827_release_train/010_preview_promote.md
  • devlog/_plan/260827_release_train/020_preview_release.md
  • devlog/_plan/260827_release_train/030_main_promote.md
  • devlog/_plan/260827_release_train/040_stable_release.md
  • devlog/_plan/260827_release_train/050_deploy_and_verify.md
  • devlog/_plan/260828_bugpr_fix_and_reimplement/000_plan.md
  • devlog/_plan/260828_bugpr_fix_and_reimplement/010_phase1.md
  • devlog/_plan/260828_bugpr_fix_and_reimplement/020_phase2.md
  • devlog/_plan/260828_bugpr_fix_and_reimplement/021_wp2_wp3_outcome.md
  • devlog/_plan/260828_bugpr_fix_and_reimplement/030_phase3.md
  • devlog/_plan/260828_bugpr_fix_and_reimplement/040_phase4.md
  • devlog/_plan/260828_bugpr_fix_and_reimplement/050_phase5.md
  • devlog/_plan/260828_bugpr_fix_and_reimplement/060_phase6.md
  • devlog/_plan/260828_bugpr_fix_and_reimplement/070_outcome.md
  • devlog/_plan/260828_cursor_ndjson_backlog_train/000_plan.md
  • devlog/_plan/260828_cursor_ndjson_backlog_train/001_backlog_abort_rca.md
  • devlog/_plan/260828_cursor_ndjson_backlog_train/002_cursor_open_defect_inventory.md
  • devlog/_plan/260828_cursor_ndjson_backlog_train/003_roadmap_lock.md
  • devlog/_plan/260828_cursor_ndjson_backlog_train/010_backlog_abort_fix.md
  • devlog/_plan/260828_cursor_ndjson_backlog_train/020_macmini_probe_round.md
  • devlog/_plan/260828_cursor_ndjson_backlog_train/021_probe_results_round1.md
  • devlog/_plan/260828_cursor_ndjson_backlog_train/030_cursor_fixes.md
  • devlog/_plan/260828_cursor_ndjson_backlog_train/031_midstream_echo_fix.md
  • devlog/_plan/260828_cursor_ndjson_backlog_train/040_closure_round.md
  • devlog/_plan/260828_cursor_ndjson_backlog_train/050_merge_train.md
  • devlog/_plan/260828_cursor_umbrella_catalog/000_plan.md
  • devlog/_plan/260828_cursor_umbrella_catalog/001_reference_analysis.md
  • devlog/_plan/260828_cursor_umbrella_catalog/002_current_surface.md
  • devlog/_plan/260828_cursor_umbrella_catalog/003_design.md
  • devlog/_plan/260828_cursor_umbrella_catalog/004_roadmap_lock.md
  • devlog/_plan/260828_cursor_umbrella_catalog/010_capability_core.md
  • devlog/_plan/260828_cursor_umbrella_catalog/020_catalog_integration.md
  • devlog/_plan/260828_cursor_umbrella_catalog/030_closure.md
  • devlog/_plan/260828_ocx_agentic_control/000_plan.md
  • devlog/_plan/260828_ocx_agentic_control/001_api_route_inventory.md
  • devlog/_plan/260828_ocx_agentic_control/002_cli_surface_inventory.md
  • devlog/_plan/260828_ocx_agentic_control/003_gui_capability_map.md
  • devlog/_plan/260828_ocx_agentic_control/004_issue_root_cause.md
  • devlog/_plan/260828_ocx_agentic_control/005_audit_record.md
  • devlog/_plan/260828_ocx_agentic_control/010_phase_transport_honesty.md
  • devlog/_plan/260828_ocx_agentic_control/011_wp2_implementation_record.md
  • devlog/_plan/260828_ocx_agentic_control/020_phase_capability_registry.md
  • devlog/_plan/260828_ocx_agentic_control/021_wp3_stale_check_amendment.md
  • devlog/_plan/260828_ocx_agentic_control/025_phase_uniform_cli_contract.md
  • devlog/_plan/260828_ocx_agentic_control/026_wp3b_implementation_record.md
  • devlog/_plan/260828_ocx_agentic_control/030_phase_dto_fidelity.md
  • devlog/_plan/260828_ocx_agentic_control/031_wp4_implementation_record.md
  • devlog/_plan/260828_ocx_agentic_control/040_phase_new_verbs.md
  • devlog/_plan/260828_ocx_agentic_control/041_wp5_implementation_record.md
  • devlog/_plan/260828_ocx_agentic_control/050_phase_account_attribution.md
  • devlog/_plan/260828_ocx_agentic_control/051_wp6_implementation_record.md
  • devlog/_plan/260828_ocx_agentic_control/060_phase_gui_parity.md
  • devlog/_plan/260828_ocx_agentic_control/061_wp7_implementation_record.md
  • devlog/_plan/260828_ocx_agentic_control/070_phase_agent_skill.md
  • devlog/_plan/260828_ocx_agentic_control/071_wp8_implementation_record.md
  • devlog/_plan/260828_ocx_agentic_control/080_phase_rebase_and_ci.md
  • devlog/_plan/260828_ocx_agentic_control/081_deferred_decisions.md
  • devlog/_plan/260828_ocx_agentic_control/081_wp9_implementation_record.md
  • devlog/_plan/260828_ocx_agentic_control/090_phase_gap_closure.md
  • devlog/_plan/260828_ocx_agentic_control/091_wp10_implementation_record.md
  • devlog/_plan/260829_bugpr_lane_h_residual_issues/120_issue_1527_replay_envelope.md
  • devlog/_plan/260829_bugpr_lane_h_residual_issues/130_pr2872_probe_fingerprint.md
  • devlog/_plan/260829_bugpr_lane_h_residual_issues/140_pr2884_shim_backup_matcher.md
  • devlog/_plan/260829_bugpr_lane_h_residual_issues/150_issue_2887_pool_401_refresh.md
  • devlog/_plan/260829_bugpr_lane_h_residual_issues/160_issue_2886_entitlement_client_version.md
  • devlog/_plan/260829_bugpr_lane_h_residual_issues/170_pr2895_pool_401_recovery_budget.md
  • devlog/_plan/260829_green_pr_merge_train/000_plan.md
  • devlog/_plan/260829_green_pr_merge_train/010_wp1_2429_privacy_scan.md
  • devlog/_plan/260829_green_pr_merge_train/020_wp2_2827_expose_header.md
  • devlog/_plan/260829_gui_dashboard_slop/000_baseline_and_roadmap.md
  • devlog/_plan/260829_gui_dashboard_slop/010_sidecar_pair_alignment.md
  • devlog/_plan/260829_gui_dashboard_slop/011_audit_correction_align_content.md
  • devlog/_plan/260829_gui_dashboard_slop/012_shipped_fix_and_subgrid_postmortem.md
  • devlog/_plan/260829_gui_dashboard_slop/013_final_shipped_and_measurement_lessons.md
  • devlog/_plan/260829_gui_dashboard_slop/020_phantom_grid_track.md
  • devlog/_plan/260829_gui_dashboard_slop/030_dynamic_viewport_units.md
  • devlog/_plan/260829_kiro_quota_pool/000_research_problem_and_state.md
  • devlog/_plan/260829_kiro_quota_pool/001_research_upstream_wire_contract.md
  • devlog/_plan/260829_kiro_quota_pool/002_research_kirolb_headtohead.md
  • devlog/_plan/260829_kiro_quota_pool/003_research_pr_reconciliation.md
  • devlog/_plan/260829_kiro_quota_pool/010_kiro_usage_fetcher.md
  • devlog/_plan/260829_kiro_quota_pool/020_per_account_quota_wiring.md
  • devlog/_plan/260829_kiro_quota_pool/030_quota_aware_pool_selection.md
  • devlog/_plan/260829_kiro_quota_pool/040_surfaces_cli_gui_docs.md
  • devlog/_plan/260829_kiro_quota_pool/050_verification_and_delivery.md
  • devlog/_plan/260829_kiro_quota_pool/060_audit_round1_amendments.md
  • devlog/_plan/260829_kiro_quota_pool/070_audit_round2_amendments.md
  • devlog/_plan/260829_kiro_quota_pool/080_head_to_head_result.md
  • devlog/_plan/260829_kiro_quota_pool/090_predispatch_selection.md
  • devlog/_plan/260829_kiro_quota_pool/100_quota_persistence.md
  • devlog/_plan/260829_kiro_quota_pool/110_integrated_verification.md
  • devlog/_plan/260829_lane_n_effort_ladder_and_locale_probe/000_units.md
  • devlog/_plan/260830_dev_version_line_bump_pr/000_cause_and_roadmap.md
  • devlog/_plan/260830_dev_version_line_bump_pr/010_version_repair.md
  • devlog/_plan/260830_dev_version_line_bump_pr/020_post_release_bump.md
  • devlog/_plan/260830_dev_version_line_bump_pr/030_ship.md
  • devlog/_plan/260830_lane_o_reset_recovery_parity/000_units.md
  • devlog/_plan/260830_lane_q_2892_gaps_3_4/000_units.md
  • devlog/_plan/260830_lane_r_2941_copilot_vision/000_units.md
  • devlog/_plan/260830_models_provider_header/000_baseline_and_roadmap.md
  • devlog/_plan/260830_models_provider_header/010_toggle_basis_and_shrink.md
  • devlog/_plan/260830_models_provider_header/011_rejected_designs.md
  • devlog/_plan/260830_models_provider_header/020_control_affordances.md
  • devlog/_plan/260830_release_readiness_train/000_plan.md
  • devlog/_plan/260830_release_readiness_train/010_wp1_runner_and_hygiene.md
  • devlog/_plan/260830_release_readiness_train/020_wp2_quota_expiry.md
  • devlog/_plan/260830_release_readiness_train/030_wp3_responses_and_config.md
  • devlog/_plan/260830_release_readiness_train/040_wp4_issue_2899_antigravity.md
  • devlog/_plan/260830_release_readiness_train/050_wp5_issue_1298_acl_proof.md
  • devlog/_plan/260830_release_readiness_train/060_wp6_release_gates.md
  • devlog/_plan/260830_release_readiness_train/070_outcome.md
  • devlog/_plan/260830_sidecar_control_band/010_shared_control_band.md
  • devlog/_plan/260831_prio70_entitlement_and_spill_train/000_plan.md
  • devlog/_plan/260831_prio70_entitlement_and_spill_train/001_research_3022_entitlement_floor.md
  • devlog/_plan/260831_prio70_entitlement_and_spill_train/002_research_3023_roster_ttl.md
  • devlog/_plan/260831_prio70_entitlement_and_spill_train/003_audit_3018_spill_drain.md
  • devlog/_plan/260831_prio70_entitlement_and_spill_train/004_audit_round1_synthesis.md
  • devlog/_plan/260831_prio70_entitlement_and_spill_train/005_audit_round2_synthesis.md
  • devlog/_plan/260831_prio70_entitlement_and_spill_train/006_audit_round3_synthesis.md
  • devlog/_plan/260831_prio70_entitlement_and_spill_train/007_audit_round4_wp1_plan.md
  • devlog/_plan/260831_prio70_entitlement_and_spill_train/008_audit_round5_wp2_plan.md
  • devlog/_plan/260831_prio70_entitlement_and_spill_train/009_audit_rounds6to8_wp2_and_wp3_review.md
  • devlog/_plan/260831_prio70_entitlement_and_spill_train/010_wp1_entitlement_floor_and_empty_roster.md
  • devlog/_plan/260831_prio70_entitlement_and_spill_train/020_wp2_roster_ttl_refresh.md
  • devlog/_plan/260831_prio70_entitlement_and_spill_train/030_wp3_spill_publication_drain.md
  • devlog/_plan/260831_prio70_entitlement_and_spill_train/040_wp4_entitlement_diagnostic.md
  • devlog/_plan/260831_prio70_entitlement_and_spill_train/050_wp5_tristate_entitlement_authority.md
  • devlog/_plan/260831_prio70_entitlement_and_spill_train/070_outcome.md
  • docs-site/astro.config.mjs
  • docs-site/src/content/docs/contributing.md
  • docs-site/src/content/docs/fr/contributing.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/codex-prompt.md
  • docs-site/src/content/docs/fr/guides/combos.md
  • docs-site/src/content/docs/fr/guides/grok-build.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/reference/adapters.md
  • docs-site/src/content/docs/fr/reference/architecture.md
  • docs-site/src/content/docs/fr/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/fr/reference/configuration/providers.md
  • docs-site/src/content/docs/fr/reference/configuration/routing.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/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/codex-prompt.md
  • docs-site/src/content/docs/guides/combos.md
  • docs-site/src/content/docs/guides/grok-build.md
  • docs-site/src/content/docs/guides/model-routing.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/ja/contributing.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/codex-prompt.md
  • docs-site/src/content/docs/ja/guides/combos.md
  • docs-site/src/content/docs/ja/guides/grok-build.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/reference/adapters.md
  • docs-site/src/content/docs/ja/reference/architecture.md
  • docs-site/src/content/docs/ja/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/ja/reference/configuration/providers.md
  • docs-site/src/content/docs/ja/reference/configuration/routing.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/contributing.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/codex-prompt.md
  • docs-site/src/content/docs/ko/guides/combos.md
  • docs-site/src/content/docs/ko/guides/grok-build.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/reference/adapters.md
  • docs-site/src/content/docs/ko/reference/architecture.md
  • docs-site/src/content/docs/ko/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/ko/reference/configuration/providers.md
  • docs-site/src/content/docs/ko/reference/configuration/routing.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/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.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/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/contributing.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/codex-prompt.md
  • docs-site/src/content/docs/ru/guides/combos.md
  • docs-site/src/content/docs/ru/guides/grok-build.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/reference/adapters.md
  • docs-site/src/content/docs/ru/reference/architecture.md
  • docs-site/src/content/docs/ru/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/ru/reference/configuration/providers.md
  • docs-site/src/content/docs/ru/reference/configuration/routing.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/contributing.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/codex-prompt.md
  • docs-site/src/content/docs/tr/guides/combos.md
  • docs-site/src/content/docs/tr/guides/grok-build.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/reference/adapters.md
  • docs-site/src/content/docs/tr/reference/architecture.md
  • docs-site/src/content/docs/tr/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/tr/reference/configuration/providers.md
  • docs-site/src/content/docs/tr/reference/configuration/routing.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/contributing.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/codex-prompt.md
  • docs-site/src/content/docs/zh-cn/guides/combos.md
  • docs-site/src/content/docs/zh-cn/guides/grok-build.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/reference/adapters.md
  • docs-site/src/content/docs/zh-cn/reference/architecture.md
  • docs-site/src/content/docs/zh-cn/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/zh-cn/reference/configuration/providers.md
  • docs-site/src/content/docs/zh-cn/reference/configuration/routing.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/contributing.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/codex-prompt.md
  • docs-site/src/content/docs/zh-tw/guides/combos.md
  • docs-site/src/content/docs/zh-tw/guides/grok-build.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/reference/adapters.md
  • docs-site/src/content/docs/zh-tw/reference/architecture.md
  • docs-site/src/content/docs/zh-tw/reference/cli/providers-accounts.md
  • docs-site/src/content/docs/zh-tw/reference/configuration/providers.md
  • docs-site/src/content/docs/zh-tw/reference/configuration/routing.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/shadow-call-intercept.md
  • gui/.oxlintrc.json
  • gui/doctor.config.json
  • gui/src/App.tsx
  • gui/src/account-pool-strategy.ts
  • gui/src/api-access-models.ts
  • gui/src/app-routing.ts
  • gui/src/codex-quota-utils.ts
  • gui/src/combo-workspace-data.ts
  • gui/src/components/CodexAccountPool.tsx
  • gui/src/components/ComboWorkspace.tsx
  • gui/src/components/codex-account-pool-cards.tsx
  • gui/src/components/codex-account-pool-main-card.tsx
  • gui/src/components/codex-set/BaseVariantDialog.tsx
  • gui/src/components/codex-set/CustomLayerDialog.tsx
  • gui/src/components/codex-set/CustomLayerRow.tsx
  • gui/src/components/codex-set/PresetPicker.tsx
  • gui/src/components/codex-set/PromptLayerDialog.tsx
  • gui/src/components/codex-set/PromptLayerRow.tsx
  • gui/src/components/codex-set/custom-layer-state.ts
  • gui/src/components/codex-set/presets.ts
  • gui/src/components/codex-set/prompt-layer-copy.ts
  • gui/src/components/codex-set/prompt-lint.ts
  • gui/src/components/combo-workspace-add-modal.tsx
  • gui/src/components/combo-workspace-controls.tsx
  • gui/src/components/combo-workspace-detail-panel.tsx
  • gui/src/components/combo-workspace-overview-panel.tsx
  • gui/src/components/provider-catalog/ProviderCatalog.tsx
  • gui/src/components/provider-workspace/AnthropicAccountPoolSettings.tsx
  • gui/src/components/provider-workspace/ProviderCapacityQuota.tsx
  • gui/src/components/storage-workspace/StorageWorkspace.tsx
  • 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/log-guard-labels.ts
  • gui/src/i18n/ru.ts
  • gui/src/i18n/tr.ts
  • gui/src/i18n/zh-TW.ts
  • gui/src/i18n/zh.ts
  • gui/src/icons.tsx
  • gui/src/model-display.ts
  • gui/src/pages/ApiKeys.tsx
  • gui/src/pages/CodexSet.tsx
  • gui/src/pages/Logs.tsx
  • gui/src/pages/Models.tsx
  • gui/src/pages/Storage.tsx
  • gui/src/pages/codex-set-multiauth.tsx
  • gui/src/pages/codex-set-prompt.tsx
  • gui/src/pages/codex-set-tab.ts
  • gui/src/pages/dashboard-overview-sections.tsx
  • gui/src/pages/dashboard-shared.ts
  • gui/src/pages/providers-page-utils.ts
  • gui/src/provider-workspace/report.ts
  • gui/src/styles-codex-set.css
  • gui/src/styles-dashboard-workspace.css
  • gui/src/styles-models-workspace.css
  • gui/src/styles.css
  • gui/tests/anthropic-pool-quota-window.test.tsx
  • gui/tests/api-access-models.test.ts
  • gui/tests/claude-code-background-helper.test.tsx
  • gui/tests/claude-desktop-locale.test.ts
  • gui/tests/codex-account-pool-pinned-badge.test.tsx
  • gui/tests/codex-set-base-variants.test.tsx
  • gui/tests/codex-set-custom-layers.test.tsx
  • gui/tests/codex-set-presets.test.tsx
  • gui/tests/codex-set-prompt-layers.test.tsx
  • gui/tests/codex-set-provider-enable.test.tsx
  • gui/tests/codex-set-recovery-interaction.test.tsx
  • gui/tests/codex-set-shell.test.tsx
  • gui/tests/codex-set-stack.test.tsx
  • gui/tests/combo-strategy-roundtrip.test.ts
  • gui/tests/dashboard-tabs.test.ts
  • gui/tests/fr-localization.test.ts
  • gui/tests/helpers/css-declarations.ts
  • gui/tests/locale-parity.test.ts
  • gui/tests/logs-auto-refresh.test.tsx
  • gui/tests/models-preset-selector.test.ts
  • gui/tests/models-provider-head.test.ts
  • gui/tests/page-loading-contract.test.tsx
  • gui/tests/provider-capacity-credits.test.tsx
  • gui/tests/provider-capacity.test.ts
  • gui/tests/shadow-call-model-options.test.ts
  • gui/tests/sidebar-codex-set.test.ts
  • gui/tests/sidebar-rows.test.ts
  • gui/tests/sidecar-layout.test.ts
  • gui/tests/storage-log-guard.test.tsx
  • gui/tests/storage-policy-metadata-warning.test.tsx
  • gui/tests/viewport-scroll-caps.test.ts
  • package.json
  • scripts/OCX-RUN.md
  • scripts/bump-dev-version.ts
  • scripts/ci/assert-mergeable-review.sh
  • scripts/disposable-host/codex-service-composed-acceptance.ts
  • scripts/generate-ocx-skill-surface.ts
  • scripts/model-metadata.source.json
  • scripts/ocx-restart.sh
  • scripts/ocx-run
  • scripts/test-run-lock.ts
  • scripts/test.ts
  • skills/ocx/SKILL.md
  • skills/ocx/references/01_management_surface.md
  • skills/ocx/references/02_json_shapes.md
  • skills/ocx/references/03_recipes.md
  • skills/ocx/references/04_failure_semantics.md
  • src/AGENTS.md
  • src/adapters/agentrouter.ts
  • src/adapters/anthropic.ts
  • src/adapters/base.ts
  • src/adapters/command-code.ts
  • src/adapters/cursor.ts
  • src/adapters/cursor/call-id.ts
  • src/adapters/cursor/catalog.ts
  • src/adapters/cursor/checkpoint-store.ts
  • src/adapters/cursor/cursor-errors.ts
  • src/adapters/cursor/discovery.ts
  • src/adapters/cursor/effort-map.ts
  • src/adapters/cursor/envelope-echo.ts
  • src/adapters/cursor/live-models.ts
  • src/adapters/cursor/live-transport.ts
  • src/adapters/cursor/message-mapper.ts
  • src/adapters/cursor/native-exec-desktop.ts
  • src/adapters/cursor/native-exec-fs.ts
  • src/adapters/cursor/native-exec-network.ts
  • src/adapters/cursor/native-exec-shell.ts
  • src/adapters/cursor/native-exec.ts
  • src/adapters/cursor/protobuf-request.ts
  • src/adapters/cursor/request-builder.ts
  • src/adapters/cursor/tool-definitions.ts
  • src/adapters/cursor/tool-result-normalize.ts
  • src/adapters/cursor/transport-retry.ts
  • src/adapters/cursor/types.ts
  • src/adapters/empty-tool-output-annotation.ts
  • src/adapters/exec-tool-result-normalize.ts
  • src/adapters/google-antigravity-replay.ts
  • src/adapters/google-antigravity-wire.ts
  • src/adapters/google-errors.ts
  • src/adapters/google.ts
  • src/adapters/image.ts
  • src/adapters/kiro-constants.ts
  • src/adapters/kiro-tools.ts
  • src/adapters/kiro.ts
  • src/adapters/ollama-native-url.ts
  • src/adapters/ollama-native.ts
  • src/adapters/openai-chat.ts
  • src/adapters/openai-responses.ts
  • src/adapters/registry.ts
  • src/adapters/run-turn-queue.ts
  • src/adapters/tool-catalog-nudge.ts
  • src/adapters/xai-tool-schema.ts
  • src/adapters/xai-web-search.ts
  • src/bridge.ts
  • src/chat/inbound.ts
  • src/chat/outbound.ts
  • src/claude/agents-inject.ts
  • src/claude/desktop-3p.ts
  • src/claude/desktop-policy.ts
  • src/claude/outbound.ts
  • src/cli/access.ts
  • src/cli/account-api.ts
  • src/cli/account-extended.ts
  • src/cli/account-main.ts
  • src/cli/account.ts
  • src/cli/agent.ts
  • src/cli/alias.ts
  • src/cli/capabilities-command.ts
  • src/cli/capabilities.ts
  • src/cli/claude-desktop.ts
  • src/cli/claude.ts
  • src/cli/combo.ts
  • src/cli/dispatch.ts
  • src/cli/doctor.ts
  • src/cli/help.ts
  • src/cli/index.ts
  • src/cli/init.ts
  • src/cli/inspect.ts
  • src/cli/models-runtime.ts
  • src/cli/models.ts
  • src/cli/observe.ts
  • src/cli/provider-runtime.ts
  • src/cli/registry.ts
  • src/cli/runtime-api.ts
  • src/cli/status.ts
  • src/cli/storage.ts
  • src/cli/system-command.ts
  • src/cli/usage-report.ts
  • src/cli/v2.ts
  • src/cli/version-skew.ts
  • src/codex/account-label.ts
  • src/codex/account-pause.ts
  • src/codex/account-priority.ts
  • src/codex/account-runtime-state.ts
  • src/codex/account-store.ts
  • src/codex/account-usability.ts
  • src/codex/app-server-processes.ts
  • src/codex/auth-api.ts
  • src/codex/auth-context.ts
  • src/codex/catalog.ts
  • src/codex/catalog/aggregation.ts
  • src/codex/catalog/bundled.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/codex-write-lock.ts
  • src/codex/convergence-types.ts
  • src/codex/convergence.ts
  • src/codex/data/upstream-models.json
  • src/codex/desired-state.ts
  • src/codex/desktop-app-restart.ts
  • src/codex/inject-coordination.ts
  • src/codex/inject.ts
  • src/codex/integration-record.ts
  • src/codex/log-guard/inspect.ts
  • src/codex/main-account.ts
  • src/codex/model-entitlements.ts
  • src/codex/prompt-layers.ts
  • src/codex/prompt-text-probe.ts
  • src/codex/quota.ts
  • src/codex/routing.ts
  • src/codex/runtime.ts
  • src/codex/subagent-model-fallback.ts
  • src/codex/transition-state.ts
  • src/codex/user-identity.ts
  • src/combos/index.ts
  • src/combos/reset-window.ts
  • src/combos/resolve.ts
  • src/combos/types.ts
  • src/compatibility/openai-responses.ts
  • src/config.ts
  • src/config/atomic-write.ts
  • src/config/provider-validation.ts
  • src/config/rebase-provenance.ts
  • src/grok/catalog.ts
  • src/grok/effort.ts
  • src/grok/inject.ts
  • src/grok/models.ts
  • src/grok/status.ts
  • src/grok/sync.ts
  • src/images/loop.ts
  • src/integrations/native/ownership-preflight.ts
  • src/integrations/ownership-policy.ts
  • src/integrations/ownership.ts
  • src/integrations/state.ts
  • src/integrations/writer.ts
  • src/lab/conformance/fixtures/protocol-v1-cases.json
  • src/lab/fabric/producer-child.ts
  • src/lab/fabric/producer-isolate.ts
  • src/lib/admin-secrets.ts
  • src/lib/config-ownership.ts
  • src/lib/destination-policy.ts
  • src/lib/errors.ts
  • src/lib/package-tree-integrity.ts
  • src/lib/redact.ts
  • src/lib/service-secrets.ts
  • src/lib/shadow-call.ts
  • src/lib/test-home-guard.ts
  • src/lib/upstream-retry.ts
  • src/lib/windows-secret-acl.ts
  • src/lib/windows-text.ts
  • src/lib/windows-user-principal.ts
  • src/oauth/account-quota-rank.ts
  • src/oauth/anthropic-routing.ts
  • src/oauth/chatgpt.ts
  • src/oauth/generic-account-failover.ts
  • src/oauth/index.ts
  • src/oauth/key-providers.ts
  • src/oauth/kiro.ts
  • src/oauth/store.ts
  • src/oauth/types.ts
  • src/providers/account-quota-disk.ts
  • src/providers/command-code-efforts.ts
  • src/providers/context-cap.ts
  • src/providers/default-aliases.ts
  • src/providers/derive.ts
  • src/providers/fastwire.ts
  • src/providers/key-failover.ts
  • src/providers/kiro-usage.ts
  • src/providers/label.ts
  • src/providers/model-presets.ts
  • src/providers/new-model-policy.ts
  • src/providers/ollama-show.ts
  • src/providers/openai-sidecar.ts
  • src/providers/provider-id-rewrite.ts
  • src/providers/quota-routing-cache.ts
  • src/providers/quota-types.ts
  • src/providers/quota-wire.ts
  • src/providers/quota.ts
  • src/providers/registry.ts
  • src/providers/slug-codec.ts
  • src/providers/vercel-gateway-routing.ts
  • src/responses/code-mode-helper-compat.ts
  • src/responses/custom-tool-compat.ts
  • src/responses/parser.ts
  • src/responses/schema.ts
  • src/responses/thought-signature-replay.ts
  • src/responses/turn-termination.ts
  • src/router.ts
  • src/routing/analytics.ts
  • src/routing/quota.ts
  • src/server/auth-cors.ts
  • src/server/catalog-download.ts
  • src/server/chat-completions.ts
  • src/server/chat-native-sse.ts
  • src/server/chat-native.ts
  • src/server/claude-messages.ts
  • src/server/gui-static.ts
  • src/server/index.ts
  • src/server/lifecycle.ts
  • src/server/management-api.ts
  • src/server/management/agent-settings-routes.ts
  • src/server/management/codex-prompt-routes.ts
  • src/server/management/combo-routes.ts
  • src/server/management/config-routes.ts
  • src/server/management/context.ts
  • src/server/management/logs-usage-routes.ts
  • src/server/management/model-routes.ts
  • src/server/management/native-integration-routes.ts
  • src/server/management/oauth-account-routes.ts
  • src/server/management/provider-routes.ts
  • src/server/management/route-registry.ts
  • src/server/management/routing-profile-routes.ts
  • src/server/management/shadow-call-validation.ts
  • src/server/proxy-liveness.ts
  • src/server/relay-eager.ts
  • src/server/relay.ts
  • src/server/request-log-conversation.ts
  • src/server/request-log.ts
  • src/server/responses-custom-tool-repair.ts
  • src/server/responses-terminal-repair.ts
  • src/server/responses-undeclared-tool-guard.ts
  • src/server/responses/agent-task-recovery-cache.ts
  • src/server/responses/agent-task-recovery.ts
  • src/server/responses/codex-auth-error.ts
  • src/server/responses/collaboration.ts
  • src/server/responses/combo-stream-preflight.ts
  • src/server/responses/compact.ts
  • src/server/responses/core.ts
  • src/server/responses/empty-completion-guard.ts
  • src/server/responses/fetch-helpers.ts
  • src/server/responses/input-admission.ts
  • src/server/responses/passthrough-error.ts
  • src/server/responses/policy-fallback.ts
  • src/server/responses/responses-field-backfill.ts
  • src/server/sse-frame-buffer.ts
  • src/server/startup-health-cache.ts
  • src/server/ws-bridge.ts
  • src/service-manager-probe.ts
  • src/service.ts
  • src/storage/cleanup.ts
  • src/storage/policy-job.ts
  • src/storage/policy.ts
  • src/storage/storage-mutation-coordinator.ts
  • src/tray/windows-tray.ps1
  • src/tray/windows.ts
  • src/types.ts
  • src/types/config.ts
  • src/types/provider.ts
  • src/types/request.ts
  • src/types/tools.ts
  • src/usage/expected-prices.ts
  • src/usage/log.ts
  • src/usage/summary.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/xai-executor.ts
  • structure/02_config-and-codex-home.md
  • structure/03_catalog-and-subagents.md
  • structure/04_transports-and-sidecars.md
  • structure/05_gui-and-management-api.md
  • structure/08_openai-provider-tiers.md
  • structure/09_client-integrations.md
  • structure/10_adapter-registry.md
  • structure/11_compatibility-contracts.md
  • tests/abort-race.test.ts
  • tests/account-pool-management-api.test.ts
  • tests/active-registry-admission.test.ts
  • tests/adapter-buffered-tool-conformance.test.ts
  • tests/adapter-event-oauth-failover.test.ts
  • tests/adapter-registry-authority.test.ts
  • tests/adapter-tool-conformance.test.ts
  • tests/agent-task-recovery-combo.test.ts
  • tests/agent-task-recovery.test.ts
  • tests/alias-management-api.test.ts
  • tests/alibaba-intl-token-plan.test.ts
  • tests/anthropic-account-pool.test.ts
  • tests/api-catalog-route.test.ts
  • tests/api-key-attribution.test.ts
  • tests/api-usage.test.ts
  • tests/assert-mergeable-review.test.ts
  • tests/autostart-health.test.ts
  • tests/azure-model-router-tool-schema.test.ts
  • tests/bearer-admission-routed-provider.test.ts
  • tests/bridge-legacy-shell-normalization.test.ts
  • tests/bridge.test.ts
  • tests/buffered-response-shape-guards.test.ts
  • tests/bump-dev-version.test.ts
  • tests/catalog-verbosity-default.test.ts
  • tests/chat-completions-endpoint.test.ts
  • tests/ci-workflows.test.ts
  • tests/claude-agents-inject.test.ts
  • tests/claude-cli.test.ts
  • tests/claude-desktop-cli.test.ts
  • tests/claude-desktop-native-context.test.ts
  • tests/claude-desktop-policy.test.ts
  • tests/claude-models-discovery.test.ts
  • tests/claude-outbound.test.ts
  • tests/cli-account-pool-verbs.test.ts
  • tests/cli-account.test.ts
  • tests/cli-capabilities.test.ts
  • tests/cli-dispatch.test.ts
  • tests/cli-dto-fidelity.test.ts
  • tests/cli-headless-parity.test.ts
  • tests/cli-json-contract.test.ts
  • tests/cli-models.test.ts
  • tests/cli-native-profile.test.ts
  • tests/cli-restore-back.test.ts
  • tests/cli-start-journal-order.test.ts
  • tests/cli-status-json.test.ts
  • tests/cli-storage-inspect.test.ts
  • tests/cli-transport-honesty.test.ts
  • tests/cli-usage-report.test.ts
  • tests/cli-version-skew.test.ts
  • tests/cline-pass-provider.test.ts
  • tests/closed-pr-branch-cleanup.test.ts
  • tests/codex-account-store.test.ts
  • tests/codex-app-server-processes.test.ts
  • tests/codex-auth-api.test.ts
  • tests/codex-auth-context.test.ts
  • tests/codex-catalog-restore.test.ts
  • tests/codex-catalog-sync-hardening.test.ts
  • tests/codex-catalog.test.ts
  • tests/codex-composed-acceptance.test.ts
  • tests/codex-convergence-account-selectors.test.ts
  • tests/codex-convergence-contract.test.ts
  • tests/codex-coordinator-doctor.test.ts
  • tests/codex-envkey-admission-substitution.test.ts
  • tests/codex-inject-write-lock.test.ts
  • tests/codex-integration-record.test.ts
  • tests/codex-log-guard-inspect.test.ts
  • tests/codex-log-guard-maintenance.test.ts
  • tests/codex-main-account-refresh.test.ts
  • tests/codex-model-entitlements.test.ts
  • tests/codex-plan.test.ts
  • tests/codex-prompt-base-variants.test.ts
  • tests/codex-prompt-layers-write.test.ts
  • tests/codex-prompt-layers.test.ts
  • tests/codex-prompt-route.test.ts
  • tests/codex-prompt-text-probe.test.ts
  • tests/codex-quota-parser-parity.test.ts
  • tests/codex-refresh.test.ts
  • tests/codex-retained-root-serialization.test.ts
  • tests/codex-routing.test.ts
  • tests/codex-service-manager-probe-hardening.test.ts
  • tests/codex-spark-visibility.test.ts
  • tests/codex-sync-api.test.ts
  • tests/codex-tool-mode.test.ts
  • tests/codex-transition-state-adoption.test.ts
  • tests/codex-user-identity.test.ts
  • tests/codex-v2-gate.test.ts
  • tests/combo-management-api.test.ts
  • tests/combo-stream-preflight.test.ts
  • tests/combos.test.ts
  • tests/command-code-provider.test.ts
  • tests/command-code-quota.test.ts
  • tests/commandcode-provider.test.ts
  • tests/config-ownership-uninstall.test.ts
  • tests/config-rebase-provenance-writers.test.ts
  • tests/config-user-edits.test.ts
  • tests/config.test.ts
  • tests/core-lab-boundary.test.ts
  • tests/cursor-adapter.test.ts
  • tests/cursor-blob-integrity.test.ts
  • tests/cursor-blob.test.ts
  • tests/cursor-call-id.test.ts
  • tests/cursor-catalog.test.ts
  • tests/cursor-default-catalog-suppression.test.ts
  • tests/cursor-desktop-exec.test.ts
  • tests/cursor-discovery.test.ts
  • tests/cursor-effort-suffix.test.ts
  • tests/cursor-envelope-echo-retry.test.ts
  • tests/cursor-errors.test.ts
  • tests/cursor-exec-empty-result.test.ts
  • tests/cursor-hardening.test.ts
  • tests/cursor-protobuf-events.test.ts
  • tests/cursor-repetition-breaker.test.ts
  • tests/cursor-request-builder.test.ts
  • tests/cursor-silent-redirect.test.ts
  • tests/cursor-static-catalog.test.ts
  • tests/cursor-tool-definitions.test.ts
  • tests/cursor-tool-result-invocation.test.ts
  • tests/cursor-tool-suspended-checkpoint.test.ts
  • tests/cursor-ultra-mode.test.ts
  • tests/cursor-umbrella-rows.test.ts
  • tests/cursor-uncallable-quarantine.test.ts
  • tests/cyber-policy-error-fidelity.test.ts
  • tests/desktop-3p.test.ts
  • tests/desktop-app-restart.test.ts
  • tests/destination-policy-resolved.test.ts
  • tests/digitalocean-scaleway-provider.test.ts
  • tests/doctor-codex-envkey-readiness.test.ts
  • tests/doctor-provider-apikey.test.ts
  • tests/doctor.test.ts
  • tests/empty-completion-guard.test.ts
  • tests/empty-tool-output-annotation.test.ts
  • tests/exa-web-search.test.ts
  • tests/fastwire-observability.test.ts
  • tests/fetch-header-timeout.test.ts
  • tests/fixtures/commandcode-models.json
  • tests/fixtures/compatibility/openai-codex-forward-gpt56-sol-v1.json
  • tests/gemini-web-search.test.ts
  • tests/generic-oauth-failover.test.ts
  • tests/github-copilot-account-origin.test.ts
  • tests/google-adapter.test.ts
  • tests/google-antigravity-replay.test.ts
  • tests/google-antigravity-wire.test.ts
  • tests/google-errors.test.ts
  • tests/google-output-clamp.test.ts
  • tests/google-signature-history-roundtrip.test.ts
  • tests/google-vertex-thought-signature.test.ts
  • tests/grok-attribution.test.ts
  • tests/grok-config-inject.test.ts
  • tests/grok-effort-inject.test.ts
  • tests/grok-models-effort-list.test.ts
  • tests/grok-orphan-adoption.test.ts
  • tests/grok-selection.test.ts
  • tests/grok-status.test.ts
  • tests/grok-sync.test.ts
  • tests/gui-static.test.ts
  • tests/helpers/adapter-conformance/wire-drivers.ts
  • tests/helpers/codex-adoption-crash-child.ts
  • tests/helpers/management-route-scan.ts
  • tests/helpers/native-main-owner-child.ts
  • tests/helpers/owned-service-home-preload.ts
  • tests/helpers/owned-service-home.ts
  • tests/helpers/windows-power-shell-fixture.ts
  • tests/images/loop.test.ts
  • tests/init-eof.test.ts
  • tests/install-scripts.test.ts
  • tests/integrations-state.test.ts
  • tests/integrations-writer.test.ts
  • tests/issue-452-empty-503.test.ts
  • tests/issue-702-expired-replay-state.test.ts
  • tests/kiro-account-quota.test.ts
  • tests/kiro-adapter.test.ts
  • tests/kiro-builder-id-profile.test.ts
  • tests/kiro-pool-rank.test.ts
  • tests/kiro-stream.test.ts
  • tests/kiro-usage-quota.test.ts
  • tests/lab-activation.test.ts
  • tests/lab-fabric-task.test.ts
  • tests/legacy-shell-compat.test.ts
  • tests/local-management-direct-transport.test.ts
  • tests/management-client-config-route.test.ts
  • tests/management-provider-validation.test.ts
  • tests/management-route-registry.test.ts
  • tests/model-discovery-management-api.test.ts
  • tests/model-presets.test.ts
  • tests/model-visibility-management-api.test.ts
  • tests/moonshot-tool-schema.test.ts
  • tests/multi-agent-compat.test.ts
  • tests/multi-agent-keep-native-v1.test.ts
  • tests/muse-spark-web-search-compat.test.ts
  • tests/native-claude-desktop-toggle.test.ts
  • tests/native-grok-toggle.test.ts
  • tests/native-main-owner-lifetime.test.ts
  • tests/native-model-toggle.test.ts
  • tests/native-profile-crash-boundaries.test.ts
  • tests/native-profile-startup.test.ts
  • tests/new-model-policy.test.ts
  • tests/oauth-account-attribution.test.ts
  • tests/oauth-upsert-preserves-api-key.test.ts
  • tests/ocx-launcher-runtime.test.ts
  • tests/ocx-run.test.ts
  • tests/ollama-native-parser.test.ts
  • tests/ollama-native-reasoning-wire.test.ts
  • tests/ollama-native-structured-output.test.ts
  • tests/ollama-native-v4.test.ts
  • tests/ollama-native.test.ts
  • tests/ollama-show-enrichment-v7.test.ts
  • tests/ollama-show-enrichment.test.ts
  • tests/ollama-show-ignore-abort.test.ts
  • tests/openai-chat-hardening.test.ts
  • tests/openai-provider-option-e2e.test.ts
  • tests/openai-responses-passthrough.test.ts
  • tests/opencode-go-muse-context.test.ts
  • tests/opencode-go-muse-vision.test.ts
  • tests/owned-service-home.test.ts
  • tests/package-tree-integrity.test.ts
  • tests/passthrough-abort.test.ts
  • tests/preload.ts
  • tests/provider-account-quota-persistence.test.ts
  • tests/provider-account-quota.test.ts
  • tests/provider-live-models.test.ts
  • tests/provider-model-aliases.test.ts
  • tests/provider-model-discovery-contract.test.ts
  • tests/provider-quota.test.ts
  • tests/provider-registry-parity.test.ts
  • tests/provider-workspace-auth.test.ts
  • tests/proxy-env.test.ts
  • tests/proxy-liveness.test.ts
  • tests/rate-limit-reset-credits.test.ts
  • tests/reasoning-replay-identity.test.ts
  • tests/relay-eager.test.ts
  • tests/release-helper.test.ts
  • tests/release-version-line.test.ts
  • tests/repo-hygiene.test.ts
  • tests/request-log.test.ts
  • tests/responses-account-label.test.ts
  • tests/responses-compaction-routing.test.ts
  • tests/responses-custom-tool-repair.test.ts
  • tests/responses-fetch-helpers-boundary.test.ts
  • tests/responses-field-backfill.test.ts
  • tests/responses-forward-posit-continuation.test.ts
  • tests/responses-forward-prompt-envelope.test.ts
  • tests/responses-native-main-refresh.test.ts
  • tests/responses-pool-401-refresh.test.ts
  • tests/responses-routed-web-search-fields.test.ts
  • tests/responses-shadow-intercept.test.ts
  • tests/responses-state.test.ts
  • tests/responses-stateless-dangling-call-repair.test.ts
  • tests/responses-stream-tool-events.test.ts
  • tests/responses-terminal-repair.test.ts
  • tests/responses-undeclared-tool-guard.test.ts
  • tests/router.test.ts
  • tests/routing-policy-fallback.test.ts
  • tests/routing-profile-management-editor.test.ts
  • tests/run-turn-queue.test.ts
  • tests/server-auth.test.ts
  • tests/server-combo-failover-e2e.test.ts
  • tests/server-kiro-completion-e2e.test.ts
  • tests/service.test.ts
  • tests/session-lane-recall-harness.test.ts
  • tests/skill-ocx.test.ts
  • tests/slug-codec.test.ts
  • tests/sse-failed-tail.test.ts
  • tests/storage-mutation-race.test.ts
  • tests/storage-policy-config-race.test.ts
  • tests/subagent-context-staleness.test.ts
  • tests/subagent-fallback-handle-responses.test.ts
  • tests/subagent-model-fallback.test.ts
  • tests/terminal-guard-server.test.ts
  • tests/test-home-guard.test.ts
  • tests/test-runner.test.ts
  • tests/thought-signature-credential-scope.test.ts
  • tests/tool-catalog-nudge.test.ts
  • tests/transient-budget-scope-source.test.ts
  • tests/update-stop-first.test.ts
  • tests/upstream-http-version.test.ts
  • tests/upstream-transient-retry.test.ts
  • tests/usage-cost.test.ts
  • tests/usage-log.test.ts
  • tests/usage-summary.test.ts
  • tests/vercel-gateway-provider-routing.test.ts
  • tests/vision-reasoning-contract.test.ts
  • tests/volcengine-providers.test.ts
  • tests/web-search.test.ts
  • tests/windows-popup-fix.test.ts
  • tests/windows-secret-acl.test.ts
  • tests/windows-text-decoding.test.ts
  • tests/windows-tray.test.ts
  • tests/windows-user-principal.test.ts
  • tests/ws-upstream.test.ts
  • tests/xai-tool-schema.test.ts
  • tests/xai-transport.test.ts
  • tests/xai-web-search-compat.test.ts
  • gui/src/pages/CodexAuth.tsx
  • gui/tests/codex-auth-provider-enable.test.tsx
  • gui/tests/codex-auth-recovery-interaction.test.tsx
  • gui/tests/sidebar-codex-auth.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.

@github-actions

Copy link
Copy Markdown
Contributor

Deterministic PR hygiene checks passed.

@github-actions github-actions Bot added the bug Something isn't working label Aug 31, 2026
@github-actions

github-actions Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

⏳ DRAFT

  • review readiness checklist open (0/4 boxes ticked).

What to do

  • Tick all four boxes in the PR description once you're done (currently 0/4).

Review readiness checklist

  • ⬜ All CI tests are green on my local testing.
  • ⬜ I pushed my PR to the latest dev commit.
  • ⬜ I resolved all correct Codex and CodeRabbit findings.
  • ⬜ My PR is ready for review.

0/4 boxes ticked.

This PR stays in draft until every box above is ticked.

@github-actions
github-actions Bot marked this pull request as draft August 31, 2026 04:00
@lidge-jun

Copy link
Copy Markdown
Owner

리뷰 · 우선순위 68 / 80

이 PR은 이슈 #3024를 고친다. 지금 dev HEAD는 4180067 (패키지 2.37.0) 이다. 설정에 deepseek-v4-pro-0813 이 있고, 업스트림 /modelsdeepseek-v4-pro 만 준다. 같은 모델은 HTTP 200 으로 호출되는데 ocx models liveGET /api/models 에서는 날짜 id 가 사라진다. GET /api/providers 의 discovery.status 는 그냥 ok 다. 라우팅 구멍이 아니라 카탈로그에 그리는 구멍이다.

원인은 두 개다. 첫째, src/codex/catalog/provider-fetch.ts 938행 isDatedVariantId 는 접미사가 숫자 여덟 자리(/^\d{8}$/)일 때만 날짜로 본다. DeepSeek 와 알리바바 Token Plan 은 0813 같은 네 자리 MMDD 를 쓴다. 둘째, 1671행 병합 루프는 한 방향만 접는다. 설정이 짧은 이름이고 라이브가 날짜 이름일 때만 남긴다. 이슈 예시처럼 설정이 날짜 이름이고 라이브가 짧은 이름이면 startsWith 에서 바로 거짓이다. 실패하면 shouldRetainConfiguredProviderModel 로 가는데, 그 탈출구는 호환 허용 목록과 opencode-free 뿐이다. alibaba-token-plan-intl 은 없다.

이 PR은 그 두 구멍을 같이 막는다. isDateSuffixisDatedVariantId 앞에 둔다. 여덟 자리는 예전처럼 통과시키고, 네 자리는 월 1–12·일 1–31 일 때만 날짜로 본다. 그래서 0813 은 8월 13일이라 통과하고, 2025 는 20월이 없어서 거절된다. 기존 테스트 claude-haiku-4-5-2025 는 그대로 거짓이다. 호출 쪽은 isDatedVariantId(live, candidate) || isDatedVariantId(candidate, live) 로 양쪽을 본다. 라이브에 대응 행이 있을 때만 설정 id 를 복사해 넣는다. 업스트림이 진짜로 안 주는 행을 살리는 #1690 retainModels 가 아니다. 초안 #2860 과 합치지 마라. 미리보기 배포는 계획에 없다. types.ts/config.ts 분할과도 안 겹친다.

같은 이슈를 겨냥한 형제 PR #3034 가 이미 열려 있다. 같은 작성자(ntdatt812)다. #3034 는 접미사만 넓힌다. YYYYMMDD / YYMMDD / MMDD / YYMM 네 갈래다. 역방향 접기는 일부러 안 넣었다. 이 PR은 접미사는 YYYYMMDD+MMDD 만 받고, 대신 이슈 제목의 반대 방향 접기를 넣었다. 두 PR은 같은 함수와 같은 테스트 파일을 고친다. 둘 다 머지할 수 없다. 이슈 #3024 리뷰는 반대 방향 접기를 이 구멍의 수리라고 했고, #1690 과 섞지 말라고 했다. #3034 리뷰는 반대 방향을 #1690 으로 넘기라고 했다. 이 PR은 이슈 리뷰 쪽이다.

테스트는 tests/codex-catalog.test.ts 세 개다. MMDD 통과, 가짜 네 자리 거절, 설정=날짜/라이브=베이스 병합. 작성자가 역방향 한 줄을 빼면 192 pass, 1 fail 이라고 했다. 기존 YYYYMMDD 테스트 이름은 그대로인데 이제 MMDD 도 참이라 이름이 조금 빗나간다. 값은 그대로 맞다. 이 브랜치의 base 는 지금 dev HEAD 4180067 와 같다.

라인 938 (src/codex/catalog/provider-fetch.ts, 현재 HEAD) - isDatedVariantId/^\d{8}$/ 한 줄이다. MMDD 는 거절된다. 이 PR이 여기를 isDateSuffix 로 교체한다.
라인 1671 (mergeConfiguredModelsIntoLiveCatalog) - 한 방향만 접는다. 이슈 #3024 예시(설정=dated, 라이브=base)는 여기서 떨어진다. 이 PR이 양쪽을 본다.
경로 isDateSuffix 네 자리 갈래 - 월 1–12, 일 1–31 만 본다. 2월 31일도 통과한다. 진짜 달력이 아니다. #3034 와 같은 한계다.
경로 isDateSuffix 여덟 자리 갈래 - 달력 가드 없이 /^\d{8}$/ 그대로다. #3034 는 여기를 조였다. 이 PR은 HEAD 와 같다.
경로 YYMMDD/YYMM 없음 - #3034 가 넣었던 여섯 자리·연월 네 자리는 여기 없다. deepseek-v4-pro-250813 같은 값은 계속 날짜가 아니다.
경로 역방향 접기 결과 - 라이브 베이스 행을 지우지 않고 설정 날짜 id 행을 하나 더 넣는다. 카탈로그에 두 id 가 같이 남는다. 테스트는 설정 id 가 들어 있는지만 본다.
tests/codex-catalog.test.ts isDatedVariantId matches only <alias>-YYYYMMDD - 테스트 이름이 이제 사실이 아니다. MMDD 도 참이다. 이름만 고치면 된다.
경로 -1024 충돌 - model-1024 는 10월 24일로 읽혀 접힌다. #3034 는 이 비용을 테스트로 박아 두었다. 이 PR은 그 핀이 없다.
PR 본문 체크리스트 - 아직 draft 이고 네 칸이 비어 있다. 코드 방향은 맞지만 Ready 표시 전에 로컬 통과를 확인해야 한다. base 는 이미 최신 dev 이다.
형제 PR #3034 - 같은 파일, 같은 이슈. 접미사 범위는 더 넓고 역방향은 없다. 하나를 골라야 한다.

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

너의 추천
#3024 의 실제 예시(설정=날짜, 라이브=베이스)를 고치는 쪽은 이 PR이다. 이 방향을 받아라. #3034 는 같은 작성자의 접미사-only 절반이니 이 PR이 Ready 가 되면 superseded 로 닫아라. types/config 분할로 닫을 PR이 아니고 #2860/#1690 과도 합치지 마라. 작성자가 체크리스트를 채우고 -1024 핀과 테스트 이름만 고치면 머지해도 된다. YYMMDD/YYMM 은 후속 이슈로 남겨도 된다. 머지 후 #3024 를 닫아라. 미리보기 배포는 하지 않는다.

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

@Ingwannu Ingwannu left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requesting changes on exact head 9340189. The MMDD format gap is real, but the reverse fold is not a safe default inference. A live base row proves that the base id is callable; it does not prove that a configured dated snapshot is still callable. Retaining configured=dated when live=base can therefore resurrect a retired or plan-removed snapshot solely because its name looks related. The reporter manually proved one specific id, but the catalog merge has no equivalent callability signal. Keep the fold directional and widen the accepted suffix formats, or require the explicit retainModels operator opt-in for the reverse case. Also pin the unavoidable 1024 MMDD collision and keep the broader observed YYMMDD and YYMM formats if this supersedes #3034. Finally, this branch is not based on the current dev history: its merge base is c0c9544 and current dev is a8c3a96, so rebase before any runtime CI or Ready transition. Please do not close #3024 as fully fixed unless the reverse case is resolved through an explicit, non-inferred retention contract.

…the -1024 cost

The review is right that `isDatedVariantId matches only <alias>-YYYYMMDD` stopped
being true once MMDD was accepted. Renamed, and the MMDD case it now covers is
asserted in it rather than only elsewhere.

Also pins the cost the review asked for: a four-digit suffix that is a valid
month and day is read as one, so `model-1024` folds into `model`. Suffixes
that cannot be a date -- 2048, 4096, 8192, 0000 -- stay separate, which is what
keeps most version and size suffixes safe.
@ntdatt812
ntdatt812 marked this pull request as ready for review August 31, 2026 09:44
@github-actions
github-actions Bot marked this pull request as draft August 31, 2026 09:44
@ntdatt812
ntdatt812 marked this pull request as ready for review August 31, 2026 10:06
@github-actions
github-actions Bot marked this pull request as draft August 31, 2026 10:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants