Skip to content

🤖 fix: send GPT-6 Sol/Luna reasoning effort none and repair main CI - #4350

Merged
ammario merged 5 commits into
mainfrom
gpt6-reasoning-none-followup
Sep 23, 2026
Merged

ammario merged 5 commits into
mainfrom
gpt6-reasoning-none-followup

Conversation

@ammar-agent

@ammar-agent ammar-agent commented Sep 22, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Follow-up to #4348. GPT-6 Sol/Luna now actually send reasoning_effort: "none". The PR also fixes two post-merge Test / Unit failures on main: a unit test file that crashed Bun, and the v0.30.0 version-lock contract.

Background

  • SDK drops none: @ai-sdk/openai@4.0.71, including the latest 4.0.72, allows only low/medium/high/xhigh/max for every gpt-6-* ID and silently strips any other effort from Chat Completions and Responses requests. That list is correct for Astra, but Sol and Luna accept none. OpenAI documents that an omitted effort defaults to medium and that Chat Completions function calling requires none. So after 🤖 feat: add GPT-6 Sol and Luna model support #4348:
    • Chat Completions agent turns on gpt, sol and luna had their tool calls rejected.
    • On Responses, choosing "off" silently ran at medium reasoning.
    • 🤖 feat: add GPT-6 Sol and Luna model support #4348's tests only checked the buildProviderOptions output, not the serialized request, so they missed this.
  • CI: the Test / Unit job in main run 35782976621 exited with code 133. Bun hit an allocator panic (pas panic: deallocation did fail) just as mcpIconDecodeClient.test.ts started, with no failing assertions. That file loads the native sharp addon into the shared coverage process. The crash is not caused by 🤖 feat: add GPT-6 Sol and Luna model support #4348's model changes.
  • CI (release): release: v0.30.0 (81b0b74) bumped package.json but not packages/mux-compat. productIdentity.test.ts, which requires the legacy mux forwarding package to stay version-locked to @coder/xum, therefore fails on main.

Implementation

  • Generalizes createOpenAIModelWithServiceTier into createOpenAIModelWithPreservedOptions. For Sol/Luna wire IDs (including dated IDs) with effort none, it removes the effort from the SDK options and writes it into the serialized body after the SDK's capability checks. This reuses the per-call fetch-wrapper pattern already used for service tiers.
  • The wrapper covers native OpenAI (including Codex OAuth, whose tier behavior is unchanged), custom openai-responses providers and the Coder gateway OpenAI route.
  • Moves mcpIconDecodeClient.test.ts into isolated_unit_tests, following the existing pattern, so it runs in its own process with the signal-exit retry.
  • Bumps packages/mux-compat (version and its @coder/xum dependency) to 0.30.0.

Validation

  • A new factory-level wire test covers Sol, Luna and dated Sol over both wire formats, with a tool attached, and asserts that none is sent. Two controls check that Sol high passes through and that Astra none is still dropped. With the fix disabled, the 6 none cases fail.

Risks

Low. Only requests to Sol/Luna wire IDs with effort none are rewritten. Other models, and Sol/Luna at other efforts, keep the existing path.

Deferred (pre-existing): on Responses, the SDK treats opaque aliases (for example team-model → openai:gpt-6-sol) as non-reasoning models and drops every reasoning effort, not just none. This already affected aliases of any reasoning model before #4348. On Chat Completions, which is where none matters for tool calls, those aliases already serialize none, and a test now covers that.

Review history

The first revision fixed this with a bun patch of @ai-sdk/openai. Codex pointed out that patchedDependencies does not apply to npm installs of the published package, so the fix now lives in Xum runtime code and the patch has been removed.


Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high • Cost: $26.31

---

_Generated with `xum` • Model: `anthropic:claude-opus-5-5` • Thinking: `high` • Cost: `$26.31`_

<!-- mux-attribution: model=anthropic:claude-opus-5-5 thinking=high costs=26.31 -->
@ammar-agent

Copy link
Copy Markdown
Collaborator Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 22, 2026 •

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-22T21:51:37.594577Z f0a642e Manual request
🔒 Security Review ✅ Completed 2026-09-22T21:52:16.283175Z f0a642e Manual request
ℹ️ 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.

@ammar-agent

Copy link
Copy Markdown
Collaborator Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: 7a3d24a0a7

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@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: 7a3d24a0a7

ℹ️ 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 thread package.json Outdated
Replace the bun patch (not applied to npm installs) with a post-SDK body rewrite.
@ammar-agent

Copy link
Copy Markdown
Collaborator Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: 2fd72e8c35

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@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: 2fd72e8c35

ℹ️ 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 thread src/node/services/providerModelFactory.ts
@ammar-agent

Copy link
Copy Markdown
Collaborator Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep them coming!

Reviewed commit: c40f6e6e49

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

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: c40f6e6e49

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@ammar-agent ammar-agent changed the title 🤖 fix: send reasoning effort none for GPT-6 Sol/Luna 🤖 fix: send GPT-6 Sol/Luna reasoning effort none and repair main CI Sep 22, 2026
@ammar-agent

Copy link
Copy Markdown
Collaborator Author

@codex review

@ThomasK33

Copy link
Copy Markdown
Member

Coordination note from #4259 (same defect, different history):

  1. main unblock: 🤖 fix: version-lock mux compat package to v0.30.0 #4354 carries the identical packages/mux-compat 0.30.0 bump as a standalone one-liner (precedent 🤖 fix: version-lock mux compat package to v0.28.3 #4048), so every PR's Test / Unit can go green independently of this PR's review timeline. It is the same two-line change as f0a642e7, so the two merge cleanly in either order; I'll close whichever becomes empty.

  2. Approach: agreed the runtime body-rewrite is the right fix — Bun patchedDependencies never reach npm installs of @coder/xum (no postinstall, @ai-sdk/openai is a runtime dependency). 🤖 fix: clamp GPT-6 Sol/Luna headless tool loops to reasoning none and correct their Codex context cap #4259 will drop its SDK patch.

  3. Gaps this PR does not cover, which 🤖 fix: clamp GPT-6 Sol/Luna headless tool loops to reasoning none and correct their Codex context cap #4259 will deliver as a small stacked PR on top of this branch (no scope growth needed here):

No action needed from this PR; just flagging so we don't both edit the same call sites.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Bravo.

Reviewed commit: f0a642e705

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

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: f0a642e705

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

ThomasK33 added a commit that referenced this pull request Sep 22, 2026
… correct their Codex context cap

Stacked on #4350, which makes a requested reasoning_effort "none" reach
the wire for GPT-6 Sol/Luna. Headless tool loops (Dream consolidation,
memory harvest, refine, sidebar status) call streamText with tools and
no provider options, so nothing requests "none" and Chat Completions
defaults to medium, which rejects function calling. A model-boundary
middleware fills in "none" for tool-bearing Chat Completions requests
that asked for no effort, wrapped outside #4350's body-patching wrapper
so the injected value survives the SDK; explicit caller efforts are left
alone. The Coder openai-compat path resolves scoped "Treat as" aliases
through resolveModelForMetadata before clamping. The assumed 372K Codex
OAuth cap for Sol/Luna becomes the 272K published in the pinned Codex
catalog.

_Generated with `xum` • Model: `coder:anthropic/claude-fable-5-1` • Thinking: `xhigh` • Cost: `$174.60`_

<!-- mux-attribution: model=coder:anthropic/claude-fable-5-1 thinking=xhigh costs=174.60 -->
@ammar-agent

Copy link
Copy Markdown
Collaborator Author

Thanks @ThomasK33, acknowledged. This PR won't touch the headless tool-loop clamp, the Coder openai-compat capability resolution, or the Codex OAuth context cap, so they can go in the stacked PR from #4259. The mux-compat bump here is identical to #4354, so they will merge cleanly in either order.

@ThomasK33

Copy link
Copy Markdown
Member

Status for whoever queues this: main is green again (#4354 landed as 82d3d148, same mux-compat bump as f0a642e7, so this rebases/merges cleanly). This head has a clean Codex code + security pair (21:51Z / 21:52Z, 👍) and every check green, so it looks ready for gh pr merge 4350 --squash --auto. #4259 is stacked on this branch and fully gated on its own head; I'll rebase it onto main and queue it as soon as this lands.

@ammario
ammario merged commit 7358fa8 into main Sep 23, 2026
35 of 38 checks passed
@ammario
ammario deleted the gpt6-reasoning-none-followup branch September 23, 2026 14:37
ThomasK33 added a commit that referenced this pull request Sep 23, 2026
… correct their Codex context cap

Stacked on #4350, which makes a requested reasoning_effort "none" reach
the wire for GPT-6 Sol/Luna. Headless tool loops (Dream consolidation,
memory harvest, refine, sidebar status) call streamText with tools and
no provider options, so nothing requests "none" and Chat Completions
defaults to medium, which rejects function calling. A model-boundary
middleware fills in "none" for tool-bearing Chat Completions requests
that asked for no effort, wrapped outside #4350's body-patching wrapper
so the injected value survives the SDK; explicit caller efforts are left
alone. The Coder openai-compat path resolves scoped "Treat as" aliases
through resolveModelForMetadata before clamping. The assumed 372K Codex
OAuth cap for Sol/Luna becomes the 272K published in the pinned Codex
catalog.

_Generated with `xum` • Model: `coder:anthropic/claude-fable-5-1` • Thinking: `xhigh` • Cost: `$174.60`_

<!-- mux-attribution: model=coder:anthropic/claude-fable-5-1 thinking=xhigh costs=174.60 -->
yermakoffivan pushed a commit to yermakoffivan/mux that referenced this pull request Sep 23, 2026
## Summary

Bumps `packages/mux-compat/package.json` (`version` and the `@coder/xum`
dependency pin) from 0.29.0 to 0.30.0 to match the root package after
the `release: v0.30.0` commit (`81b0b744`), which bumped only the root
`package.json`.

## Background

`src/common/compat/productIdentity.test.ts` › "keeps the published mux
forwarding package version-locked to @coder/xum" asserts
`legacyPackageJson.version === packageJson.version`. Since the release
commit it fails on `main` ([run
35783501719](https://github.com/coder/xum/actions/runs/35783501719)) and
on every PR's merge commit (e.g. coder#4259 [run
35785546631](https://github.com/coder/xum/actions/runs/35785546631),
coder#4350), so `Required` is red repo-wide and the merge queue cannot admit
anything. Same fix as coder#4048 for v0.28.3; release commits since (e.g.
v0.28.5, coder#4175) bumped both files together. `@coder/xum@0.30.0` is
already published (Publish to NPM run 35783501943), so the new pin
resolves.

## Validation

`bun test src/common/compat/productIdentity.test.ts` on this branch: 8
pass (the version-lock case fails on `main` without it).

---

_Generated with `xum` • Model: `coder:anthropic/claude-fable-5-1` •
Thinking: `xhigh` • Cost: `$174.60`_

<!-- mux-attribution: model=coder:anthropic/claude-fable-5-1
thinking=xhigh costs=174.60 -->
ThomasK33 added a commit that referenced this pull request Sep 23, 2026
… correct their Codex context cap

Stacked on #4350, which makes a requested reasoning_effort "none" reach
the wire for GPT-6 Sol/Luna. Headless tool loops (Dream consolidation,
memory harvest, refine, sidebar status) call streamText with tools and
no provider options, so nothing requests "none" and Chat Completions
defaults to medium, which rejects function calling. A model-boundary
middleware fills in "none" for tool-bearing Chat Completions requests
that asked for no effort, wrapped outside #4350's body-patching wrapper
so the injected value survives the SDK; explicit caller efforts are left
alone. The Coder openai-compat path resolves scoped "Treat as" aliases
through resolveModelForMetadata before clamping. The assumed 372K Codex
OAuth cap for Sol/Luna becomes the 272K published in the pinned Codex
catalog.

_Generated with `xum` • Model: `coder:anthropic/claude-fable-5-1` • Thinking: `xhigh` • Cost: `$174.60`_

<!-- mux-attribution: model=coder:anthropic/claude-fable-5-1 thinking=xhigh costs=174.60 -->
yermakoffivan pushed a commit to yermakoffivan/mux that referenced this pull request Sep 24, 2026
… correct their Codex context cap (coder#4259)

## Summary

Follow-up to coder#4350 (landed as `7358fa80`), which makes a *requested*
`reasoning_effort: "none"` reach the wire for GPT-6 Sol/Luna. This PR
closes the three gaps left after coder#4348 and coder#4350: headless tool loops
that request no effort at all, Coder-scoped aliases on `openai-compat`
instances, and the assumed 372K Codex OAuth context cap (272K in the
pinned Codex catalog).

## Background

- Sol/Luna Chat Completions accepts function calling only with
`reasoning_effort: "none"`; an omitted effort defaults to `medium`.
`buildProviderOptions` clamps agent turns (coder#4348) and coder#4350 makes that
clamp serialize, but Dream consolidation, memory harvest, refine and
sidebar-status generation call `streamText` with tools and **no provider
options**, so nothing requests `none` and their tool calls are rejected
on Chat Completions routes (direct `wireFormat: chatCompletions`, Coder
`openai-compat` instances). Raised by Codex on the earlier revision of
this PR; the Coder alias case is its round-6 finding.
- Codex catalog pin: [openai/codex@04fc75ad
`codex-rs/models-manager/models.json`](https://github.com/openai/codex/blob/04fc75adbe67a612a1cb0fc469533f24b24fa499/codex-rs/models-manager/models.json)
— `gpt-6-sol` / `gpt-6-luna` `context_window: 272000`. `main` copies
Astra's 372K with an "assumed" comment.

## Implementation

- `clampGpt6ChatCompletionsToolReasoning` (providerModelFactory.ts): a
`transformParams` middleware that sets `reasoningEffort: "none"` when
the request carries tools **and no effort was requested**, for Sol/Luna
capability identities on Chat Completions. Explicit caller efforts are
preserved (this keeps coder#4350's "requested `high` stays `high`" contract
intact). It wraps *outside* `createOpenAIModelWithPreservedOptions` so
the injected `none` is seen by that wrapper's body patch instead of
being stripped by the SDK.
- Applied on the direct OpenAI path (Chat Completions wire only) and the
Coder gateway Chat path, where the capability identity is
`resolveModelForMetadata(coder:<instance>/<model>)` so scoped "Treat as"
aliases are clamped too.
- `CODEX_OAUTH_CONTEXT_WINDOW_OVERRIDES`: `gpt-6-sol` / `gpt-6-luna`
372K → 272K with the pin cited inline; Astra and the GPT-5.6 family are
unchanged (coder#4347).

Dropped from earlier revisions:
catalog/aliases/pricing/labels/migration/docs (landed in coder#4348), the
`@ai-sdk/openai` Bun patch (Bun `patchedDependencies` never reach npm
installs of `@coder/xum`; coder#4350's runtime rewrite is the right fix), and
the `hasTools` plumbing through `buildProviderOptions`.

## Validation

Repo-pinned Bun 1.3.5, on `main` + this commit with a freshly
reinstalled, unpatched `@ai-sdk/openai` (so a green body assertion
proves the composition with coder#4350's wrapper).

- `providerModelFactory.test.ts` › "clamps %s tool requests … at the
model boundary" (Sol raw id, mapped `team-luna`, Astra control,
Responses control) and › "clamps %s tool requests through a Coder
openai-compat instance" (`coder:chat-proxy/team-luna` mapped,
`coder:chat-proxy/gpt-6-sol` raw, `team-astra` control). Red proof: with
the clamp disabled, exactly the four Sol/Luna Chat Completions cases
fail (`Expected "none" / Received undefined`); coder#4350's 11 wire cases are
unaffected. Reverting the Coder capability argument to the raw
`originModelId` fails exactly the mapped `team-luna` case.
- `codexOAuth.test.ts` asserts Astra (372K) and Sol/Luna (272K)
separately. `contextLimit`, `tokenMeterUtils`, `thinking`,
`turnRequestBuilder`, `providerOptions` suites pass. `make static-check`
green.

## Risks

- The middleware fires only for Sol/Luna capability identities, Chat
Completions wire, a non-empty `tools` array, and no requested effort.
Responses, tool-free requests, explicit efforts, Astra, GPT-5.6 and
non-OpenAI providers are untouched.
- Lower Codex OAuth cap (272K) starts limit-driven compaction earlier
for OAuth-routed Sol/Luna; API-key routes keep the public limits.

## Readiness and follow-ups

- Originally stacked on coder#4350; rebased onto `main` after coder#4350 landed
(`7358fa80`). The residual diff is unchanged (+183/−21).
- `main` unblock for `Test / Unit` (release commit left
`packages/mux-compat` at 0.29.0): coder#4354 standalone, also folded into
coder#4350; whichever becomes empty is closed.
- Round-6 security finding (budget accounting ignores priority-tier
pricing) is pre-existing/generic → coder#4352. coder#4347 tracks GPT-5.6 Sol
promotional pricing and Astra's Codex cap.

<details>
<summary>Preserved review and delivery record — fifteen Codex executions
including this head, one code-advisor pass</summary>

| Round | Reviewed head (before rebase / re-scope) | Executions |
Findings / disposition |
| --- | --- | --- | --- |
| 1 | `01ca053` | Codex code + security | Hidden-model compaction
exposure and zero pricing bypassing CLI budget; fixed in `252bba9` /
`cb5ac4b`, replied and resolved |
| 2 | `cb5ac4b` | Codex code + security | Migration-marker flip and
hiding prior opt-ins; fixed in `64169a3`, replied and resolved |
| 3 | `64169a3` | Codex code + security | Clean completion on both loops
|
| 4, renewed authorization | `40e4b2a6` | Automatic Codex code +
security on undraft | Security clean; code P2 Chat Completions
default-effort issue → fixed in `ce20ecd0`, replied and resolved |
| 5, explicit "get it merged" authorization | `bfc0906f` (superseding
`ce20ecd0`) | Automatic Codex code review on undraft | P2: headless tool
loops bypass provider options → fixed in `a4c7c156`, replied and
resolved |
| 6 | `a4c7c156` | Explicit `@codex review` (code + security) | Code P2:
Coder aliases not resolved before clamping → fixed, replied and
resolved. Security P2: priority-tier budget accounting →
pre-existing/generic, coder#4352, replied and resolved |
| 7 | `2c4803c0` (residual on `main` after coder#4348) | Explicit `@codex
review` (code + security) | Both clean ("Didn't find any major issues" /
"No security issues") |
| 8 | `c9a0f572` (stacked on coder#4350; rebased onto `main` without changes)
| Explicit `@codex review` (code + security) | Both clean ("Didn't find
any major issues" 21:57Z / "No security issues" 21:59Z, 👍) |
| 9 | `76bff932` (rebased onto `main` after coder#4350 landed) | Explicit
`@codex review` (code + security) | Both clean; merge blocked by the
repo-wide `compaction1MRetry` content-filter failure (coder#4398), fixed by
coder#4401 |
| 10 | `bde7c0fe` (rebased onto `main` after coder#4401 landed; diff
unchanged) | Explicit `@codex review` (code + security) | Security
clean. Code P3: stale Astra comment claimed the catalog couples Astra
and Sol → fixed in `7deeea6e`, replied and resolved |
| 11 | this head (`7deeea6e`, comment-only fix) | Explicit `@codex
review` (code + security) | Pending |
| Advisory | — | One independent advisor | Recommended scope reduction
and accuracy fixes before official release. Scope reduction realised by
coder#4348 and coder#4350 landing first; this PR is the residual. |

Post-cap work, retained in order: `f04892f`→`fcf5d0f` budget-comment
accuracy; `782cca6`→`04bad77` maintainer-authorized provisional
estimate; `d24d776` rebase integration; `870259a` official Sol launch +
authorized Luna expansion; `40e4b2a6` verified Codex defaults, labels,
route/pricing regressions, docs; `ce20ecd0` tool-aware `none` clamp +
SDK patch; `bfc0906f` Nix hash refresh; `a4c7c156` model-boundary clamp;
`2c4803c0` residual on `main` (SDK patch + clamp + Coder alias + Codex
cap). Other rebase mappings: `01ca053`→`c47ba9c`, `252bba9`→`5363ca0`,
`cb5ac4b`→`a866d96`, `64169a3`→`c0d5def`. The cap did not reset on
rebase, handoff, scope expansion or re-scope. Backups of superseded
heads: `a4c7c15635f3a865baa4b937618da17459b48209`,
`2c4803c0c9481924ad682f969542a7a6db71e9e7`.

Historical stop reason: implementation and validation were complete for
both models, but the final head lacked review coverage under the
exhausted cap. The later direct conditional merge instruction reopened
delivery for one automatic final-head pair; its findings were then fixed
under the user's explicit "get it merged" authorization through the
normal gated merge path. When coder#4348 and then coder#4350 landed the same work
first, this PR was reduced to the residual fixes above rather than
closed.

</details>

---

_Generated with `xum` • Model: `anthropic:claude-opus-5-5` • Thinking:
`xhigh` • Cost: `$281.40`_

<!-- mux-attribution: model=anthropic:claude-opus-5-5 thinking=xhigh
costs=281.40 -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants