GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — fix(codex): drop Claude model ids from compiled Codex agents by xubenqiang · Pull Request #3481 · microsoft/apm

Conversation

@xubenqiang

@xubenqiang JohnnyXu (xubenqiang) commented Nov 5, 2026

Copy link
Copy Markdown

Fixes #3477

Problem

apm install with targets claude,codex compiles one source agent for both harnesses, and _write_codex_agent() copied the model frontmatter value into the Codex TOML verbatim:

name = "ks-agent"
description = "probe agent"
model = "sonnet"            # not a Codex model, copied with no warning

Claude aliases (opus, sonnet, haiku, inherit) and claude-* ids are not valid Codex models, so the generated .codex/agents/<name>.toml is unusable while the Claude side needs the pin.

Fix

When compiling for Codex, a model that names a Claude alias or claude-* id is dropped, and the drop is reported through the existing lossy-compilation diagnostic (the same channel used for a non-string model and for user-invocable):

    _CLAUDE_MODEL_ALIASES = frozenset({"opus", "sonnet", "haiku", "inherit"})

    @staticmethod
    def _is_claude_model(value: str) -> bool:
        normalized = value.strip().lower()
        return normalized in AgentIntegrator._CLAUDE_MODEL_ALIASES or normalized.startswith(
            "claude-"
        )

The diagnostic tells the user to add a codex: block with a Codex model or to drop model from the shared source, then rerun apm install. A Codex model id (gpt-5-codex) is preserved unchanged, and model_reasoning_effort is untouched.

Verification

Two tests are added to tests/unit/integration/test_agent_integrator.py:

  • test_codex_agent_drops_claude_model_alias: model: sonnet produces a TOML without a model key and exactly one lossy warning mentioning the Claude model.
  • test_codex_agent_keeps_codex_model: model: gpt-5-codex stays in the TOML and produces no warning.

Before the fix (production file reverted, tests kept):

drops_claude_model_alias: AssertionError: assert "model" not in parsed

After:

drops_claude_model_alias: PASS
keeps_codex_model: PASS

ruff check and ruff format --check pass on both changed files.

Notes

  • This implements the issue's "minimum" option; the fuller per-target codex: override block in agent frontmatter is a separate, larger feature and is not included.
  • The codex: block is mentioned in the diagnostic as the intended workaround, but the parser does not read it yet, so the working mitigation today is to drop model from the shared source or ship separate agents.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@xubenqiang
fix(codex): drop Claude model ids from compiled Codex agents
c0c7876
`_write_codex_agent()` copied the `model` frontmatter value verbatim into the
Codex TOML, so a shared agent source with `model: sonnet` produced an invalid
`.codex/agents/<name>.toml` while Claude kept its pin.

Drop a Claude alias (`opus`, `sonnet`, `haiku`, `inherit`) or `claude-*` id
when compiling for Codex and report it through the existing lossy-compilation
diagnostic, pointing at the `codex:` override.

Fixes microsoft#3477
@xubenqiang
JohnnyXu (xubenqiang) requested review from Daniel Meppiel (danielmeppiel) and Sergio Sisternes (sergio-sisternes-epam) as code owners November 5, 2026 13:13
Copilot AI balanced review requested due to automatic review settings November 5, 2026 13:13
Copilot AI reviewed Nov 5, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@microsoft-github-policy-service

microsoft-github-policy-service Bot commented Nov 5, 2026

Copy link
Copy Markdown

JohnnyXu (@xubenqiang) please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.

@microsoft-github-policy-service agree [company="{your company}"]

Options:

  • (default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.
@microsoft-github-policy-service agree
  • (when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.
@microsoft-github-policy-service agree company="Microsoft"
Contributor License Agreement

Contribution License Agreement

This Contribution License Agreement (“Agreement”) is agreed to by the party signing below (“You”),
and conveys certain license rights to Microsoft Corporation and its affiliates (“Microsoft”) for Your
contributions to Microsoft open source projects. This Agreement is effective as of the latest signature
date below.

  1. Definitions.
    “Code” means the computer software code, whether in human-readable or machine-executable form,
    that is delivered by You to Microsoft under this Agreement.
    “Project” means any of the projects owned or managed by Microsoft and offered under a license
    approved by the Open Source Initiative (www.opensource.org).
    “Submit” is the act of uploading, submitting, transmitting, or distributing code or other content to any
    Project, including but not limited to communication on electronic mailing lists, source code control
    systems, and issue tracking systems that are managed by, or on behalf of, the Project for the purpose of
    discussing and improving that Project, but excluding communication that is conspicuously marked or
    otherwise designated in writing by You as “Not a Submission.”
    “Submission” means the Code and any other copyrightable material Submitted by You, including any
    associated comments and documentation.
  2. Your Submission. You must agree to the terms of this Agreement before making a Submission to any
    Project. This Agreement covers any and all Submissions that You, now or in the future (except as
    described in Section 4 below), Submit to any Project.
  3. Originality of Work. You represent that each of Your Submissions is entirely Your original work.
    Should You wish to Submit materials that are not Your original work, You may Submit them separately
    to the Project if You (a) retain all copyright and license information that was in the materials as You
    received them, (b) in the description accompanying Your Submission, include the phrase “Submission
    containing materials of a third party:” followed by the names of the third party and any licenses or other
    restrictions of which You are aware, and (c) follow any other instructions in the Project’s written
    guidelines concerning Submissions.
  4. Your Employer. References to “employer” in this Agreement include Your employer or anyone else
    for whom You are acting in making Your Submission, e.g. as a contractor, vendor, or agent. If Your
    Submission is made in the course of Your work for an employer or Your employer has intellectual
    property rights in Your Submission by contract or applicable law, You must secure permission from Your
    employer to make the Submission before signing this Agreement. In that case, the term “You” in this
    Agreement will refer to You and the employer collectively. If You change employers in the future and
    desire to Submit additional Submissions for the new employer, then You agree to sign a new Agreement
    and secure permission from the new employer before Submitting those Submissions.
  5. Licenses.
  • Copyright License. You grant Microsoft, and those who receive the Submission directly or
    indirectly from Microsoft, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license in the
    Submission to reproduce, prepare derivative works of, publicly display, publicly perform, and distribute
    the Submission and such derivative works, and to sublicense any or all of the foregoing rights to third
    parties.
  • Patent License. You grant Microsoft, and those who receive the Submission directly or
    indirectly from Microsoft, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license under
    Your patent claims that are necessarily infringed by the Submission or the combination of the
    Submission with the Project to which it was Submitted to make, have made, use, offer to sell, sell and
    import or otherwise dispose of the Submission alone or with the Project.
  • Other Rights Reserved. Each party reserves all rights not expressly granted in this Agreement.
    No additional licenses or rights whatsoever (including, without limitation, any implied licenses) are
    granted by implication, exhaustion, estoppel or otherwise.
  1. Representations and Warranties. You represent that You are legally entitled to grant the above
    licenses. You represent that each of Your Submissions is entirely Your original work (except as You may
    have disclosed under Section 3). You represent that You have secured permission from Your employer to
    make the Submission in cases where Your Submission is made in the course of Your work for Your
    employer or Your employer has intellectual property rights in Your Submission by contract or applicable
    law. If You are signing this Agreement on behalf of Your employer, You represent and warrant that You
    have the necessary authority to bind the listed employer to the obligations contained in this Agreement.
    You are not expected to provide support for Your Submission, unless You choose to do so. UNLESS
    REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, AND EXCEPT FOR THE WARRANTIES
    EXPRESSLY STATED IN SECTIONS 3, 4, AND 6, THE SUBMISSION PROVIDED UNDER THIS AGREEMENT IS
    PROVIDED WITHOUT WARRANTY OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY OF
    NONINFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
  2. Notice to Microsoft. You agree to notify Microsoft in writing of any facts or circumstances of which
    You later become aware that would make Your representations in this Agreement inaccurate in any
    respect.
  3. Information about Submissions. You agree that contributions to Projects and information about
    contributions may be maintained indefinitely and disclosed publicly, including Your name and other
    information that You submit with Your Submission.
  4. Governing Law/Jurisdiction. This Agreement is governed by the laws of the State of Washington, and
    the parties consent to exclusive jurisdiction and venue in the federal courts sitting in King County,
    Washington, unless no federal subject matter jurisdiction exists, in which case the parties consent to
    exclusive jurisdiction and venue in the Superior Court of King County, Washington. The parties waive all
    defenses of lack of personal jurisdiction and forum non-conveniens.
  5. Entire Agreement/Assignment. This Agreement is the entire agreement between the parties, and
    supersedes any and all prior agreements, understandings or communications, written or oral, between
    the parties relating to the subject matter hereof. This Agreement may be assigned by Microsoft.
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

2 similar comments
@microsoft-github-policy-service

microsoft-github-policy-service Bot commented Nov 5, 2026

Copy link
Copy Markdown

JohnnyXu (@xubenqiang) please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.

@microsoft-github-policy-service agree [company="{your company}"]

Options:

  • (default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.
@microsoft-github-policy-service agree
  • (when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.
@microsoft-github-policy-service agree company="Microsoft"
Contributor License Agreement

Contribution License Agreement

This Contribution License Agreement (“Agreement”) is agreed to by the party signing below (“You”),
and conveys certain license rights to Microsoft Corporation and its affiliates (“Microsoft”) for Your
contributions to Microsoft open source projects. This Agreement is effective as of the latest signature
date below.

  1. Definitions.
    “Code” means the computer software code, whether in human-readable or machine-executable form,
    that is delivered by You to Microsoft under this Agreement.
    “Project” means any of the projects owned or managed by Microsoft and offered under a license
    approved by the Open Source Initiative (www.opensource.org).
    “Submit” is the act of uploading, submitting, transmitting, or distributing code or other content to any
    Project, including but not limited to communication on electronic mailing lists, source code control
    systems, and issue tracking systems that are managed by, or on behalf of, the Project for the purpose of
    discussing and improving that Project, but excluding communication that is conspicuously marked or
    otherwise designated in writing by You as “Not a Submission.”
    “Submission” means the Code and any other copyrightable material Submitted by You, including any
    associated comments and documentation.
  2. Your Submission. You must agree to the terms of this Agreement before making a Submission to any
    Project. This Agreement covers any and all Submissions that You, now or in the future (except as
    described in Section 4 below), Submit to any Project.
  3. Originality of Work. You represent that each of Your Submissions is entirely Your original work.
    Should You wish to Submit materials that are not Your original work, You may Submit them separately
    to the Project if You (a) retain all copyright and license information that was in the materials as You
    received them, (b) in the description accompanying Your Submission, include the phrase “Submission
    containing materials of a third party:” followed by the names of the third party and any licenses or other
    restrictions of which You are aware, and (c) follow any other instructions in the Project’s written
    guidelines concerning Submissions.
  4. Your Employer. References to “employer” in this Agreement include Your employer or anyone else
    for whom You are acting in making Your Submission, e.g. as a contractor, vendor, or agent. If Your
    Submission is made in the course of Your work for an employer or Your employer has intellectual
    property rights in Your Submission by contract or applicable law, You must secure permission from Your
    employer to make the Submission before signing this Agreement. In that case, the term “You” in this
    Agreement will refer to You and the employer collectively. If You change employers in the future and
    desire to Submit additional Submissions for the new employer, then You agree to sign a new Agreement
    and secure permission from the new employer before Submitting those Submissions.
  5. Licenses.
  • Copyright License. You grant Microsoft, and those who receive the Submission directly or
    indirectly from Microsoft, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license in the
    Submission to reproduce, prepare derivative works of, publicly display, publicly perform, and distribute
    the Submission and such derivative works, and to sublicense any or all of the foregoing rights to third
    parties.
  • Patent License. You grant Microsoft, and those who receive the Submission directly or
    indirectly from Microsoft, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license under
    Your patent claims that are necessarily infringed by the Submission or the combination of the
    Submission with the Project to which it was Submitted to make, have made, use, offer to sell, sell and
    import or otherwise dispose of the Submission alone or with the Project.
  • Other Rights Reserved. Each party reserves all rights not expressly granted in this Agreement.
    No additional licenses or rights whatsoever (including, without limitation, any implied licenses) are
    granted by implication, exhaustion, estoppel or otherwise.
  1. Representations and Warranties. You represent that You are legally entitled to grant the above
    licenses. You represent that each of Your Submissions is entirely Your original work (except as You may
    have disclosed under Section 3). You represent that You have secured permission from Your employer to
    make the Submission in cases where Your Submission is made in the course of Your work for Your
    employer or Your employer has intellectual property rights in Your Submission by contract or applicable
    law. If You are signing this Agreement on behalf of Your employer, You represent and warrant that You
    have the necessary authority to bind the listed employer to the obligations contained in this Agreement.
    You are not expected to provide support for Your Submission, unless You choose to do so. UNLESS
    REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, AND EXCEPT FOR THE WARRANTIES
    EXPRESSLY STATED IN SECTIONS 3, 4, AND 6, THE SUBMISSION PROVIDED UNDER THIS AGREEMENT IS
    PROVIDED WITHOUT WARRANTY OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY OF
    NONINFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
  2. Notice to Microsoft. You agree to notify Microsoft in writing of any facts or circumstances of which
    You later become aware that would make Your representations in this Agreement inaccurate in any
    respect.
  3. Information about Submissions. You agree that contributions to Projects and information about
    contributions may be maintained indefinitely and disclosed publicly, including Your name and other
    information that You submit with Your Submission.
  4. Governing Law/Jurisdiction. This Agreement is governed by the laws of the State of Washington, and
    the parties consent to exclusive jurisdiction and venue in the federal courts sitting in King County,
    Washington, unless no federal subject matter jurisdiction exists, in which case the parties consent to
    exclusive jurisdiction and venue in the Superior Court of King County, Washington. The parties waive all
    defenses of lack of personal jurisdiction and forum non-conveniens.
  5. Entire Agreement/Assignment. This Agreement is the entire agreement between the parties, and
    supersedes any and all prior agreements, understandings or communications, written or oral, between
    the parties relating to the subject matter hereof. This Agreement may be assigned by Microsoft.
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@microsoft-github-policy-service

microsoft-github-policy-service Bot commented Nov 5, 2026

Copy link
Copy Markdown

JohnnyXu (@xubenqiang) please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.

@microsoft-github-policy-service agree [company="{your company}"]

Options:

  • (default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.
@microsoft-github-policy-service agree
  • (when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.
@microsoft-github-policy-service agree company="Microsoft"
Contributor License Agreement

Contribution License Agreement

This Contribution License Agreement (“Agreement”) is agreed to by the party signing below (“You”),
and conveys certain license rights to Microsoft Corporation and its affiliates (“Microsoft”) for Your
contributions to Microsoft open source projects. This Agreement is effective as of the latest signature
date below.

  1. Definitions.
    “Code” means the computer software code, whether in human-readable or machine-executable form,
    that is delivered by You to Microsoft under this Agreement.
    “Project” means any of the projects owned or managed by Microsoft and offered under a license
    approved by the Open Source Initiative (www.opensource.org).
    “Submit” is the act of uploading, submitting, transmitting, or distributing code or other content to any
    Project, including but not limited to communication on electronic mailing lists, source code control
    systems, and issue tracking systems that are managed by, or on behalf of, the Project for the purpose of
    discussing and improving that Project, but excluding communication that is conspicuously marked or
    otherwise designated in writing by You as “Not a Submission.”
    “Submission” means the Code and any other copyrightable material Submitted by You, including any
    associated comments and documentation.
  2. Your Submission. You must agree to the terms of this Agreement before making a Submission to any
    Project. This Agreement covers any and all Submissions that You, now or in the future (except as
    described in Section 4 below), Submit to any Project.
  3. Originality of Work. You represent that each of Your Submissions is entirely Your original work.
    Should You wish to Submit materials that are not Your original work, You may Submit them separately
    to the Project if You (a) retain all copyright and license information that was in the materials as You
    received them, (b) in the description accompanying Your Submission, include the phrase “Submission
    containing materials of a third party:” followed by the names of the third party and any licenses or other
    restrictions of which You are aware, and (c) follow any other instructions in the Project’s written
    guidelines concerning Submissions.
  4. Your Employer. References to “employer” in this Agreement include Your employer or anyone else
    for whom You are acting in making Your Submission, e.g. as a contractor, vendor, or agent. If Your
    Submission is made in the course of Your work for an employer or Your employer has intellectual
    property rights in Your Submission by contract or applicable law, You must secure permission from Your
    employer to make the Submission before signing this Agreement. In that case, the term “You” in this
    Agreement will refer to You and the employer collectively. If You change employers in the future and
    desire to Submit additional Submissions for the new employer, then You agree to sign a new Agreement
    and secure permission from the new employer before Submitting those Submissions.
  5. Licenses.
  • Copyright License. You grant Microsoft, and those who receive the Submission directly or
    indirectly from Microsoft, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license in the
    Submission to reproduce, prepare derivative works of, publicly display, publicly perform, and distribute
    the Submission and such derivative works, and to sublicense any or all of the foregoing rights to third
    parties.
  • Patent License. You grant Microsoft, and those who receive the Submission directly or
    indirectly from Microsoft, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license under
    Your patent claims that are necessarily infringed by the Submission or the combination of the
    Submission with the Project to which it was Submitted to make, have made, use, offer to sell, sell and
    import or otherwise dispose of the Submission alone or with the Project.
  • Other Rights Reserved. Each party reserves all rights not expressly granted in this Agreement.
    No additional licenses or rights whatsoever (including, without limitation, any implied licenses) are
    granted by implication, exhaustion, estoppel or otherwise.
  1. Representations and Warranties. You represent that You are legally entitled to grant the above
    licenses. You represent that each of Your Submissions is entirely Your original work (except as You may
    have disclosed under Section 3). You represent that You have secured permission from Your employer to
    make the Submission in cases where Your Submission is made in the course of Your work for Your
    employer or Your employer has intellectual property rights in Your Submission by contract or applicable
    law. If You are signing this Agreement on behalf of Your employer, You represent and warrant that You
    have the necessary authority to bind the listed employer to the obligations contained in this Agreement.
    You are not expected to provide support for Your Submission, unless You choose to do so. UNLESS
    REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, AND EXCEPT FOR THE WARRANTIES
    EXPRESSLY STATED IN SECTIONS 3, 4, AND 6, THE SUBMISSION PROVIDED UNDER THIS AGREEMENT IS
    PROVIDED WITHOUT WARRANTY OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY OF
    NONINFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
  2. Notice to Microsoft. You agree to notify Microsoft in writing of any facts or circumstances of which
    You later become aware that would make Your representations in this Agreement inaccurate in any
    respect.
  3. Information about Submissions. You agree that contributions to Projects and information about
    contributions may be maintained indefinitely and disclosed publicly, including Your name and other
    information that You submit with Your Submission.
  4. Governing Law/Jurisdiction. This Agreement is governed by the laws of the State of Washington, and
    the parties consent to exclusive jurisdiction and venue in the federal courts sitting in King County,
    Washington, unless no federal subject matter jurisdiction exists, in which case the parties consent to
    exclusive jurisdiction and venue in the Superior Court of King County, Washington. The parties waive all
    defenses of lack of personal jurisdiction and forum non-conveniens.
  5. Entire Agreement/Assignment. This Agreement is the entire agreement between the parties, and
    supersedes any and all prior agreements, understandings or communications, written or oral, between
    the parties relating to the subject matter hereof. This Agreement may be assigned by Microsoft.
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@danielmeppiel Daniel Meppiel (danielmeppiel) mentioned this pull request Nov 10, 2026
Codex agent compile copies Claude model aliases verbatim (model: opus -> model = "opus") #3477
Open
@danielmeppiel

Daniel Meppiel (danielmeppiel) commented Nov 10, 2026

Copy link
Copy Markdown
Collaborator

Thanks JohnnyXu (@xubenqiang) for the fix and for flagging the Claude-alias problem. Daniel approved a narrower scope on #3477 (see the apm-scope:v1 record there), so this PR is not accepted as-is: OpenAPM req-tg-015 and the accepted #3126 scope require the Codex agent compile to keep a declared model value exactly as written, and this PR drops it. The suggested codex: block is the separate open question in #3324.

What would fit the approved scope: keep the generated TOML byte-identical and emit a lossy-compilation warning naming the agent when the model is a Claude alias (opus, sonnet, haiku, inherit) or a claude-* id, without including other frontmatter values in the warning. Add tests for each alias and a claude-* id, and keep the req-tg-015 conformance tests passing. If you are happy to rework this PR along those lines, please update it and link the record.


Generated by autopilot-issue-triage-worker. This comment is AI-generated and may contain errors.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Daniel Meppiel (danielmeppiel) and others added 4 commits November 10, 2026 20:29
@danielmeppiel
Merge origin/main into fix/codex-drop-claude-model-alias
555f561
Co-authored-by: Copilot App <[email protected]>
@danielmeppiel @xubenqiang
fix(codex): keep Claude model ids verbatim and warn instead of dropping
e850547
The approved scope on microsoft#3477 (apm-scope:v1, comment 6772353800) and
OpenAPM req-tg-015 require the Codex agent compile to preserve a
source-declared model string exactly as written. Reshape the change
from dropping a Claude alias (opus, sonnet, haiku, inherit) or claude-*
id to keeping it and emitting a names-only lossy-compilation warning
that names the agent and the field, never the model value or other
frontmatter values. Drop the 'codex:' block suggestion, which belongs
to the separate microsoft#3324 question and is not read by the parser.

Tests cover every alias plus claude-* ids (TOML byte-identical to the
pre-change rendering, one warning), non-Claude strings (no warning), and
the names-only guarantee. Docs, apm-guide and CHANGELOG updated.

Co-authored-by: xubenqiang <[email protected]>
Co-authored-by: Copilot App <[email protected]>
@danielmeppiel
docs(codex): scope the Claude-model warning as a name-only check
9a2f630
The no-validation sentence read as contradicting the new Claude-model
warning. State that the warning is the one name-only model check, that
the value is still kept as written, and add the remediation clause to
the apm-guide resource. Addresses panel doc-writer follow-up on microsoft#3481.

Co-authored-by: Copilot App <[email protected]>
@danielmeppiel
test(spec): pin req-tg-015 verbatim preservation for Claude model ids
07c5d5e
The Claude-model warning added for microsoft#3477 sits in the req-tg-015 Codex
conversion path. Add a req-tg-015 conformance test proving opus, sonnet,
haiku, inherit and a claude-* id are still written verbatim and never
echoed in a diagnostic, so the reshape cannot regress to dropping the
value. Regenerate CONFORMANCE.{json,md} from the full suite. Cites the
spec for the Mode B silent-extension gate.

Co-authored-by: Copilot App <[email protected]>
@danielmeppiel

Daniel Meppiel (danielmeppiel) commented Nov 10, 2026

Copy link
Copy Markdown
Collaborator

APM Review Panel: ship_now

Delta clean: doc fold verified, req-tg-015 conformance tests pinned. Ship once CLA clears.

panel-mode=delta; personas=doc-writer,test-coverage-expert,apm-ceo (earlier lean pass this run: test-coverage-expert, doc-writer, cli-logging-expert [ad hoc: the only user-visible change is a new warning], apm-ceo)

cc JohnnyXu (@xubenqiang) Sergio Sisternes (@sergio-sisternes-epam) -- a fresh advisory pass is ready for your review.

Thanks JohnnyXu (@xubenqiang) for the fix. Per the approved apm-scope:v1 record on #3477, this PR was reshaped on your branch (maintainer edits; your commit is kept and credited): the Codex agent compile now keeps a declared model exactly as written (OpenAPM req-tg-015) and emits a names-only lossy-compilation warning, naming the agent, when the value is a Claude alias (opus, sonnet, haiku, inherit) or a claude-* id. The value is no longer dropped, and the codex: block suggestion was removed because that is the separate #3324 question.

Both delta panelists confirm the lean-pass follow-up is resolved. The doc-writer finds the no-validation claim now qualified in both the docs page and apm-guide. The test-coverage-expert confirms the new req-tg-015 conformance cases defend verbatim preservation, with a guard against the value leaking into diagnostics. That conformance test was added to satisfy CI's Spec conformance Mode B gate, which required a spec citation for the changed behaviour.

Aligned with: portable by manifest (req-tg-015 verbatim preservation of model ids is now conformance-tested); secure by default (names-only warning, no frontmatter values echoed); governed by policy (CONFORMANCE.json/md regenerated from the full suite).

Panel summary

Persona B R N Takeaway
Doc Writer 0 0 0 The fold resolves the prior finding in the docs page and apm-guide; no new doc issues.
Test Coverage Expert 0 0 0 5 parametrized req-tg-015 cases defend the preservation MUST without over-claiming the non-normative warning.

B = blocking-severity findings, R = recommended, N = nits.
Counts are signal strength, not gates. The maintainer ships.

Recommendation

All lean-pass follow-ups are folded and verified. CI: 23 pass, 3 skipping, 0 fail; lint clean; canonical-owner gate passed. The contributor CLA is not signed yet (license/cla pending): JohnnyXu (@xubenqiang), please reply with @microsoft-github-policy-service agree as described above. Once signed, this needs no further code changes.

Folded in this run

  • (panel) Approved-scope reshape: keep the Codex model verbatim and warn, names-only; drop removed; tests, docs, apm-guide and CHANGELOG updated -- resolved in e850547.
  • (panel) doc-writer: qualify the no-validation docs claim as the one name-only check and add the remediation clause to apm-guide -- resolved in 9a2f630.
  • (panel) CI Mode B gate: req-tg-015 conformance test pinning verbatim preservation of Claude model ids; CONFORMANCE.{json,md} regenerated -- resolved in 07c5d5e.

Copilot signals reviewed

  • Review 5785478526 -- NOT-LEGIT: only reports insufficient quota; zero inline comments across 2 fetch rounds.

Regression-trap evidence (mutation-break gate)

  • test_codex_agent_keeps_claude_model_verbatim_and_warns -- deleted the _warn_codex_claude_model call; 8 tests FAILED as expected; guard restored.
  • test_codex_agent_keeps_claude_model_verbatim_and_warns -- re-added the model drop; 8 tests FAILED as expected; guard restored.

Lint contract

ruff check and ruff format --check (src/, tests/, architecture linter scripts) silent; pylint R0801 clean; auth-signal and architecture-boundary lints clean.

CI

23 pass, 3 skipping, 0 fail on 07c5d5e; license/cla pending (after 1 CI fix iteration: Spec conformance Mode B).

Mergeability status

PR head SHA CEO stance iters folds defers Copilot rounds CI mergeable mergeStateStatus notes
#3481 07c5d5e ship_now 1 3 0 2 yellow MERGEABLE BLOCKED CLA unsigned (license/cla pending)

Convergence

1 outer iteration; 2 Copilot rounds. Final panel stance: ship_now. Ready for maintainer review once the CLA is signed.

Full per-persona findings

Doc Writer

No findings (delta). Lean pass: one recommended finding (no-validation claim read as contradictory next to the new warning), folded in 9a2f630.

Test Coverage Expert

No findings.

CLI Logging Expert (lean pass only)

No findings: wording follows sibling Codex diagnostics, correct category, ASCII-safe, names-only, actionable.

This panel is advisory. It does not block merge. Re-apply the
panel-review label after addressing feedback to re-run.


Generated by autopilot-pr-merge-worker. This comment is AI-generated and may contain errors.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

This branch has not been deployed

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

Reviewers

Copilot code review Copilot
Copilot review effort
Applies to this pull request for everyone.Learn more about Copilot code review.
Copilot left review comments
@danielmeppiel Daniel Meppiel (danielmeppiel) Awaiting requested review from danielmeppiel danielmeppiel is a code owner
@sergio-sisternes-epam Sergio Sisternes (sergio-sisternes-epam) Awaiting requested review from sergio-sisternes-epam sergio-sisternes-epam is a code owner

At least 0 approving reviews are required to merge this pull request.

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Codex agent compile copies Claude model aliases verbatim (model: opus -> model = "opus")

Uh oh!

There was an error while loading. Please reload this page.

3 participants

@xubenqiang @danielmeppiel
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.