fix(cross-model): accept provider-qualified codex model ids in cross_model_model - #1501
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 25118128cf
ℹ️ About Codex in GitHub
Codex has been enabled to automatically 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 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
Nice fix on this @DennisTraub. I'm just going to have an agent rebase against main as I merged in a huge refactor just now. |
90d1b25 to
1511024
Compare
…exit code Cover `openai/gpt-5.6-sol` alongside the dot form in all three route suites, assert exit 2 plus the stderr text in the pov test to match its siblings, and name the namespaced codex form in the two runtime cross-model references. Claude-Session: https://claude.ai/code/session_01NnNYfFbyRAx769RvcfQ4zC
|
I pushed 2 small fixes |
|
Thanks for the quick merge - and for creating this plugin in the first place. I use it for almost everything I do and can't imagine working without it anymore! Happy to keep contributing if I come across anything else. |
* fix(ce-commit-push-pr): root PR stacks on the parent PR the user named (EveryInc#1365) * fix(ce-babysit-pr): decode gh output as UTF-8 on Windows (EveryInc#1368) * fix(ce-prototype): cover decisions settled by seeing, not just driving (EveryInc#1369) * perf(tests): cut suite wall time by splitting the largest test file (EveryInc#1370) * fix(tests): stop the cross-model routes test reading the working tree (EveryInc#1371) * fix(ce-doc-review): ask only where a real choice exists, batch the rest (EveryInc#1373) * feat(ce-prototype): add a seeing-mode craft floor and durable storage (EveryInc#1374) * fix(ce-pov): stop the panel guessing the cross-model host argument (EveryInc#1375) * chore(cross-model): pin the Grok peer to 4.6 (EveryInc#1376) * docs(skills): rewrite user skill pages for accuracy and clearer use (EveryInc#1377) * fix(commit): append known plan unit ids to commit subjects (EveryInc#1379) * fix(ce-work): stop sandboxed workers committing in linked worktrees (EveryInc#1382) * fix(ce-doc-review): edit HTML plans in native format (EveryInc#1381) * fix(ce-code-review): cover adversarial after quota or auth no-review (EveryInc#1380) * fix(skills): correct a rejected dispatch instead of spending the fallback (EveryInc#1383) * fix(ce-compound): find Claude sessions started outside the repo root (EveryInc#1378) * ci(windows-native): retry peer-job-runner smoke on ctypes flake (EveryInc#1384) * fix(ce-debug): stop asking at the handoff, stop shipping unoffered work (EveryInc#1385) * docs(solutions): record why skill gates state conditions, not git commands (EveryInc#1386) * fix(skills): drop the residual-findings record file for real sinks (EveryInc#1387) * fix(ce-doc-review): run the cross-model pass when CROSS_MODEL_PEERS is unset (EveryInc#1389) * fix(ce-proof): sync with current Proof v3 contract (EveryInc#1390) * fix(skill-authoring): make goal-first the default when authoring and reviewing skills (EveryInc#1391) * fix(cross-model): let reviews run on Fable and pin model/effort from CE config (EveryInc#1392) * docs(cross-model): point superseded peer benchmarks at the luna/xhigh decision (EveryInc#1393) * fix(cross-model): discover the Codex.app-bundled codex CLI and name the peer-CLI requirement (EveryInc#1395) * feat(cross-model): add cross_model_review_mode checkout egress gate (EveryInc#1396) * fix(ce-compound-refresh): compare knowledge-track learnings against guidance they name (EveryInc#1399) * docs(solutions): capture the named-guidance contradiction-check learning (EveryInc#1400) * fix(ce-compound): prefer the repo's own frontmatter vocabulary over the Rails-era enums (EveryInc#1394) * fix(ce-work): stop asking about branches before starting work (EveryInc#1397) * fix(review): answer covered cases on skill prose with the condition, not a patch (EveryInc#1401) * fix(scratch): fall back to $TMPDIR when /tmp cannot host the scratch root (EveryInc#1398) * feat(ce-skill-work): repo-local skill for authoring, editing, reviewing, and responding to review on skills (EveryInc#1402) * fix(ce-pov): reject non-final peer positions instead of folding them in (EveryInc#1403) * feat(manifest): add Agent Plugins v1.0.0 manifest support (EveryInc#1345) * chore: release main (EveryInc#1354) * fix(ce-work): run cross-model verification on warm checkouts (EveryInc#1404) * fix(ce-skill-work): author for Sol/Fable, not Opus-era procedure (EveryInc#1408) * docs(skill-design): retarget stale learning citations (EveryInc#1409) * fix(ce-setup): support read-only sandboxes (EveryInc#1407) * fix(ce-skill-work): require pointer descriptions (EveryInc#1410) * chore: release main (EveryInc#1405) * fix(ce-work): let a project-defined shipping process override ce-commit-push-pr (EveryInc#1416) * fix(ce-doc-review): state the CROSS_MODEL_PEERS gate as a condition at the gate (EveryInc#1421) * fix(ce-strategy): ground the interview in the repo and share the file safely (EveryInc#1419) * fix(ce-babysit-pr): fall back for private ref 404 (EveryInc#1418) Co-authored-by: Trevin Chow <trevin@trevinchow.com> * fix(ce-commit-push-pr): make medium and large PR descriptions scannable (EveryInc#1422) * chore: release main (EveryInc#1420) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix(ce-plan): make Goal Capsule Objective outcome-shaped with a Means slot (EveryInc#1424) * fix(manifest): drop Agent Plugins $schema so Codex stops truncating skills at 8KB (EveryInc#1426) * fix(manifest): also block Agent Plugins $schema while skill frontmatter is non-conformant (EveryInc#1427) * chore: release main (EveryInc#1425) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * docs(solutions): capture why the Agent Plugins $schema is a host routing switch (EveryInc#1428) * fix(skills): Make CE portable on no-checkout / shared-workspace hosts (EveryInc#1429) Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Trevin Chow <tmchow@users.noreply.github.com> * chore: release main (EveryInc#1430) * docs(readme): fix Grok Bot install instructions (EveryInc#1431) * docs(readme): fix Grok Bot install path (EveryInc#1432) * fix(ce-babysit-pr): no unasked base merges, 91% smaller, pipelined stacks (EveryInc#1433) * docs(skill-design): 8KB is a ceiling, not the target, in the size-restructure playbook (EveryInc#1437) * fix(ce-skill-work): savings come from structure, not squeezed sentences (EveryInc#1460) * fix(ce-strategy): 53% smaller SKILL.md, references carry the interview and update run (EveryInc#1436) * fix(ce-strategy): STRATEGY.md is the agreed shared project doc (EveryInc#1459) * docs(skill-design): delegating skills need a live eval, not a fake-boundary one (EveryInc#1462) * fix(ce-commit-push-pr): write the scope map first and audit the opening against it (EveryInc#1457) * fix(ce-proof): 62% smaller SKILL.md, references carry the API and workflows (EveryInc#1443) * docs(skill-design): record the three relocation failures from the 8KB sweep (EveryInc#1453) * fix(ce-handoff): 60% smaller SKILL.md, references carry create and resume (EveryInc#1446) * fix(ce-handoff): separate the writing agent's voice from the user's in handoffs (EveryInc#1464) * fix(ce-explain): 28% smaller SKILL.md, orchestration moves to a reference (EveryInc#1451) * fix(ce-debug): 50% smaller SKILL.md, references carry the phase procedures (EveryInc#1449) * fix(ce-prototype): 43% smaller SKILL.md, references carry scoping and build (EveryInc#1444) * fix(ce-sweep): 57% smaller SKILL.md, references/run.md carries the phases (EveryInc#1439) * fix(ce-debug): name the fixed-but-unpushed pipeline outcome at both ends (EveryInc#1463) * fix(ce-retune): 39% smaller SKILL.md, references carry the rest (EveryInc#1438) * fix(ce-commit-push-pr): 69% smaller SKILL.md, references carry the rest (EveryInc#1454) * fix(ce-compound-refresh): 70% smaller SKILL.md, references carry the rest (EveryInc#1442) * fix(ce-doc-review): 65% smaller SKILL.md, references carry the rest (EveryInc#1450) * fix(ce-optimize): 82% smaller SKILL.md, references carry the phase procedures (EveryInc#1456) * fix(ce-setup): 44% smaller SKILL.md, references carry the rest (EveryInc#1445) * fix(ce-dogfood): 67% smaller SKILL.md, references/phases.md carries the procedure (EveryInc#1447) * fix(ce-product-pulse): 51% smaller SKILL.md, references carry config and run (EveryInc#1448) * fix(ce-ideate): 84% smaller SKILL.md, references carry the phases (EveryInc#1455) * fix(ce-test-browser): 43% smaller SKILL.md, references carry the rest (EveryInc#1441) * fix(ce-debug): body enum names fixed-not-pushed like the producer and consumer (EveryInc#1466) * fix(ce-test-browser): resolve the dev-server port with a bundled script instead of a prose-emitted line (EveryInc#1468) * fix(ce-resolve-pr-feedback): 31% smaller SKILL.md, references carry the rest (EveryInc#1435) * fix(ce-resolve-pr-feedback): judge top-level PR comments, not only review threads (EveryInc#1467) * fix(ce-pov): 66% smaller SKILL.md, references carry the rest (EveryInc#1440) * fix(ce-explain): 32% smaller SKILL.md, the Phase 6 close moves to a required-read reference (EveryInc#1469) * fix(ce-debug): audit body pins by provenance, relocate what only wording held in the window (EveryInc#1472) * fix(ce-code-review): 86% smaller SKILL.md, four step references carry the rest (EveryInc#1471) * fix(ce-compound): 90% smaller SKILL.md, references carry the phases (EveryInc#1477) * fix(ce-work): 48% smaller SKILL.md, references carry the execution manual (EveryInc#1478) * fix(ce-plan): 71% smaller SKILL.md, five phase references carry the rest (EveryInc#1470) * fix(ce-plan): audit body pins by provenance, relocate what only wording held in the window (EveryInc#1475) * fix(ce-brainstorm): 86% smaller SKILL.md, six references carry the phases (EveryInc#1476) * fix(lfg): 72% smaller SKILL.md, six required-read references carry the rest (EveryInc#1479) * docs(skill-design): third-sweep learnings — place blocks by executing step, audit pins, size evals to reach (EveryInc#1483) * feat(skill-eval): host-CLI catalog for skill-behavior A/B (EveryInc#1484) * fix(skills): make model-invoked descriptions context pointers (EveryInc#1486) * fix(ce-brainstorm): ask only decisions the environment cannot settle (EveryInc#1487) * fix(skills): complete below-cap refactor sweep (EveryInc#1490) * fix(ce-resolve-pr-feedback): keep replies out of pending reviews (EveryInc#1491) * fix(skills): unify needs-human decision handoff (EveryInc#1492) * fix(cross-model): elevate peer start when host sandbox blocks provider network (EveryInc#1496) * fix: honor active model-config keys in skill runs (surface + salience) (EveryInc#1489) Co-authored-by: Trevin Chow <trevin@trevinchow.com> * fix(skills): remove obsolete dispatch context hook (EveryInc#1499) * fix(ce-optimize): keep multi-objective wins and screen expensive runs (EveryInc#1506) * fix(skills): load ce-plan and ce-work phases from references under the 8KB cap (EveryInc#1508) * test(cross-model): give the subprocess-heavy route suites a 30s per-test ceiling (EveryInc#1510) * fix(cross-model): accept provider-qualified codex model ids in cross_model_model (EveryInc#1501) * docs(agent-plugins): attribute the 8000-byte skill cap to its real owner (EveryInc#1511) * chore: release main (EveryInc#1434) * fix(ce-code-review): stop the reviewer template from embedding the diff twice (EveryInc#1512) * chore: release main (EveryInc#1513) * fix(skills): right-size ceremony for small work in ce-plan, ce-brainstorm, and ce-work (EveryInc#1514) * fix(cross-model): attest Grok Build as a host and bind its native CLI (EveryInc#1516) * fix(ce-doc-review): activate product-lens only on a product position (EveryInc#1517) * docs(ce-skill-work): size a behavioral eval to the decision, not the workflow (EveryInc#1520) * fix(cross-model): bound peer retries and raise review headroom (EveryInc#1519) * chore: release main (EveryInc#1515) * docs: refresh cross-model peer learnings (EveryInc#1521) * docs(solutions): refresh stale learnings against current code (EveryInc#1524) * docs(readme): make the README a front door, split detail into linked docs (EveryInc#1525) * fix(skills): match blocking questions from the current tool list (EveryInc#1526) * fix(lfg): invoke ce-code-review from the host catalog path (EveryInc#1527) * fix(orca): reconcile upstream 3.23.2 overlay * fix(ce-babysit-pr): defer to GitHub for trunk drift on managed stacks (EveryInc#1529) * fix(ce-code-review): collect async reviewer returns (EveryInc#1530) * chore: release main (EveryInc#1528) * fix(cross-model): drop empty Codex usage files and unblock heartbeat teardown (EveryInc#1533) * fix(skills): anchor the plan Objective above the component being changed (EveryInc#1535) * docs(solutions): record what a condition costs a literal host (EveryInc#1536) * fix(ce-skill-work): treat a removed concrete shape as a behavior change (EveryInc#1537) * fix(ce-code-review): keep missing peer config from skipping the pass (EveryInc#1538) * docs(strategy): add STRATEGY.md as the project's direction anchor (EveryInc#1539) * fix(concepts): give CONCEPTS.md a retention lifecycle (EveryInc#1540) * fix(peer-job-runner): keep Windows reap from killing a recycled pid (EveryInc#1541) * chore: release main (EveryInc#1534) * fix(ce-compound-refresh): preserve supported guidance across regressions (EveryInc#1542) * docs(guides): move skill catalog from docs/skills to skills/guides (EveryInc#1551) Co-authored-by: Cursor Agent <cursoragent@cursor.com> * perf(tests): reuse seed git fixtures to cut suite wall time (EveryInc#1548) Co-authored-by: Cursor Agent <cursoragent@cursor.com> * fix: preserve release automation ownership after upstream sync * fix(ce-work): parallelize independent work by default; fix(lfg): narrate progress and gate DONE (EveryInc#1558) Co-authored-by: Claude <noreply@anthropic.com> * fix(ce-compound): check in-repo absolute path citations (EveryInc#1561) Co-authored-by: Cursor Agent <cursoragent@cursor.com> * fix(guides): keep catalog out of the plugin skills tree (EveryInc#1571) Co-authored-by: Cursor Agent <cursoragent@cursor.com> * fix(ce-code-review): take review criteria from a repo-owned standards file (EveryInc#1572) * docs(guides): document the CODING_STANDARDS.md criteria file (EveryInc#1573) * fix(ce-work): scrub GIT_INTERNAL_SUPER_PREFIX from inherited git env (EveryInc#1564) * fix(ce-setup): detect the retired Codex tool map (EveryInc#1577) * fix(lfg): record unapplied review findings in the PR body, not tickets (EveryInc#1580) * fix(ce-plan): require a holdable Goal Capsule Objective (EveryInc#1592) * fix(ce-commit-push-pr): let a PR opening carry what motivates it (EveryInc#1576) * fix(ce-code-review): anchor reviewer checks to named canonical frameworks (EveryInc#1594) * fix(ce-commit-push-pr): catch a PR opening that names the mechanism (EveryInc#1595) * fix(ce-babysit-pr): keep stale-computation degrade off the settle clock (EveryInc#1568) Co-authored-by: Trevin Chow <trevin@trevinchow.com> * docs(ce-compound): capture at the completion checkpoint, not at merge (EveryInc#1596) * fix(ce-work): allow parallel subagent waves in a shared workspace (EveryInc#1598) * fix(codex): reconcile config-only plugin installs (EveryInc#1599) * fix(ce-debug): gate hypotheses on a runnable reproduction check (EveryInc#1600) * docs(lfg): align leftover-findings FAQ with PR-body checklist (EveryInc#1582) Co-authored-by: chouti <chouti@upai.com> * fix(ce-commit): make the stage-and-commit example PowerShell-safe (EveryInc#1587) Co-authored-by: Trevin Chow <trevin@trevinchow.com> * fix(ce-work): require evidence before unavailable review fallback (EveryInc#1578) Co-authored-by: Trevin Chow <trevin@trevinchow.com> * fix(ce-babysit-pr): persist review invariant rounds across heads (EveryInc#1585) Co-authored-by: Trevin Chow <trevin@trevinchow.com> * fix(ce-code-review): isolate testing reviewer mutation work (EveryInc#1584) Co-authored-by: Trevin Chow <trevin@trevinchow.com> * fix(ce-work): out-of-repo units have no git-derived completion (EveryInc#1583) Co-authored-by: Trevin Chow <trevin@trevinchow.com> * fix(ce-work): verify worktree snapshot fidelity before isolated dispatch (EveryInc#1602) * feat(harness): add opencode as a named peer and work engine (EveryInc#1604) Co-authored-by: Hally Maschine <hally@rocketable.com> * fix(ci): absorb the windows _ctypes flake without hiding real failures (EveryInc#1605) * chore: release main (EveryInc#1543) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix(orca): re-pin upstream baseline to 3.24.0 Record compound-engineering-v3.24.0 as the fork baseline, retarget the pending release identity to 3.24.0-orca.7, and regenerate skill-local role registries. --------- Co-authored-by: Trevin Chow <trevin@trevinchow.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Ruslan Kurkebayev <kurkebayev.ruslan@gmail.com> Co-authored-by: cmbish <carter.m.bish@gmail.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Trevin Chow <tmchow@users.noreply.github.com> Co-authored-by: Kevin Old <kevin@kevinold.com> Co-authored-by: Dennis Traub <dennis.traub@gmail.com> Co-authored-by: Kieran Klaassen <kieranklaassen@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: chouti <chouti@gmail.com> Co-authored-by: Saurabh <saurabhkagent@gmail.com> Co-authored-by: chouti <chouti@upai.com> Co-authored-by: Morgan Touverey Quilling <morgan@mtq.io> Co-authored-by: Thomas Steibl <309042+Rowdy@users.noreply.github.com> Co-authored-by: Hally Maschine <hally@rocketable.com>
Summary
A codex CLI pointed at a non-default
model_providermay require ids in that provider's own namespace. This PR enables compound-engineering users on such a host to run the cross-model pass at all, by pointingcross_model_modelat the id their endpoint actually serves.Today they cannot. The workers pin a bare OpenAI id, and
validate_model_overridematched onlycodex:gpt-*|codex:o[0-9]*, so the escape hatch shares the assumption of the default it exists to override. The peer sends the document, the endpoint 404s on the model name, and the pass logs a skip: egress paid, no review back. Measured againstbedrock-mantle.<region>.api.aws/openai/v1,gpt-5.6-luna404s there andopenai.gpt-5.6-solserves.The codex arm now allows a namespace segment while keeping the family anchor, so
bedrock.claude-opus-5on the codex route still exits 2 and a stock install is unaffected.The change touches the codex arm in
ce-doc-review,ce-code-review, andce-pov. Fixes #1500.Two things deliberately not changed
The
clauderoute keeps its arm as it is. Theclaudebinary carries an internal model table pairing each first-party id with its per-provider served id, so--model claude-opus-5appears to resolve to the provider's own form rather than being forwarded verbatim, which is whatcodexdoes with-m. I read that from the shipped binary and could not run it end to end, since the Claude Code install here is on the first-party API. Widening that arm would also mean teachingexpected_model_prefixto strip the namespace, or the served-model receipt degrades to a first-key match with a warning.ce-workis not touched. Its codex route cannot reach a custom provider at all, because the adapter passes--ignore-user-config, which drops the provider definition along with the reasoning tier it is there to control. codex then falls back to its built-in provider and fails on credentials before any model name is checked:An earlier revision widened its validator for parity. Per the review note on this PR, that would have left
route_model_allowed()and the embeddedmodel_allowed()rejecting the same id at authorization time, so the hunk is gone andce-workrejects the namespaced form consistently. How that route should reach a custom provider is a separate design question about how much of a user's codex config the unit workspace inherits.Validation
bun test tests/skills/ce-doc-review-cross-model-routes.test.ts54 pass, 0 failbun test tests/skills/ce-pov-cross-model-routes.test.ts tests/skills/ce-code-review-cross-model-routes.test.ts tests/skills/ce-work-cross-model-routes.test.ts182 pass, 0 fail across the three filesbun run test3454 pass, 1 skip, 1 fail. The failure isce-work unit workspace controller > unit and plan-wide verification ignore inherited Git local environment, which reproduces on unpatchedorigin/mainin a clean worktree on this machine, so it does not come from this change.bun run release:validatemetadata in syncbun run plugin:validateboth manifests passAGENTS.md, the config-option meaning change also lands inskills/ce-setup/references/config-template.yaml, its byte-identical.compound-engineering/config.example.yamlcopy (md5 still matches),docs/skills/configuration.md, and thece-code-reviewandce-doc-reviewpagesThe existing
model-override validation stays byte-identical across review workersparity test still passes; the doc-review and code-review validators remain identical.Security Disclosure
This widens a fail-closed allowlist for a model-id token that was already passed as a single argv element and never enters
eval. No shell or exec surface is added, no path or input handling changes, no credential, permission, or dependency changes. The value stays bound to its declared target and to the gpt or o-series family, so a cross-family override on the codex route still exits 2.Agent Disclosure
Claude Code · claude-opus-5[1m]