Skip to content

fix(catalog): preserve Go efforts and independent picker ordering - #3700

Merged
lidge-jun merged 12 commits into
devfrom
codex/lane-b-03-ordering
Sep 5, 2026
Merged

fix(catalog): preserve Go efforts and independent picker ordering#3700
lidge-jun merged 12 commits into
devfrom
codex/lane-b-03-ordering

Conversation

@lidge-jun

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

Copy link
Copy Markdown
Owner

Summary

Canonical OpenCode Go rows retain their configured reasoning ladder in catalog generation and retention, without synthetic max/ultra additions. A nonblank bare ID enables complete picker ordering. OpenCodex keeps separate natural-priority guidance candidates; native Codex advertisements follow display priority and may differ. Exact-name override eligibility is not limited to the advertised five.

Fresh rows no longer inherit a previous template's private guidance rank, so repeated healthy writes preserve the configured guidance selection. One runtime normalizer handles the existing passthrough modelPickerOrder value at all writer boundaries, ignoring malformed containers/members consistently with legacy behavior.

Carries all four source commits of #3571 through 0a935c5. voiys remains the source commit author and coauthor. Current contract text and all eight ordering guides distinguish OpenCodex guidance from native advertisement.

Stack — verified combined landing

Layer PR Scope
1 #3685 (merged) Manual/native visibility
2 #3695 (merged) Persistent context selections
CI prerequisite #3713, included in this head Producer deadline authority after CI failure
3 this PR Go efforts and independent guidance/picker ordering
4 planned Model hide/delete and default-only sync
5 planned Fable 1M selector persistence

The exact head e59b730 includes #3713 head 8b5dbde as an ancestor. Its full hosted CI passed, so this PR lands both reviewed layers together on dev and preserves their commits. The standalone #3713 baseline run remains separately recorded; it is not relabelled green. Source #3571 closes only after dev ancestry and latest-source equivalence are verified. The refreshed source head 09acfba rebases the same catalog implementation/tests carried from 0a935c5; source attribution remains preserved.

Verification

  • Remote pinned Bun 1.4.0, head 4954eaa: affected catalog writer file 31 pass / 0 fail, 2,645 assertions; root typecheck passed; docs build produced 425 pages.

  • Real convergence and retained writers cover matched valid/malformed discovery conditions, full-array equality, exact efforts, repeated writes and unchanged OpenCodex natural guidance candidates. A dirty-template regression and isolated causal probe demonstrate the prior private-rank leak and its correction.

  • Independent code, fixture, repair and native-consumer contract reviews passed. The native-source audit is pinned and does not claim binary equivalence.

  • Actual official Codex 0.153.4 picker/effort capture accepted a generated catalog and showed native-first order and Muse High/Extra high. At final feature head 4954eaa, generated before/after catalogs were byte-identical to those captured, and both guidance rosters matched with zero network attempts. This is not a capture of native spawn tool descriptions.

  • CI 33986641840 passed the catalog-related verification but exposed an unrelated Lab deadline race, now fixed in parent fix(lab): preserve producer deadline authority through child close #3713. Combined exact-head CI 33989738843 completed successfully at e59b730: Linux four shards, macOS two shards, typecheck, GUI tests, privacy, storage/API checks and packaging/keyring jobs all passed. Optional Windows full-suite and macOS control lanes were deliberately skipped by the PR workflow; final Windows verification remains a separate integration gate. No local suite, typecheck or build was executed. Prior failed attempts remain in the implementation record and are not relabelled green.

  • Actual current-dev composition was verified separately without changing the green source head: merge candidate 33ed475 (tree 5dfe7175) passed remote CI=true bun run test: 19,606 pass / 0 fail / 15 skip, plus build/typecheck/privacy. After Logs feat(gui): carry composable Logs filters with responsive controls #3712 landed, final candidate 88a6704 (tree f1950aec) passed all dashboard tests, lint/i18n/build, five affected logs/management/CLI test files, root typecheck, privacy and docs build. Catalog, Lab, adapter and dependency identities match the full-suite baseline. The final tested tree matches GitHub’s merge candidate against dev cf6f307.

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: voiys matej2714@gmail.com

t and others added 3 commits September 6, 2026 02:52
Carry the full four-commit source PR #3571 at 0a935c5, including retained display and spawn rank corrections.

Source commits: e57a57d, d745d8a, 90eaadd, 0a935c5.

Co-authored-by: voiys <matej2714@gmail.com>
@coderabbitai

coderabbitai Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 19 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Team

Run ID: f28306e4-5a47-419f-bf3f-406c8847bc1f

📥 Commits

Reviewing files that changed from the base of the PR and between cf6f307 and e59b730.

📒 Files selected for processing (26)
  • devlog/_plan/260906_lane_b_catalog_stack/030_ordering.md
  • devlog/_plan/260906_lane_b_catalog_stack/031_ordering_build.md
  • devlog/_plan/260906_lane_b_catalog_stack/032_ordering_repair.md
  • devlog/_plan/260906_lane_b_catalog_stack/033_ordering_control.md
  • devlog/_plan/260906_lane_b_catalog_stack/034_verification_followup.md
  • docs-site/src/content/docs/fr/guides/model-ordering.md
  • docs-site/src/content/docs/guides/model-ordering.md
  • docs-site/src/content/docs/ja/guides/model-ordering.md
  • docs-site/src/content/docs/ko/guides/model-ordering.md
  • docs-site/src/content/docs/reference/configuration/providers.md
  • docs-site/src/content/docs/ru/guides/model-ordering.md
  • docs-site/src/content/docs/tr/guides/model-ordering.md
  • docs-site/src/content/docs/zh-cn/guides/model-ordering.md
  • docs-site/src/content/docs/zh-tw/guides/model-ordering.md
  • scripts/test-layout/layout.json
  • src/codex/catalog/sync.ts
  • src/codex/convergence.ts
  • src/lab/fabric/producer-isolate.ts
  • src/types/config.ts
  • structure/03_catalog-and-subagents.md
  • tests/codex-integration/catalog-full-picker-order.test.ts
  • tests/codex-integration/catalog-go-exact-efforts.test.ts
  • tests/codex-integration/codex-catalog.test.ts
  • tests/codex-integration/codex-v2-gate.test.ts
  • tests/fixtures/test-layout-expected.json
  • tests/lab/lab-fabric-producer-deadline.test.ts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@lidge-jun
lidge-jun changed the base branch from codex/lane-b-02-context to dev September 5, 2026 18:07
@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
@lidge-jun

Copy link
Copy Markdown
Owner Author

리뷰 · 우선순위 62 / 80

이 PR은 OpenCode Go 카탈로그 줄이 설정한 reasoning effort 사다리를 그대로 지키게 하고, modelPickerOrder에 맨몸(native) id가 들어가면 피커 전체 표시 순서를 바꿀 수 있게 합니다. 지금 dev HEAD는 7e7ab281c(package 2.44.0)이고, 방금 #3691 Antigravity OAuth 401과 #3688 OAuth 설정 유지가 들어갔습니다. Lane B는 #3685 visibility → #3695 context 기억까지 이미 dev에 있습니다. 이 변경은 그 다음 3층(ordering)입니다. 원본 #3571(voiys) 네 커밋을 carry하고, Go에 가짜 max/ultra를 붙이던 길을 끊습니다.

왜 지금 dev에 필요한가. 지금 deriveEntry/merge는 Go 줄에도 다른 라우티드 모델처럼 mock 상위 티어를 붙일 수 있습니다. 그러면 피커·서브에이전트에 upstream이 모르는 effort가 보이고, override가 틀어집니다. 또한 modelPickerOrder는 예전엔 라우티드만 움직이고 native id는 무시했습니다. 사용자가 “네이티브 먼저, Go는 뒤”처럼 전체 피커를 정렬하고 싶어도 못 했습니다. 이 PR은 (1) provider === "opencode-go"preserveExactReasoning으로 설정 배열을 그대로 두고, (2) 공백 아닌 bare id가 있으면 applyFullModelPickerOrder로 표시 priority만 바꾸고 opencodex_spawn_priority는 자연 순위를 유지합니다. discovery가 깨진 retained 경로에서도 featured/픽커 순위를 현재 설정으로 다시 계산합니다.

Grok 스택 #3698#3703과 무관합니다. 그쪽은 Grok/xAI 어댑터·도구 쪽이고, 이 PR은 src/codex/catalog/sync.ts·convergence.ts·카탈로그 테스트입니다. C-lane OAuth(#3691/#3688)와도 런타임이 겹치지 않습니다. 다만 docs-site/.../providers.md 끝부분에 A-lane이 넣은 Go agent-message 절과, 이 PR이 붙인 Go reasoning efforts 절이 같이 붙어서 문서 한 파일만 CONFLICT입니다. 코드(sync.ts 등)는 merge-tree 기준 깨끗합니다. #3702(D-lane tool aliases)와도 파일이 안 겹칩니다. types/config는 JSDoc만 고쳤고, types/config 분할 캠페인에 무효화될 변경이 아닙니다.

src/codex/catalog/sync.ts preserveExactReasoning - Go면 exact combo처럼 effort를 보존합니다. 합성 max/ultra를 Go에 안 붙입니다.

src/codex/catalog/sync.ts normalizeModelPickerOrder / applyFullModelPickerOrder - writer 경계에서 비배열·빈 문자열·공백만 항목을 걸러 내고, bare native id가 있을 때만 전체 피커 표시 순서를 켭니다. spawn 후보는 그대로입니다.

src/codex/catalog/sync.ts retained merge - 디스크에 남은 줄도 현재 featured·accountSelectors로 자연 순위를 다시 잡고, 그 다음 표시 순서를 적용합니다. outage 때 옛 픽커 순위가 굳지 않게 합니다.

src/types/config.ts modelPickerOrder JSDoc - 라우티드-only와 complete-picker opt-in을 문장으로 나눕니다. 스키마 필드 추가는 없습니다.

경로 docs-site/.../providers.md - 현재 dev문서 CONFLICT 하나. Go session/agent-message 절(이미 dev)과 Go reasoning efforts 절(이 PR)을 둘 다 남기면 됩니다. 레이아웃 JSON 두 파일은 양쪽이 건드리지만 auto-merge 가능합니다.

경로 테스트 catalog-go-exact-efforts.test.ts / catalog-full-picker-order.test.ts - Go 사다리·writer(convergence/retained)·malformed passthrough·5후보 불변을 직접 고정합니다. layout manifest에도 등록됐습니다.

경로 원본 #3571 - 아직 OPEN입니다. 이 PR이 dev에 안착한 뒤 rebase 말고 landed 닫기입니다.

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

  • draft 해제 전에 providers.md CONFLICT만 수동으로 양쪽 절을 이어 붙일지, retarget/rebase로 정리할지
  • 원본 #3571을 CI 초록 직후 바로 닫을지, 머지 커밋 확인 후 닫을지
  • Lane B 4층(hide/delete·default-only sync)을 ordering 직후에 붙일지

너의 추천
카탈로그 정확도 버그이고 Grok/C-lane과 독립입니다. providers.md 문서 충돌만 해소한 뒤 draft 해제 → hosted CI 초록이면 머지를 추천합니다. 머지 직후 #3571Landed via #3700 at <commit> + landed-via-maintainer로 닫으세요. #3702와 서로 기다릴 필요 없습니다.

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

@lidge-jun
lidge-jun changed the base branch from dev to codex/lane-b-ci-fabric-deadline September 5, 2026 20:19
@lidge-jun
lidge-jun changed the base branch from codex/lane-b-ci-fabric-deadline to dev September 5, 2026 20:47
@lidge-jun
lidge-jun marked this pull request as ready for review September 5, 2026 21:01
@lidge-jun
lidge-jun requested a review from Ingwannu as a code owner September 5, 2026 21:01
@lidge-jun
lidge-jun changed the base branch from dev to codex/lane-b-ci-fabric-deadline September 5, 2026 21:01
@lidge-jun
lidge-jun changed the base branch from codex/lane-b-ci-fabric-deadline to dev September 5, 2026 21:01

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e59b730b1d

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +165 to +168
if (message.type === "activity" || message.type === "result") {
const at = budgetNow();
const expired = expiredDeadline(at);
if (expired) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Check elapsed deadlines before protocol errors

When the event loop is delayed past the inactivity or total deadline and the producer's next message is type: "error", the deadline check is skipped because it only covers activity and result messages. The protocol error settles the promise immediately, so the subsequent timer callback is ignored and an earlier environment timeout is incorrectly recorded as a sandbox or harness failure, changing Lab outcome and retry evidence. Compare budgetNow() with the deadlines before accepting every terminal protocol outcome.

AGENTS.md reference: src/AGENTS.md:L17-L17

Useful? React with 👍 / 👎.

@chatgpt-codex-connector

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-05T21:07:35.005702Z e59b730 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 merged commit 7635617 into dev Sep 5, 2026
40 of 47 checks passed
@lidge-jun
lidge-jun deleted the codex/lane-b-03-ordering branch September 5, 2026 21:09
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