Skip to content

feat(catalog): preserve native display-name overrides - #3820

Merged
lidge-jun merged 3 commits into
devfrom
codex/axis5-native-display
Sep 7, 2026
Merged

feat(catalog): preserve native display-name overrides#3820
lidge-jun merged 3 commits into
devfrom
codex/axis5-native-display

Conversation

@lidge-jun

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

Copy link
Copy Markdown
Owner

Summary

  • Carry feat(catalog): support native OpenAI display name overrides #3627: apply configured display names to supported bare native OpenAI catalog rows in retained synchronization and convergence, preserving model IDs, capabilities and routing.
  • Restore owned labels before normalization and remove markers from template clones. External-name preservation remains subject to the existing pinned Astra normalization policy; writer-level set/change/reset and serialization regressions are included.

Manual chain: #3820 native labels → #3821 provider JSONL → #3824 discovered-name editor. No native stack is registered.

Co-authored-by: Éverton Toffanetto evertondgn@hotmail.com

Verification

  • Final feature candidate f51ec2421c49df0fd4eac8a9a56a6283b426387d: Cross-platform CI, all 25 jobs successful. Only the unsuccessful Mac jobs were replayed; passing jobs were reused. Initial timeout/timing failures remain recorded, not claimed fixed.
  • Late platform changes on dev 7fdb0e977 have zero file overlap with this axis and passed 26-job platform CI. Independent compatibility audit passed.
  • Prospective merged tree 85c9b25818a93859a6d6fc824e2ed0678da46c8f: 370 focused tests passed on isolated Linux with project Bun 1.4.0 (344 catalog/CLI + 26 editor). This is focused merged-tree evidence, distinct from full CI on the feature head.
  • No local test suites/typecheck/build ran, per owner instruction. Pushes used --no-verify. Documentation was source-reviewed; no docs build is claimed by this axis.

Checklist

  • Scope stays focused and avoids unrelated cleanup.
  • Docs were updated where needed.
  • Security-sensitive changes were reviewed for secrets, auth, and unsafe defaults; authentication and routing are unchanged.

Maintainer integration

The owner explicitly authorized admin integration into dev. Lower-layer independent CI was deliberately deferred in favor of the tested combined head; no missing or cancelled lower check is presented as green. Independent source reviews and late-base compatibility review passed. This is maintainer integration, not self-approval.

t and others added 2 commits September 7, 2026 07:37
Record source-delta audits, manual PR delivery and final-head CI strategy.

Co-authored-by: Éverton Toffanetto <evertondgn@hotmail.com>
Co-authored-by: Zig Zag <shafishahin786@proton.me>
Co-authored-by: 투린 <me@turin.my>
…t [skip ci]

Carry PR #3627 from f699ec7,
using merge base cf9f662.
Keep the source runtime changes and existing Astra normalization intact.
Qualify external-name restoration in all four provider docs and catalog SOT.
Add Astra external-edit coverage and real retained/convergence writer coverage.

Local tests, typecheck and builds NOT RUN by owner mandate.
Static diff inspection and git diff --check passed; remote CI belongs to parent.

Co-authored-by: Éverton Toffanetto <evertondgn@hotmail.com>
@coderabbitai

coderabbitai Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

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 enhancement New feature or request label Sep 6, 2026
@lidge-jun

Copy link
Copy Markdown
Owner Author

리뷰 · 우선순위 64 / 80

이 PR은 Axis5 체인 1층이다. 지금 dev HEAD(137d6a727, package 2.46.0 open-dev)에는 이미 제공자 쪽 modelDisplayNames API와 HTTP/디스커버드 모델 라벨 계약(#3212)이 있다. 그런데 로컬 Codex 카탈로그의 "접두사 없는 네이티브 GPT 행"(예: gpt-6-astra)에는 그 맵이 다시 안 붙는다. 운영자가 providers.openai.modelDisplayNames에 예쁜 이름을 넣어도, 시작 동기화(src/codex/catalog/sync.ts)와 수렴(src/codex/convergence.ts)이 그 이름을 다시 바르지 않아서, 네이티브 행은 원래 Codex 표시 이름으로 돌아간다. 이 PR은 그 빈칸만 메운다. 모델 ID, 라우팅, 능력(capabilities), 순서, 계정 한정 행, HTTP 목록, 가상 *-pro 행은 건드리지 않는다고 문서와 코드가 같이 말한다.

동작은 관찰 상태 병합(mergeCatalogEntriesFromObservedState)에 nativeDisplayNames 인자를 추가하는 방식이다. retained sync 작성자와 convergence의 prepareCatalog가 둘 다 config.providers[openai].modelDisplayNames를 같은 자리로 넘긴다. 적용할 때는 카탈로그에만 opencodex_native_display_name 마커({ slug, original, applied })를 남기고 display_name을 바꾼다. 다음 병합 전에 restoreNativeDisplayName이 입력을 떼어내고, 슬러그가 같고 현재 이름이 아직 applied와 같을 때만 original로 되돌린다. 그래서 설정을 지우면 "우리가 덮어쓴 이름"만 원상복구되고, 사용자가 외부에서 다른 이름으로 바꾼 경우는 기존 네이티브 메타데이터 정규화 규칙을 그대로 탄다. 문서가 Astra(gpt-6-astra) 고정 이름 예외를 네 언어로 분명히 적어 둔 점도 좋다.

템플릿/클론 경로도 조심했다. deriveEntry와 버전 정렬 루프에서 오버레이 마커를 지워서, 네이티브 행의 표시 이름 기록이 콤보·계정 복제 행으로 새지 않게 했다. 테스트는 순수 병합뿐 아니라 retained/convergence 작성자 경로를 test.each로 돌려서, 한쪽 호출자의 nativeDisplayNames 인자만 빠져도 실패하도록 잠갔다. 직렬화 왕복, set/change/reset, Astra 외부 편집 회귀까지 넣은 것은 1층 PR치고 증거가 두껍다. 원본 기여는 #3627(Éverton Toffanetto) 캐리다.

다만 이 레이어만으로는 GUI에서 네이티브 행 이름을 고칠 버튼이 생기지 않는다. Name 편집기는 3층 #3824가 디스커버드 모델에만 붙인다. 그래서 "설정 파일/API로 네이티브 라벨을 넣고, 카탈로그가 그걸 유지한다"는 계약이 이 PR의 전부다. 로컬 스위트는 작성자 지침으로 안 돌렸고 lower-layer CI는 [skip ci]로 미룬 상태라, 최종 결합 HEAD의 Cross-platform CI가 진짜 증거다.

라인 sync.ts restoreNativeDisplayName - 복원 조건이 "현재 display_name === applied"일 때만 original로 돌아간다. 맞는 설계지만, 외부 도구가 applied와 똑같이 생긴 다른 문자열을 쓴 경우에는 "우리 오버레이"와 구분이 안 된다. 테스트가 그 경계를 문서화했는지 한 번 더 보면 좋다.
경로 src/codex/catalog/sync.ts / convergence.ts JSDoc - 새로 붙은 블록 주석 일부가 포르투갈어다(Cria/Mescla/Prepara). 주변 영어 주석과 섞여서 이후 기여자가 읽기 힘들다. 영어 한 줄 요약으로 맞추는 편이 낫다.
경로 structure/03_catalog-and-subagents.md - 오버레이 계약을 구조 문서에 남긴 것은 좋다. 다만 HTTP 목록/가상 pro 행 제외가 GUI Name 버튼 범위(#3824의 !native && !custom)와 어떻게 이어지는지는 체인 리뷰에서만 보이므로, 1층 merge 노트에 한 줄 연결해 두면 헷갈림이 줄어든다.
경로 검증 - 작성자가 로컬 test/typecheck/build를 금지했고 lower CI를 스킵했다. merge 결정은 최종 결합 HEAD CI에만 묶어야 한다. 이 레이어 단독 초록을 증거로 쓰면 안 된다.

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

너의 추천
1층으로 merge 후보로 본다. 표시 이름만 건드리고 ID/라우팅/capabilities는 보존하며, retained+convergence 양쪽 writer 테스트가 있다. merge 전에 포르투갈어 JSDoc만 영어로 정리하고, 최종 결합 HEAD CI가 초록인지 확인한 뒤 #3821/#3824를 이어서 랜딩하면 된다. types/config 분할에 무효화되는 PR이 아니므로 close-don't-rebase 대상이 아니다.

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

Integrate verified axes two and three before final axis five validation.

Co-authored-by: Éverton Toffanetto <evertondgn@hotmail.com>
@lidge-jun
lidge-jun marked this pull request as ready for review September 7, 2026 01:01
@lidge-jun
lidge-jun requested a review from Ingwannu as a code owner September 7, 2026 01:01
@lidge-jun
lidge-jun merged commit 1e16fe4 into dev Sep 7, 2026
11 of 12 checks passed
@lidge-jun
lidge-jun deleted the codex/axis5-native-display branch September 7, 2026 01:01
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 7, 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-07T01:02:59.081345Z e337374 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant