openclaw/extensions/github-copilot
InvalidPanda ツ b64bfc5d9a
fix(github-copilot): preserve reasoning IDs for Copilot Codex models (#71684)
* fix(github-copilot): preserve all reasoning IDs and add gpt-5.3-codex support

The existing guard (8fd15ed0e5) only skipped rewriting reasoning item IDs
when encrypted_content was a non-null string. When gpt-5.3-codex is used
via GitHub Copilot, the model falls through to the forward-compat catch-all
with reasoning:false, so encrypted_content is never requested and arrives
as null — bypassing the guard and causing a rewrite. Copilot validates
reasoning item IDs server-side regardless of whether the client includes
encrypted_content, so the rewritten id triggers the 400 error.

Two changes:

1. connection-bound-ids.ts: skip ALL reasoning items unconditionally.
   Reasoning items always reference server-side state bound to their
   original ID; rewriting any of them breaks Copilot's lookup.

2. models.ts + index.ts: extend the forward-compat cloning logic to
   cover gpt-5.3-codex (adds it to the template-target set and to
   CODEX_TEMPLATE_MODEL_IDS so it can also serve as a template source
   for gpt-5.4). Adds gpt-5.3-codex to COPILOT_XHIGH_MODEL_IDS for
   the thinking profile.

Thanks @InvalidPandaa.

* docs(github-copilot): clarify gpt-5.3-codex is a no-op template for itself

https://claude.ai/code/session_01EAFmq4WyKkiUkVAqRXp4Bm

* fix(github-copilot): remove dead reasoning prefix branch in deriveReplacementId

https://claude.ai/code/session_01EAFmq4WyKkiUkVAqRXp4Bm

* fix(github-copilot): align reasoning id replay tests

* test(plugin-sdk): use cjs sidecar for require fast path

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-04-25 20:52:07 +01:00
..
api.ts
auth.test.ts feat(github-copilot): add embedding provider for memory search (#61718) 2026-04-15 10:39:28 +01:00
auth.ts feat(github-copilot): add embedding provider for memory search (#61718) 2026-04-15 10:39:28 +01:00
connection-bound-ids.live.test.ts fix(github-copilot): preserve encrypted reasoning ids with encrypted_content (#71448) 2026-04-25 08:57:47 +01:00
connection-bound-ids.test.ts fix(github-copilot): preserve reasoning IDs for Copilot Codex models (#71684) 2026-04-25 20:52:07 +01:00
connection-bound-ids.ts fix(github-copilot): preserve reasoning IDs for Copilot Codex models (#71684) 2026-04-25 20:52:07 +01:00
embeddings.test.ts refactor: move memory embeddings into provider plugins 2026-04-17 02:57:18 +01:00
embeddings.ts refactor: move memory embeddings into provider plugins 2026-04-17 02:57:18 +01:00
index.test.ts fix(copilot): refresh live discovery config 2026-04-22 23:28:27 -07:00
index.ts fix(github-copilot): preserve reasoning IDs for Copilot Codex models (#71684) 2026-04-25 20:52:07 +01:00
login.ts chore(lint): enable unnecessary type parameter rule 2026-04-18 18:31:13 +01:00
models-defaults.ts fix: update Copilot Opus default to 4.7 2026-04-21 20:00:06 +01:00
models.test.ts fix(github-copilot): preserve reasoning IDs for Copilot Codex models (#71684) 2026-04-25 20:52:07 +01:00
models.ts fix(github-copilot): preserve reasoning IDs for Copilot Codex models (#71684) 2026-04-25 20:52:07 +01:00
openclaw.plugin.json feat(github-copilot): add embedding provider for memory search (#61718) 2026-04-15 10:39:28 +01:00
package.json chore: bump version to 2026.4.25 2026-04-25 10:31:52 +01:00
provider-auth.contract.test.ts test(extensions): move provider contracts to owners 2026-04-20 20:55:39 +01:00
provider-discovery.contract.test.ts test(extensions): move provider contracts to owners 2026-04-20 20:55:39 +01:00
provider-runtime.contract.test.ts test(extensions): move provider contracts to owners 2026-04-20 20:55:39 +01:00
register.runtime.ts
replay-policy.ts refactor: dedupe provider lowercase helpers 2026-04-07 22:24:32 +01:00
stream.test.ts fix(github-copilot): preserve reasoning IDs for Copilot Codex models (#71684) 2026-04-25 20:52:07 +01:00
stream.ts fix: keep copilot on boundary-aware stream path 2026-04-25 00:06:40 +01:00
token.ts fix(extensions): align provider helper surfaces 2026-04-04 20:06:32 +01:00
tsconfig.json chore(plugins): bulk add package boundary tsconfig rollout 2026-04-07 08:48:23 +01:00
usage.ts