Skip to content

fix(catalog): normalize proven native custom reasoning lists - #3804

Merged
lidge-jun merged 5 commits into
devfrom
codex/track2-canonical-efforts
Sep 6, 2026
Merged

fix(catalog): normalize proven native custom reasoning lists#3804
lidge-jun merged 5 commits into
devfrom
codex/track2-canonical-efforts

Conversation

@lidge-jun

@lidge-jun lidge-jun commented Sep 6, 2026

Copy link
Copy Markdown
Owner

Summary

Normalize explicit custom reasoning lists only for existing capability-backed canonical Codex-forward aliases. Keep each default inside the resulting list, preserve explicit empty lists, and keep fresh custom catalog projections from gaining an extra max tier during retained merge.

Related to #3775. This does not establish arbitrary gateway capability or fix an unverified Desktop-version-specific failure; #3775 remains open.

Verification

  • Independent source reviews passed, including the merge of dev eff908e0f. Claude admission/persistence and diagnostic workflows received explicit independent security review. The Windows fixture changes also passed independent source review.
  • Local tests, typecheck, installs and builds were not run, per maintainer instruction. Branches were pushed with --no-verify.
  • Final integration CI passed all 25 jobs at exact head 4a759716a940595b999805be40d1514c100d63cf, containing all five layers plus dev eff908e0f. All expected jobs completed successfully.
  • Dev advanced after final CI started to f89b815090020f52089801b50f569a777bdfdc0a. Independent source interaction review passed. That track's 25-job CI verifies its own source; its initial watchdog failure remains recorded there.
  • The conflict-free combined source bf5ce1c3a0ada78f8e506334a82c64b525b859da additionally passed remote Bun 1.4.0 typecheck, 541 tests across 11 relevant files, and the 425-page documentation build. This supplements the full cross-platform run at 4a759716a; it is a focused combined-tree check, not a second complete platform matrix.
  • Earlier final CI failures were investigated before changing fixtures: cache-policy controls isolated composed-fixture cold-cache costs; preparation-budget and semantic-mutation controls verified the competing-OFF allocation and retained assertion sensitivity. Shim advisory controls additionally verified an owned process deadline while retaining failure on a broken advisory collector. These diagnostics are not full integration proof.
  • Automatic PR matrix runs are suppressed by commit skip directives. Lower diagnostics were used only after final-matrix failure. No skipped lower check is described as passed; diagnostic-only workflows are excluded from the delivery stack.

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.

Manual review chain (integrate bottom-up)

Layer PR Review base
1 #3803 dev
2 #3804 codex/track2-protocol-foundation
3 #3805 codex/track2-canonical-efforts
4 #3806 codex/track2-refusal
5 #3808 codex/track2-claude-compatibility

Maintainer integration decision: @lidge-jun explicitly integrates this PR into dev under MAINTAINERS.md at head 2aac0b6ae2f40a8c6919ce28ced4202fe36e29bd, using the final-head-first verification above and the authorized admin merge. This is maintainer integration, not a self-approval. Lower skipped checks are not passing evidence. Actor, base, head and review state are refreshed before merging.

Landing confirmed: included in dev 5759d9ea2f1e7281cdc01eb9628f2e0a123fb59c. All five PR heads are ancestors of fetched dev. Final tree eb4473dfe9e6b95072e3eb31901df635c73dd0eb exactly equals the remotely checked combined source. #3806 was integrated with #3808; GitHub records both as merged.

@coderabbitai

coderabbitai Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

🗂️ Base branches to auto review (2)
  • ^dev$
  • ^preview$

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Team

Run ID: f2a0bfa8-f644-4b79-af50-1c05a5891cb4

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

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Deterministic PR hygiene checks passed.

@github-actions github-actions Bot added the bug Something isn't working label Sep 6, 2026
@lidge-jun
lidge-jun marked this pull request as ready for review September 6, 2026 17:31
@lidge-jun
lidge-jun requested a review from Ingwannu as a code owner September 6, 2026 17:31
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 6, 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-06T17:34:36.790246Z 9852d42 Draft marked ready
ℹ️ 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.

@lidge-jun
lidge-jun force-pushed the codex/track2-canonical-efforts branch from 9852d42 to 257312b Compare September 6, 2026 17:48
@lidge-jun

Copy link
Copy Markdown
Owner Author

리뷰 · 우선순위 60 / 80

이 PR은 Track2 두 번째 층이다. 베이스는 codex/track2-protocol-foundation(#3803)이고, 헤드는 codex/track2-canonical-efforts다. 현재 devsrc/codex/catalog/provider-fetch.ts를 보면, Codex-forward native capability alias 커스텀 행은 네이티브 ladder를 기본으로 깔고, 사용자가 명시한 reasoningEfforts/defaultReasoningEffort가 나중에 덮어쓴다. 주석도 “선언한 ladder는 네이티브 ladder로 바꾸지 않는다”고 되어 있다. 그런데 그 선언이 네이티브가 증명하지 못한 effort를 포함하면, 카탈로그에 가짜 칸이 남거나 merge 과정에서 max 단이 다시 붙을 수 있다.

이 PR은 “증명된 네이티브 커스텀 reasoning 목록만 정규화”한다. boundCustomNativeReasoning이 허용 목록과 교집합을 만들고, 빈 목록([])은 명시적 no-reasoning으로 보존하며, 교집합이 비면 fallback(네이티브 기본 또는 허용 목록 첫 값) 한 칸만 남긴다. 기본값도 살아남은 목록 안에 있도록 맞춘다. sync.ts에서는 이번 호출이 새로 만든 custom entry에 한해 max 단 재주입을 건너뛰어, 방금 확정한 ladder가 merge에서 다시 부풀어 오르지 않게 한다. #3775와 관련은 있지만, 임의 gateway capability나 Desktop 특정 버전 재현까지는 다루지 않는다고 본문이 분명히 말한다. #3775는 열린 채로 둔다.

지금 dev 방향(credits 복구, Windows Desktop lifecycle, credential-selection, provider 추가 없음, types/config split 진행)과 충돌하지 않는다. 카탈로그 정확성 수정이라 사용자 채팅 버그보다 우선순위는 한 단계 낮지만, Codex 앱에 보이는 effort 목록이 틀리면 체감이 바로 난다. 그래서 중상(60)으로 둔다. #3803이 없으면 베이스가 없어서 올릴 수 없고, #3805/#3806은 이 층 위에 있다. bottom-up이 강제다.

문서와 테스트도 같이 온다. docs-site 가이드/providers 참고와 structure/03_catalog-and-subagents.md에 “증명된 native alias만 자른다”는 규칙을 적어 두었다. 테스트는 catalog, repeat-sync, convergence, Claude model discovery 쪽에 provenance 음수·빈 목록·max 재주입 방지를 보강했다. 임의 gateway, 공유 effort map, request-time policy는 손대지 않았다. types.ts/config.ts 대분할에 걸려 invalidate될 파일은 거의 없어 보인다. close-don't-rebase 대상이 아니다.

주의할 점은 범위의 좁음이다. “canonical Codex-forward + native capability metadata가 있는 커스텀 행”만 자른다. 그 밖 custom/provider 행은 그대로다. 이게 의도라면 괜찮고, #3775를 기대하는 사용자는 아직 부분 수정이라는 점을 댓글/릴리즈에 남겨야 한다. CI는 스택 헤드 통합 런에 맡긴 상태라, 이 PR 단독 초록을 주장하면 안 된다.

경로 src/codex/catalog/provider-fetch.ts boundCustomNativeReasoning - 빈 목록 보존과 교집합/fallback 규칙은 명확하다. 비호환 선언을 []로 바꾸지 않는 선택도 주석과 맞다
경로 src/codex/catalog/sync.ts freshCustomEntries - disk ownership 마커가 아니라 이번 생성분 Set으로 max 재주입을 건너뛰는 점이 핵심이다
경로 tests/codex-integration/codex-catalog.test.ts - provenance 음수와 정규화 회귀가 이 PR의 안전망이다
경로 docs guides/codex-app-models.md - 사용자 문서에 “증명된 native만” 한계를 적어 둔 것은 좋다
심볼 #3775 - 이 PR만으로 이슈를 닫으면 안 된다. 본문 그대로 open 유지

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

너의 추천
#3803이 dev에 올라간 뒤 바로 이어서 merge한다. #3775는 닫지 말고, 카탈로그 정규화만 landed로 남긴다. CI 초록 확인 후에만 올린다.

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

t and others added 5 commits September 7, 2026 03:44
Carry #3779 and cover incomplete terminal precedence and bounded serialization.

Co-authored-by: Ingwannu <ingwannu@users.noreply.github.com>
Normalize canonical Codex-forward custom ladders and defaults after metadata merging. Preserve explicit empty lists and prevent fresh custom projections from gaining max again during catalog merge.

Add existing-fixture coverage for provenance negatives, repeat sync, observed convergence, and direct model discovery. Keep arbitrary gateways, shared effort maps, and request-time policy unchanged.

Verification: source review and git diff --check only. Tests, typecheck, build, install, prepush, live proxy, and CI NOT RUN by explicit user instruction. Issue #3775 remains partial pending gateway provenance and exact Desktop runtime evidence.
@lidge-jun
lidge-jun force-pushed the codex/track2-canonical-efforts branch from 257312b to 2aac0b6 Compare September 6, 2026 19:17
@lidge-jun
lidge-jun force-pushed the codex/track2-protocol-foundation branch from 22db6b0 to 723e59e Compare September 6, 2026 19:17
@lidge-jun
lidge-jun changed the base branch from codex/track2-protocol-foundation to dev September 6, 2026 20:58
@lidge-jun
lidge-jun merged commit 0a4e4bc into dev Sep 6, 2026
30 of 33 checks passed
@lidge-jun
lidge-jun deleted the codex/track2-canonical-efforts branch September 6, 2026 20:59
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.

1 participant