5 Commits
Author SHA1 Message Date
Jason e615a6f460 refactor(forms): make provider form hints follow the app's actual mode
The full form serves both direct and routing, so pass the app's actual mode
in: when the app is in direct mode and the upstream format needs conversion,
warn under the format that saving the in-use card breaks requests, or that
other cards need routing first. The Claude fallback model explanation now
describes the main model in direct mode.

Also fix wording that no longer matched behavior (takeover, "direct" for
pass-through formats, route-only hints that also apply in aggregation),
show the Codex default model field in the aggregation layout when the model
list is empty, hide fields the backend ignores on managed-account cards
(Codex/xAI OAuth endpoint, format and auth field; Copilot user agent and
request overrides), and remove 12 unused codexConfig strings.
2026-10-11 22:51:28 +08:00
Jason 9f7ac1fa67 refactor(codex): make the first row of the model list the default model
With a model list, the separate default model field duplicated the list:
the first row is now the default model, as in the Aggregation layout, and
a help tip next to "Model list" says so. Renaming or removing the first row
updates the model; an older card whose default model sits further down
shows that row first without counting as an edit.

Cards without a list keep the default model field below the empty list.
They rely on Codex's built-in /model menu, and adding a list row just to
set the model would shrink that menu to the listed entries. Adding the
first row to an empty list seeds it with the current default model.
2026-10-11 22:51:28 +08:00
Jason 0dae89e25c refactor(codex): move the model list out of the advanced options
The default model and the sub-agent model are picked from the model
list, but the list sat collapsed inside the advanced options below them.
Show it right after the connection fields, before the default model, and
call it "Model list" as the Aggregation layout does.

The advanced section no longer opens on its own for native Responses
providers or cards with a list: that only existed to reveal the mapping.
The default model drops its own fetch button when the list above already
has one; Grok Build has no list and keeps it.
2026-10-11 22:51:28 +08:00
Jie LiuandJay Liu b4a079430c fix(codex): stop storing representative apiFormat for Copilot (#7972)
* fix(codex): stop storing representative apiFormat for Copilot

* test(codex): simplify Copilot form regression tests

* fix(codex): remove unnecessary Copilot form refactor

---------

Co-authored-by: Jay Liu <jieliu1@microsoft.com>
2026-10-09 16:44:34 +08:00
f9db9f7056 feat(codex): support GitHub Copilot managed accounts with Responses/Chat routing (#7157)
Add a GitHub Copilot preset for Codex that uses a managed GitHub account.
The local route resolves each request's model against the account's live
Copilot /models catalogue and picks the upstream protocol the model
advertises (native Responses first, Chat Completions as fallback in auto
mode), with an optional explicit protocol override.

- Response handling, the opaque-state rectifier and Stack web_search
  stripping follow the transport actually used for each request rather
  than the stored apiFormat.
- Fetching models fills the catalogue from the account's live prompt
  limit, parallel tool calls and reasoning levels; presets keep
  conservative fallbacks.
- Codex only treats a card as managed Copilot by its provider type, so
  self-hosted relays keep their own key and endpoint.
- Copilot request identity headers are shared between the Claude and
  Codex paths.

Co-authored-by: yuwk <52391318+ump45nose@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Jason <farion1231@gmail.com>
2026-10-08 00:10:45 +08:00