codex-copilot-dx 0.9.11 → 0.9.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -20,7 +20,7 @@ The adapter handles response history, encrypted reasoning state, function/custom
20
20
 
21
21
  Codex can select Standard or Fast without changing CCDX configuration. When the client requests a model with `service_tier: "priority"`, CCDX uses its exact `-fast` model only when the live Copilot catalog advertises that variant as enabled, selectable, OpenAI-owned, and Responses-only. Standard mode continues to use the base model; CCDX does not invent Fast availability when the upstream catalog does not provide it. This retains the established `gpt-5.6-sol` / `gpt-5.6-sol-fast` mapping and applies the same exact-match rule to future models.
22
22
 
23
- Codex Auto-review uses the hidden `codex-auto-review` model ID. CCDX maps it to Copilot's `gpt-5.5` Responses model by default, independently of the interactive Fast/Standard selection, and logs both model IDs when the mapping is used. The review target can be changed interactively without reinstalling or restarting CCDX.
23
+ Codex Auto-review uses the hidden `codex-auto-review` model ID. CCDX maps it to Copilot's `gpt-6.1-sol` Responses model by default, independently of the interactive Fast/Standard selection, and logs both model IDs when the mapping is used. An omitted Auto-review reasoning effort defaults to `low`; explicit efforts and other reasoning fields are preserved. The review target can be changed interactively without reinstalling or restarting CCDX.
24
24
 
25
25
  ### GPT-6 model catalog
26
26
 
@@ -117,7 +117,7 @@ ccdx auto-review-model
117
117
 
118
118
  The selector first queries the running adapter, including its last-known-good model list when live refresh is unavailable, then falls back to a local model cache no older than seven days. It offers model IDs that advertise a Responses endpoint and are not explicitly hidden from the model picker. This selection does not itself verify policy or inference access.
119
119
 
120
- The selection is saved in `~/.config/codex-copilot-dx/config.json`, or under `XDG_CONFIG_HOME` when set. Choosing `gpt-5.5` clears the override and restores the package default. A running adapter reads the setting on the next Auto-review request.
120
+ The selection is saved in `~/.config/codex-copilot-dx/config.json`, or under `XDG_CONFIG_HOME` when set. Choosing `gpt-6.1-sol` clears the override and restores the package default. Existing saved models, including `gpt-5.5`, and environment overrides remain effective. A running adapter reads the setting on the next Auto-review request. The selector changes the model, not the reasoning effort; Codex Guardian currently sends `low`. GPT-6.1 Sol does not support explicit `none` or `minimal` efforts.
121
121
 
122
122
  ### Runtime caches
123
123
 
@@ -352,7 +352,7 @@ Recovery first tries compatible local credentials and starts Device Flow only wh
352
352
  | `CCDX_STREAM_IDLE_TIMEOUT_MS` | `120000` | Maximum idle time between upstream streaming body chunks |
353
353
  | `CCDX_UPSTREAM_RETRIES` | `2` | Retries for safe requests and clearly pre-connect POST failures; capped at `5` |
354
354
  | `CCDX_UPSTREAM_RETRY_DELAY_MS` | `300` | Initial upstream retry backoff in milliseconds; capped at `5000` |
355
- | `CCDX_AUTO_REVIEW_MODEL` | saved selection or `gpt-5.5` | Copilot Responses model used for Codex Auto-review; overrides the interactive selection |
355
+ | `CCDX_AUTO_REVIEW_MODEL` | saved selection or `gpt-6.1-sol` | Copilot Responses model used for Codex Auto-review; overrides the interactive selection |
356
356
  | `CCDX_LOG_PATH` | unset | Mirror terminal logs to a file; set to `1` for `~/.local/share/codex-copilot-dx/debug.log` |
357
357
  | `CCDX_LOG_LEVEL` | `info` | Set to `debug` for upstream attempts, status codes, retry causes, and timings |
358
358
  | `CCDX_LOG_MAX_BYTES` | `16777216` | Rotate the debug log at this size and retain one `.1` backup; set to `0` to disable rotation |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-copilot-dx",
3
- "version": "0.9.11",
3
+ "version": "0.9.12",
4
4
  "description": "Use Codex App with GitHub Copilot",
5
5
  "author": "Dale Xiao",
6
6
  "type": "module",
package/src/models.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  export const CODEX_AUTO_REVIEW_MODEL = "codex-auto-review";
2
- export const DEFAULT_CODEX_AUTO_REVIEW_MODEL = "gpt-5.5";
2
+ export const DEFAULT_CODEX_AUTO_REVIEW_MODEL = "gpt-6.1-sol";
3
3
  export const CODEX_GPT6_MODEL = "gpt-6-astra";
4
4
 
5
5
  function hasOpenAIEndpoint(model) {
@@ -272,7 +272,12 @@ export function createResponsesHandler(options) {
272
272
  delete prepared.body.service_tier;
273
273
  }
274
274
  stripUnsupportedGpt6ServiceTier(prepared.body, requestedModel, upstreamModel, priorityTierModel);
275
- if (requestedModel === CODEX_AUTO_REVIEW_MODEL) delete prepared.body.service_tier;
275
+ if (requestedModel === CODEX_AUTO_REVIEW_MODEL) {
276
+ delete prepared.body.service_tier;
277
+ if (prepared.body.reasoning?.effort === undefined) {
278
+ prepared.body.reasoning = { ...prepared.body.reasoning, effort: "low" };
279
+ }
280
+ }
276
281
  if (upstreamModel !== requestedModel) prepared.body.model = upstreamModel;
277
282
  markResponseModel(upstreamModel);
278
283
  const upstreamLog = upstreamModel === requestedModel ? "" : ` upstream_model=${upstreamModel}`;
@@ -537,7 +542,12 @@ export function createResponsesCompactHandler(options) {
537
542
  delete prepared.body.service_tier;
538
543
  }
539
544
  stripUnsupportedGpt6ServiceTier(prepared.body, requestedModel, upstreamModel, priorityTierModel);
540
- if (requestedModel === CODEX_AUTO_REVIEW_MODEL) delete prepared.body.service_tier;
545
+ if (requestedModel === CODEX_AUTO_REVIEW_MODEL) {
546
+ delete prepared.body.service_tier;
547
+ if (prepared.body.reasoning?.effort === undefined) {
548
+ prepared.body.reasoning = { ...prepared.body.reasoning, effort: "low" };
549
+ }
550
+ }
541
551
  if (upstreamModel !== requestedModel) prepared.body.model = upstreamModel;
542
552
  const upstreamLog = upstreamModel === requestedModel ? "" : ` upstream_model=${upstreamModel}`;
543
553
  console.log(status("info", `responses compact model=${requestedModel}${upstreamLog} stream=false`));