Conversation
Codex resolves the global features.multi_agent_v2 override before catalog-level multi_agent_version pins. injectCodexConfig() never reconciled it, so a fresh OpenCodex install (multiAgentMode: v1) on a Codex home that had previously enabled v2 produced a catalog claiming v1 while new sessions actually ran v2 and spawned unreadable encrypted child tasks. The explicit mode selectors (ocx v2 mode, PUT /api/v2) already run the format-preserving transition; the injection path now does the same before taking the journal baseline. The reconcile lives in src/codex/inject/multi-agent-v2.ts so the inject.ts facade stays under its file-size ratchet cap. Validation-only injection and externally managed provider configs remain read-only. (cherry picked from commit 96dcf81)
(cherry picked from commit ab917f3)
The reconcile ran before withCodexWriteLock, so a later ambiguous-baseline, journal, or lock refusal left config.toml changed while the injection failed, and a competing writer could land between the transition and the commit. The feature transition now runs inside the coordinated write boundary: one preimage captured under the lock covers it and the artifact commit, and any later refusal restores the exact original bytes, flag included. The committed bytes are re-derived from the post-transition input so the injection cannot re-enable the flag it just turned off. The derivation pipeline moves to inject/plan.ts so inject.ts stays under its file-size ratchet cap, and the reconcile tests move to codex-inject-v1-reconcile.test.ts for the same reason. New regressions prove a post-reconcile failure restores byte-exact config and feature state, and that a competing writer is serialized out between the transition and the commit. (cherry picked from commit 487c1cf)
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> (cherry picked from commit 39fb323)
(cherry picked from commit 1c49c12)
(cherry picked from commit a65fb3e)
…efusal rollback (cherry picked from commit 02ae3e6)
The models.dev effort snapshot was only ever refreshed after a snapshot had already answered a request-time ladder read, so a missing or corrupt snapshot was never bootstrapped. Catalog sync now refreshes the snapshot for configured gated destinations before gathering the catalog, keeping the models.dev fetch off the request path. (cherry picked from commit a58bee8)
(cherry picked from commit 7953e61)
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
리뷰 · 우선순위 54 / 80이 PR은 라인 - 메인테이너의 판단이 필요한 지점 이 네 이슈를 한 바닥 PR로 합치는 것이 리뷰·머지 비용을 줄이는지, 아니면 v1 reconcile 경계 / retained-table 거절 / catalog reasoning bootstrap / collaboration probe를 층마다 쪼개는 편이 감사하기 쉬운지. 또 원본 PR들을 이 스택에 흡수된 시점부터 close·supersede 할지, 남은 커밋만 남긴 채 열어둘지. 너의 추천 draft는 유지한 채, 이 헤드( 이 댓글은 grok-bot이 작성했습니다 |
⏳ DRAFT
What to do
This pull request was already a draft. Its draft status will be preserved after every issue above is resolved. |
|
Superseded by #5609, which is open and not yet merged. The v1 reconcile, which is the same change as #4936, is carried there once. The |
Summary
Combine the Codex client configuration and catalog compatibility fixes from #4936, #5450, #5293, and #5298 into the bottom layer of one review stack targeting
dev.The next stack layer adds Responses Lite V2 forwarding, account-refusal recovery, and served-model diagnostics. Original PRs remain open; this PR does not claim their unrelated changes are superseded.
Related maintainer carry
Shared contribution: #5450 is also carried by maintainer-owned #5506. The retained-provider production file is identical between the two draft replacements; the corresponding regression is registered in a sibling file here. This source remains consolidated; reconcile this layer against dev when the maintainer carry lands.
Verification
c37f4f5f43351feee3ca46736770429ccbd068dfusing merge commits; current head73aa8d523213c1d7107844e61398aae94ecafa24.Checklist
Review readiness