Skip to content

fix(catalog): retain default-only static provider models - #3717

Closed
lidge-jun wants to merge 5 commits into
devfrom
codex/lane-b-04-static-default
Closed

fix(catalog): retain default-only static provider models#3717
lidge-jun wants to merge 5 commits into
devfrom
codex/lane-b-04-static-default

Conversation

@lidge-jun

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

Copy link
Copy Markdown
Owner

Summary

A provider configured with liveModels: false and only defaultModel previously produced an empty static catalog. Seed that default when the effective explicit models list is absent or empty, including defaults supplied by the existing preset-enrichment policy, then retain the ordered union with retainModels.

Nonempty explicit lists keep precedence. Forward-auth providers keep their native path, and static gathering still avoids OAuth refresh and upstream model requests. Selection and visibility filters continue to apply.

This is the static-catalog portion of #3659 at ff4e5cd, preserving gqchen's source authorship. The provider-workspace Delete/Hide controls follow in a dependent PR. Original #3659 remains open until both capabilities are verified on dev.

Stack: this parent targets dev; the upcoming model-controls child targets this branch. Review and verify both heads, then land bottom-up and retarget the child before parent cleanup.

Verification

  • Independent source review found no blocking issue in the seed, auth/forward boundaries or source-of-truth update.
  • Exact head b069aef passed hosted CI 33994374952, including all actual producer jobs. Remote restored-source catalog checks passed 285/0, root typecheck/privacy exited 0, and the unchanged-input 425-page docs build was reused.
  • Original pre-seed source produced three expected default-seed assertion failures; genuine no-default, strict custom MiMo transport, explicit-list, retention, forward and OAuth controls stayed green. The old 281/1 run and the auxiliary collector's over-strict expected-red-count error are retained separately; neither was relabelled passing.
  • Provider-workspace controls and their rendered verification remain in the dependent child. This parent stays draft until the cycle's landing gates are reconciled. No local suite, typecheck or build was run, per owner instruction.

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.

Co-authored-by: gqchen 276851182@qq.com

t and others added 3 commits September 6, 2026 06:21
Carry the static catalog and documentation portion of #3659 at ff4e5cd. The provider workspace controls follow in a dependent PR. Source implementation includes commit 34ace94.

Co-authored-by: gqchen <276851182@qq.com>
Add real gather controls for omitted/empty models, retained-id deduplication, explicit-list precedence, OAuth/forward no-request paths, and authoritative empty live discovery. Align eight-language static documentation and the source of truth.

Co-authored-by: gqchen <276851182@qq.com>
@coderabbitai

coderabbitai Bot commented Sep 5, 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 5, 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 5, 2026
t and others added 2 commits September 6, 2026 06:54
The legacy Go fixture already receives a registry default under existing ownership rules. Require exactly that singleton under static seeding, with no metadata roster or network calls. Keep genuine no-default emptiness and add strict custom MiMo transport negatives. Production seeding and ownership rules remain unchanged.

Co-authored-by: gqchen <276851182@qq.com>
@lidge-jun

Copy link
Copy Markdown
Owner Author

리뷰 · 우선순위 61 / 80

이 PR은 #3659(gqchen)의 정적 카탈로그 조각만 먼저 dev로 올리는 B-lane 부모입니다. 지금 devsrc/codex/catalog/provider-fetch.ts는 Vertex(adapter===google + googleMode===vertex)일 때만 빈 modelsdefaultModel을 심습니다. 그래서 liveModels: false이고 models가 비어 있거나 없고 defaultModel만 있는 일반 프로바이더는 정적 카탈로그가 비어 버립니다. 이 PR은 seedStaticDefault를 같은 조건에 추가해, 암시 기본값 → modelsretainModels 순서의 중복 제거 합집합을 만듭니다. 명시적 비어 있지 않은 models는 그대로 우선하고, forward-auth는 기존처럼 정적 시드를 타지 않으며, 정적 경로는 OAuth refresh·upstream /models를 치지 않습니다.

코드 변경은 작습니다. provider-fetch.ts 시드 한 곳과 주석, tests/codex-integration/codex-catalog.test.ts의 omitted/empty·retain 중복·OAuth 무호출·forward bypass·live 성공-빈 목록이 default fallback을 켜지 않음·Go 상속 default vs 커스텀 MiMo 무default, 그리고 providers/codex-integration 문서(다국어)와 structure/03_catalog-and-subagents.md입니다. 자식 #3721(codex/lane-b-04-management)이 이 브랜치를 베이스로 Delete/Hide UI를 이어 갑니다. 본문은 원본 #3659를 두 능력이 dev에 검증되기 전에는 닫지 말라고 합니다. draft이고 hosted CI는 초록입니다.

우선순위 61인 이유다. 카탈로그가 비는 실제 버그이고 B-lane #3659의 안전한 바닥이지만, A 스택·Desktop #3646/#3720만큼 급한 사용자 화재는 아닙니다. 스택 랜딩(부모 먼저, 자식 retarget)이 필요하고 draft입니다.

경로/심볼 - src/codex/catalog/provider-fetch.ts seedStaticDefault - liveModels===false && models 길이 0 && defaultModel 있을 때 Vertex 시드와 OR.
경로/심볼 - 같은 파일 configuredIds - (seedVertexDefault || seedStaticDefault) && defaultModel 후 models·retainModels.
경로 - tests/codex-integration/codex-catalog.test.ts - 정적 default-only·OAuth/fetch 0회·명시 목록 우선·forward·authoritative empty live.
경로 - docs-site reference/configuration/providers.md + guides/codex-integration.md (다국어) - 빈/생략 models일 때 default+retain 시드 문장으로 교체.
경로 - structure/03_catalog-and-subagents.md - 정적 시드 SoT.
경로 - 스택 #3721 / 원본 #3659 - UI 자식과 원본은 부모 단독 랜딩으로 close하지 말 것(본문).

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

  • 부모만 먼저 dev에 올릴지, #3721과 한 사이클로 bottom-up할지
  • preset enrichment로 생기는 inherited default(예: opencode-go kimi-k2.7-code)를 정적 시드에 포함하는 새 동작이 운영자 기대와 맞는지
  • 원본 #3659 close 시점: 부모만 vs 부모+자식 둘 다 검증 후(본문은 후자)
  • draft 유지 이유가 “landing gates 조정”뿐인지, 아직 막히는 게이트가 있는지

너의 추천
정적 시드만 보면 머지해도 됩니다. #3721 리뷰와 함께 스택으로 보고, 가능하면 부모를 먼저 dev에 올린 뒤 자식을 retarget하세요. #3659는 두 조각이 dev에 들어온 뒤에만 close-don't-rebase. gqchen Co-authored-by 유지. 미리보기 배포 없음.

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

@lidge-jun lidge-jun closed this Sep 5, 2026
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.

2 participants