@codexapi/codexclaude 2.0.14 → 2.0.16

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/CUSTOMIZATIONS.md CHANGED
@@ -1,12 +1,13 @@
1
1
  # CodexAPI.pro Customizations
2
2
 
3
- `codexclaude` intentionally tracks the official OpenAI Codex CLI while keeping a thin CodexAPI.pro launcher layer.
3
+ `codexclaude` intentionally tracks the managed coding runtime while keeping a thin CodexAPI.pro launcher layer.
4
4
 
5
- ## Upstream Runtime
5
+ ## Runtime
6
6
 
7
- - Official package: `@openai/codex`
8
- - Pinned runtime version: `0.142.5`
9
- - Local launcher version: `2.0.14`
7
+ - Customer-facing app name: `Magnetapi.org Coding Agent`
8
+ - Local launcher version: `2.0.16`
9
+ - Bundled official Codex dependency: `@openai/codex@0.143.0`
10
+ - Bundled coding runtime is managed internally and must not be advertised in customer-facing startup text.
10
11
 
11
12
  ## Launcher Behavior
12
13
 
@@ -14,16 +15,16 @@
14
15
  - Saves the returned API username in `~/.codexclaude/config.json`.
15
16
  - Rewrites `~/.codex/config.toml` before every launch.
16
17
  - Starts official Codex with `--search` by default.
17
- - Passes all unknown commands directly to the official Codex CLI.
18
- - Provides `codexclaude changelog` so users can see forced-update changes from the terminal.
18
+ - Passes all unknown commands directly to the bundled coding runtime.
19
+ - Provides `codexclaude changelog` so users can see recommended or required update changes from the terminal.
19
20
  - Does not expose separate `codexclaude status` or `codexclaude usage` commands; wallet information remains a compact pre-launch line.
20
- - Checks npm latest at startup and blocks coding with an Update Now command when a newer launcher is available.
21
+ - Shows a non-blocking update notice at startup when a newer recommended launcher is available. Only versions below the backend minimum may be blocked.
21
22
 
22
23
  ## Provider Config
23
24
 
24
25
  The launcher writes a Codex model provider named `codexapi`:
25
26
 
26
- - `base_url = "https://codexapi.pro/v1"` for ChatGPT-5.5, Deepseek v4 Budget, and Google Gemini Flash 3.5, or `https://api-chicago.codexapi.pro/v1` for Opus 4.8.
27
+ - `base_url = "https://codexapi.pro/v1"` for ChatGPT-5.5, or `https://api-chicago.codexapi.pro/v1` for Claude-family models.
27
28
  - `wire_api = "responses"`
28
29
  - `supports_websockets = false`
29
30
  - `experimental_bearer_token` set to the customer API username
@@ -31,20 +32,18 @@ The launcher writes a Codex model provider named `codexapi`:
31
32
 
32
33
  ## Runtime Defaults
33
34
 
34
- - Model: selected by the user, defaulting to `gpt-5.5`; supported launcher choices are `gpt-5.5`, `claude-opus-4-8`, `claude-sonnet-5`, `claude-fable-5`, `deepseek-v4-pro`, and `gemini-3.5-flash`.
35
+ - Model: selected by the user, defaulting to `gpt-5.5`; supported launcher choices are `gpt-5.5`, `claude-opus-4-8`, `claude-sonnet-5`, and `claude-fable-5`.
35
36
  - Reasoning effort displayed in Codex: `xhigh`
36
37
  - Server-side upstream reasoning effort: `high`, enforced by CodexAPI.pro regardless of client display.
37
- - Local model catalog: `~/.codexclaude/model_catalog.json`; this keeps native Codex `/model` limited to the six supported CodexAPI.pro choices and prevents fallback metadata warnings for Opus 4.8, Sonnet 5, Fable 5, Deepseek v4 Budget, and Google Gemini Flash 3.5.
38
+ - Local model catalog: `~/.codexclaude/model_catalog.json`; this keeps native Codex `/model` limited to the four supported CodexAPI.pro choices and prevents fallback metadata warnings for Opus 4.8, Sonnet 5, and Fable 5.
38
39
  - Service tier: omitted by default; `/fast` remains a user-controlled Codex setting and is billed server-side when active.
39
40
  - Approval policy: `never`
40
41
  - Sandbox mode: `danger-full-access`
41
42
  - TUI status line: `model-with-reasoning`, `fast-mode`, `current-dir`
42
43
  - Claude-family Responses traffic uses the Claude-compatible CodexAPI.pro endpoint for CodexAPI.pro and ChatPlus accounts, while MyAPI.world accounts keep the MyAPI endpoint.
43
44
  - Fable 5 stays visible to the user while the backend applies the custom routed premium path and 2x billing multiplier.
44
- - Deepseek v4 Budget Responses traffic is routed through CodexAPI.pro's Deepseek-compatible gateway.
45
- - Google Gemini Flash 3.5 Responses traffic keeps the user-visible Gemini model id while CodexAPI.pro routes it internally through Sonnet 5 with the configured server effort.
46
45
 
47
- Current backend state verified on 2026-06-25: Admin Manage Models controls runtime routing server-side. This operational routing must not change the launcher-visible model ids, model catalog, or customer-facing labels.
46
+ Current backend state verified on 2026-07-08: Admin Manage Models controls runtime routing server-side. This operational routing must not change the launcher-visible model ids, model catalog, or customer-facing labels.
48
47
 
49
48
  ## Wallet Display
50
49
 
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # codexclaude
2
2
 
3
- `codexclaude` is the CodexAPI.pro launcher for customers who want one coding CLI that can use ChatGPT-5.5, Opus 4.8, Sonnet 5, Fable 5, Deepseek v4 Budget, or Google Gemini Flash 3.5 against the same Token Wallet.
3
+ `codexclaude` installs the Magnetapi.org Coding Agent for customers who want one coding CLI that can use ChatGPT-5.5, Opus 4.8, Sonnet 5, or Fable 5 against the same Token Wallet.
4
4
 
5
- Version `2.0.14` launches the official OpenAI Codex CLI `0.142.5` package and applies account, wallet, model, and Full Access defaults before Codex starts.
5
+ Version `2.0.16` applies account, wallet, model, and Full Access defaults before the coding session starts. It bundles official Codex `0.143.0`.
6
6
 
7
7
  ## Install
8
8
 
@@ -12,12 +12,12 @@ npm install -g @codexapi/codexclaude@latest
12
12
 
13
13
  This installs the current `codexclaude` launcher from npm.
14
14
 
15
- ## Required updates
15
+ ## Update Notices
16
16
 
17
- CodexAPI.pro checks the CodexAPI.pro API and npm at startup. If a newer required launcher is available, the app stops before coding starts and shows the exact **Update Now** command:
17
+ CodexAPI.pro checks the CodexAPI.pro API and npm at startup. If a newer recommended launcher is available, the app shows a clear update notice and the exact command, then lets you keep coding. Only versions below the backend minimum are blocked.
18
18
 
19
19
  ```bash
20
- npm install -g @codexapi/codexclaude@latest
20
+ npm install -g @codexapi/codexclaude@2.0.16
21
21
  ```
22
22
 
23
23
  This does not delete your local Codex session history. The update only replaces the `codexclaude` launcher and refreshes the CodexAPI.pro provider config.
@@ -48,7 +48,7 @@ Switch model:
48
48
  codexclaude model
49
49
  ```
50
50
 
51
- Available model labels are `ChatGPT-5.5`, `Opus 4.8`, `Sonnet 5`, `Fable 5`, `Deepseek v4 Budget`, and `Google Gemini Flash 3.5`. All six use a Responses-compatible endpoint and the same customer Token Wallet.
51
+ Available model labels are `ChatGPT-5.5`, `Opus 4.8`, `Sonnet 5`, and `Fable 5`. All four use a Responses-compatible endpoint and the same customer Token Wallet.
52
52
 
53
53
  Show current launcher changes:
54
54
 
@@ -67,15 +67,14 @@ gpt-5.5 xhigh · ~/codexapi · Wallet $20.00
67
67
  ## Preserved CodexAPI.pro Customizations
68
68
 
69
69
  - Dashboard username or email plus password login.
70
- - ChatGPT-5.5, Opus 4.8, Sonnet 5, Fable 5, Deepseek v4 Budget, or Google Gemini Flash 3.5 model selection.
70
+ - ChatGPT-5.5, Opus 4.8, Sonnet 5, or Fable 5 model selection.
71
71
  - CodexAPI.pro Responses-compatible provider at `https://codexapi.pro/v1`.
72
72
  - Full Access defaults: approval policy `never` and sandbox mode `danger-full-access`.
73
73
  - xhigh visible reasoning in the local Codex UI while CodexAPI.pro keeps upstream runtime effort server-managed.
74
- - A local `~/.codexclaude/model_catalog.json` file so native Codex `/model` lists only ChatGPT-5.5, Opus 4.8, Sonnet 5, Fable 5, Deepseek v4 Budget, and Google Gemini Flash 3.5.
74
+ - A local `~/.codexclaude/model_catalog.json` file so native Codex `/model` lists only ChatGPT-5.5, Opus 4.8, Sonnet 5, and Fable 5.
75
75
  - No default fast service tier. Fast mode is billed only when the user enables it inside Codex.
76
- - Official Codex `0.142.5` runtime with the current profile-compatible config enabled.
76
+ - Magnetapi.org Coding Agent `2.0.16` with the current profile-compatible config enabled.
77
77
  - Token Wallet balance lookup before launch without exposing separate `status` or `usage` launcher commands.
78
78
  - Opus 4.8 tool-call compatibility through the Chicago CodexAPI.pro Responses gateway.
79
- - Google Gemini Flash 3.5 is visible to users while CodexAPI.pro routes it server-side through the approved Sonnet 5 low-effort bridge.
80
79
  - Backend-identifying request headers so CodexAPI.pro can enforce subscription plan rules server-side.
81
- - npm latest-version checks before coding starts, with an explicit update command when a newer required launcher exists.
80
+ - Non-blocking update notices before coding starts, with an explicit update command when a newer recommended launcher exists.
@@ -10,8 +10,9 @@ import { stdin as input, stdout as output } from "node:process";
10
10
 
11
11
  const require = createRequire(import.meta.url);
12
12
 
13
- const APP_VERSION = "2.0.14";
14
- const CODEX_VERSION = "0.142.5";
13
+ const APP_VERSION = "2.0.16";
14
+ const CODEX_VERSION = "0.143.0";
15
+ const APP_DISPLAY_NAME = "Magnetapi.org Coding Agent";
15
16
  const DISPLAY_REASONING_EFFORT = "xhigh";
16
17
  const SERVER_REASONING_EFFORT = "high";
17
18
  const API_ORIGIN = (process.env.CODEXCLAUDE_API_ORIGIN || "https://codexapi.pro").replace(/\/+$/, "");
@@ -63,24 +64,13 @@ const MODELS = {
63
64
  aliases: ["4", "fable", "fable-5", "fabel", "fabel-5", "claude-fable-5", "claude-fabel-5"],
64
65
  premium: true,
65
66
  },
66
- "deepseek-v4-pro": {
67
- id: "deepseek-v4-pro",
68
- label: "Deepseek v4 Budget",
69
- aliases: ["5", "deepseek", "deepseek-v4", "deepseek-v4-pro", "budget"],
70
- budget: true,
71
- },
72
- "gemini-3.5-flash": {
73
- id: "gemini-3.5-flash",
74
- label: "Google Gemini Flash 3.5",
75
- aliases: ["6", "gemini", "flash", "gemini-flash", "gemini-3.5-flash", "gemini-flash-3.5", "google-gemini-flash-3.5"],
76
- },
77
67
  };
78
68
 
79
69
  async function main() {
80
70
  ensureExecutable();
81
71
  const [command = "start", ...args] = process.argv.slice(2);
82
72
  if (["-v", "--version", "version"].includes(command)) {
83
- console.log(`codexclaude ${APP_VERSION}`);
73
+ console.log(`${APP_DISPLAY_NAME} ${APP_VERSION}`);
84
74
  return;
85
75
  }
86
76
  if (["-h", "--help", "help"].includes(command)) {
@@ -125,18 +115,18 @@ async function main() {
125
115
 
126
116
  function printHelp() {
127
117
  console.log(`
128
- codexclaude ${APP_VERSION}
118
+ ${APP_DISPLAY_NAME} ${APP_VERSION}
129
119
 
130
120
  Commands:
131
121
  codexclaude login Login with CodexAPI.pro username/email and password
132
- codexclaude model Select ChatGPT-5.5, Opus 4.8, Sonnet 5, Fable 5, Deepseek v4 Budget, or Google Gemini Flash 3.5
122
+ codexclaude model Select ChatGPT-5.5, Opus 4.8, Sonnet 5, or Fable 5
133
123
  codexclaude changelog Show the latest CodexAPI.pro launcher changes
134
124
  codexclaude setup Rewrite ~/.codex/config.toml with Full Access defaults
135
125
  codexclaude start Start Codex with --search
136
126
  codexclaude resume Resume with codex resume --search
137
127
  codexclaude logout Remove saved codexclaude account state
138
128
 
139
- Any other command is passed through to official Codex CLI ${CODEX_VERSION} after config is applied.
129
+ Any other command is passed through to the bundled coding runtime after Magnetapi.org account and model config is applied.
140
130
  `);
141
131
  }
142
132
 
@@ -283,19 +273,9 @@ async function enforceLauncherVersion() {
283
273
  if (metadata?.updateRequired || isOlderVersion(APP_VERSION, metadata?.minimumVersion)) {
284
274
  throw new Error(updateRequiredMessage(metadata));
285
275
  }
286
- const npmMetadata = await npmLatestMetadata();
287
- if (npmMetadata?.version && isOlderVersion(APP_VERSION, npmMetadata.version)) {
288
- throw new Error(
289
- updateRequiredMessage({
290
- latestVersion: npmMetadata.version,
291
- minimumVersion: npmMetadata.version,
292
- installCommand: UPDATE_COMMAND,
293
- registryInstallCommand: UPDATE_COMMAND,
294
- changes: [
295
- `npm latest is ${npmMetadata.version}; update codexclaude before starting a coding session.`,
296
- ],
297
- }),
298
- );
276
+ const updateMetadata = optionalUpdateMetadata(metadata, await npmLatestMetadata());
277
+ if (updateMetadata) {
278
+ printOptionalUpdateNotice(updateMetadata);
299
279
  }
300
280
  }
301
281
 
@@ -394,13 +374,49 @@ function updateRequiredMessage(metadata) {
394
374
  const latest = metadata?.latestVersion || "latest";
395
375
  const minimum = metadata?.minimumVersion || latest;
396
376
  return [
397
- `Update Now: CodexAPI.pro has updated to codexclaude ${latest}. Update your agent now to continue.`,
377
+ `Update required: CodexAPI.pro has updated to codexclaude ${latest}. Update your agent now to continue.`,
398
378
  `Installed codexclaude: ${APP_VERSION}. Required: ${minimum}. Latest: ${latest}.`,
399
379
  `Run: ${installCommand}`,
400
380
  "Your Codex session history will not be deleted. The update only replaces the codexclaude launcher and rewrites provider config backups.",
401
381
  ].join("\n");
402
382
  }
403
383
 
384
+ function optionalUpdateMetadata(serviceMetadata, npmMetadata) {
385
+ const candidates = [serviceMetadata, npmMetadata].filter(Boolean);
386
+ let selected = null;
387
+ for (const candidate of candidates) {
388
+ const candidateVersion = candidate.latestVersion || candidate.version;
389
+ if (!candidateVersion || !isOlderVersion(APP_VERSION, candidateVersion)) {
390
+ continue;
391
+ }
392
+ if (!selected || isOlderVersion(selected.latestVersion || selected.version, candidateVersion)) {
393
+ selected = {
394
+ ...candidate,
395
+ latestVersion: candidateVersion,
396
+ };
397
+ }
398
+ }
399
+ return selected;
400
+ }
401
+
402
+ function printOptionalUpdateNotice(metadata) {
403
+ const installCommand =
404
+ metadata?.installCommand ||
405
+ metadata?.registryInstallCommand ||
406
+ UPDATE_COMMAND;
407
+ const latest = metadata?.latestVersion || metadata?.version || "latest";
408
+ const changes = Array.isArray(metadata?.changes) ? metadata.changes.slice(0, 4) : [];
409
+ const border = "─".repeat(64);
410
+ const line = (text) => `│ ${String(text)}`.slice(0, 65).padEnd(65) + "│";
411
+ console.error(`\n┌${border}┐`);
412
+ console.error(line(`codexclaude ${latest} is available. You can keep coding on ${APP_VERSION}.`));
413
+ console.error(line(`Update when ready: ${installCommand}`));
414
+ for (const change of changes) {
415
+ console.error(line(`• ${change}`));
416
+ }
417
+ console.error(`└${border}┘\n`);
418
+ }
419
+
404
420
  function isOlderVersion(current, required) {
405
421
  if (!required) {
406
422
  return false;
@@ -526,12 +542,6 @@ function modelCatalogDescription(modelId) {
526
542
  if (modelId === "claude-fable-5") {
527
543
  return "CodexAPI.pro Fable 5 premium coding route with local Codex tools and wallet billing.";
528
544
  }
529
- if (modelId === "deepseek-v4-pro") {
530
- return "CodexAPI.pro Deepseek v4 Budget coding route with local Codex tools and wallet billing.";
531
- }
532
- if (modelId === "gemini-3.5-flash") {
533
- return "CodexAPI.pro Google Gemini Flash 3.5 coding route with local Codex tools and wallet billing.";
534
- }
535
545
  return "CodexAPI.pro ChatGPT-5.5 coding route with local Codex tools and wallet billing.";
536
546
  }
537
547
 
@@ -572,6 +582,7 @@ async function runCodex(args) {
572
582
  if (!isTruthy(process.env.CODEXCLAUDE_QUIET_STATUS)) {
573
583
  console.log(formatStatusLine(config, wallet, process.cwd()));
574
584
  }
585
+ process.stdout.write(`\x1b]0;${APP_DISPLAY_NAME} v${APP_VERSION}\x07`);
575
586
  const launch = resolveCodexLaunch();
576
587
  const env = {
577
588
  ...process.env,
@@ -687,7 +698,7 @@ function numericWalletValue(value) {
687
698
  function formatStatusLine(config, wallet, cwd) {
688
699
  const model = modelStatusName(config.model);
689
700
  const walletText = wallet ? `Wallet ${formatUsd(wallet.balance)}` : "Wallet unavailable";
690
- return `${model} ${DISPLAY_REASONING_EFFORT} · ${formatCwd(cwd)} · ${walletText}`;
701
+ return `${APP_DISPLAY_NAME} v${APP_VERSION} · ${model} ${DISPLAY_REASONING_EFFORT} · ${formatCwd(cwd)} · ${walletText}`;
691
702
  }
692
703
 
693
704
  function modelStatusName(model) {
@@ -700,12 +711,6 @@ function modelStatusName(model) {
700
711
  if (model === "claude-fable-5") {
701
712
  return "fable-5";
702
713
  }
703
- if (model === "deepseek-v4-pro") {
704
- return "deepseek-v4 budget";
705
- }
706
- if (model === "gemini-3.5-flash") {
707
- return "gemini flash 3.5";
708
- }
709
714
  return "gpt-5.5";
710
715
  }
711
716
 
@@ -723,8 +728,19 @@ function normalizeConfig(config) {
723
728
  if (["claude-fabel-5", "fable-5", "fabel-5"].includes(normalized.model)) {
724
729
  normalized.model = "claude-fable-5";
725
730
  }
726
- if (["gemini-flash-3.5", "gemini-flash-3-5", "google-gemini-flash-3.5"].includes(normalized.model)) {
727
- normalized.model = "gemini-3.5-flash";
731
+ if (
732
+ [
733
+ "deepseek-v4-pro",
734
+ "deepseek-v4-budget",
735
+ "deepseek",
736
+ "budget",
737
+ "gemini-3.5-flash",
738
+ "gemini-flash-3.5",
739
+ "gemini-flash-3-5",
740
+ "google-gemini-flash-3.5",
741
+ ].includes(normalized.model)
742
+ ) {
743
+ normalized.model = "gpt-5.5";
728
744
  }
729
745
  if (!MODELS[normalized.model]) {
730
746
  normalized.model = "gpt-5.5";
package/codexclaude.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # codexclaude Customization Ledger
2
2
 
3
3
  This file records the CodexAPI.pro-specific behavior that must survive every
4
- upgrade of the official OpenAI Codex CLI dependency. Treat it as the handoff
4
+ upgrade of the bundled coding runtime dependency. Treat it as the handoff
5
5
  document for future maintainers. The launcher should remain a thin wrapper
6
6
  around official `@openai/codex`; do not patch the native Codex binary unless
7
7
  there is no supported configuration or API boundary that can solve the issue.
@@ -9,9 +9,10 @@ there is no supported configuration or API boundary that can solve the issue.
9
9
  ## Current Release
10
10
 
11
11
  - Launcher package: `@codexapi/codexclaude`
12
- - Launcher version: `2.0.14`
13
- - Official Codex runtime dependency: `@openai/codex@0.142.5`
14
- - Public install command: `npm install -g @codexapi/codexclaude@latest`
12
+ - Launcher version: `2.0.16`
13
+ - Customer-facing app name: `Magnetapi.org Coding Agent`
14
+ - Bundled runtime dependency: official `@openai/codex@0.143.0`; do not print the upstream runtime version in customer-facing startup text.
15
+ - Public update command for this optional release: `npm install -g @codexapi/codexclaude@2.0.16`
15
16
  - Default API origin: `https://codexapi.pro`
16
17
  - Normal Responses base URL: `https://codexapi.pro/v1`
17
18
  - Opus 4.8 Responses base URL: `https://api-chicago.codexapi.pro/v1`
@@ -19,21 +20,19 @@ there is no supported configuration or API boundary that can solve the issue.
19
20
  - Generated Codex config: `~/.codex/config.toml`
20
21
  - Generated Codex model catalog: `~/.codexclaude/model_catalog.json`
21
22
 
22
- State verified on 2026-07-05: the launcher pins official Codex CLI `0.142.5`. Backend routing is server-controlled by Admin Manage Models and must not collapse the launcher model list or rename customer-selected model ids.
23
+ State verified on 2026-07-08: the launcher presents itself as Magnetapi.org Coding Agent `2.0.16`. Backend routing is server-controlled by Admin Manage Models and must not collapse the launcher model list or rename customer-selected model ids.
23
24
 
24
25
  ## Required User-Facing Model Behavior
25
26
 
26
- `codexclaude` supports exactly six visible model choices:
27
+ `codexclaude` supports exactly four visible model choices:
27
28
 
28
29
  - `gpt-5.5` displayed as `ChatGPT-5.5`
29
30
  - `claude-opus-4-8` displayed as `Opus 4.8`
30
31
  - `claude-sonnet-5` displayed as `Sonnet 5`
31
32
  - `claude-fable-5` displayed as `Fable 5`
32
- - `deepseek-v4-pro` displayed as `Deepseek v4 Budget`
33
- - `gemini-3.5-flash` displayed as `Google Gemini Flash 3.5`
34
33
 
35
- The launcher command `codexclaude model` must list only those six options.
36
- The native Codex `/model` picker must also list only those six options. This
34
+ The launcher command `codexclaude model` must list only those four options.
35
+ The native Codex `/model` picker must also list only those four options. This
37
36
  is enforced by writing `model_catalog_json` in `~/.codex/config.toml` and
38
37
  creating a complete Codex-compatible catalog at
39
38
  `~/.codexclaude/model_catalog.json`.
@@ -58,7 +57,7 @@ because the request body model is how CodexAPI.pro snapshots routing and
58
57
  billing before generation starts. The correct fix is to provide valid metadata
59
58
  for `claude-opus-4-8`.
60
59
 
61
- `bin/codexclaude.js` writes a local catalog with full metadata for all six
60
+ `bin/codexclaude.js` writes a local catalog with full metadata for all four
62
61
  supported slugs. Each entry must include, at minimum:
63
62
 
64
63
  - `slug`
@@ -77,7 +76,7 @@ supported slugs. Each entry must include, at minimum:
77
76
  - `input_modalities`
78
77
  - `additional_speed_tiers`
79
78
 
80
- Keep `visibility = "list"` for the six supported entries. Do not include any
79
+ Keep `visibility = "list"` for the four supported entries. Do not include any
81
80
  other list-visible models in this catalog.
82
81
 
83
82
  ## Reasoning Display Versus Server Runtime
@@ -141,7 +140,7 @@ terminal_title = ["project-name", "model-with-reasoning", "run-state"]
141
140
  ```
142
141
 
143
142
  The selected model must remain the user's chosen slug. Do not force the local
144
- config model to `gpt-5.5` when Opus, Sonnet, Fable, Deepseek, or Gemini is selected. The backend can
143
+ config model to `gpt-5.5` when Opus, Sonnet, or Fable is selected. The backend can
145
144
  route any selected model through GPT-5.5 or another upstream internally, but the
146
145
  client request must preserve the user-facing selected slug for display,
147
146
  snapshotting, and billing records.
@@ -154,14 +153,6 @@ Claude-family codexclaude models use the CodexAPI.pro Claude-compatible Response
154
153
 
155
154
  `claude-fable-5` is a premium customer-visible model. The backend bills it at the configured 2x multiplier and routes it through the Admin-selected Fable 5 route while preserving `claude-fable-5` in client-visible status and usage records.
156
155
 
157
- `deepseek-v4-pro` uses the configured API origin. The backend currently routes
158
- this through the CodexAPI.pro-compatible path according to the active server
159
- policy.
160
-
161
- `gemini-3.5-flash` uses the configured API origin. The backend must keep
162
- `gemini-3.5-flash` visible to the user and usage records while routing the
163
- request internally through `claude-sonnet-5` at the configured server effort.
164
-
165
156
  The launcher must send these headers for every model:
166
157
 
167
158
  - `X-CodexAPI-Client: codexclaude`
@@ -211,8 +202,8 @@ When upgrading official `@openai/codex`:
211
202
 
212
203
  1. Update `CODEX_VERSION` in `bin/codexclaude.js`.
213
204
  2. Update `package.json` and `package-lock.json` to the same official Codex version.
214
- 3. Keep the launcher package version higher than the last published version.
215
- 4. Preserve the six-model `MODELS` map and aliases.
205
+ 3. Keep the launcher package version higher than the last published version and keep customer-facing startup text on the Magnetapi.org Coding Agent version.
206
+ 4. Preserve the four-model `MODELS` map and aliases.
216
207
  5. Preserve `DISPLAY_REASONING_EFFORT = "xhigh"` and keep `SERVER_REASONING_EFFORT` aligned with the server default.
217
208
  6. Preserve `writeModelCatalog()` and the `model_catalog_json` line in generated config.
218
209
  7. Preserve Full Access defaults: `approval_policy = "never"` and `sandbox_mode = "danger-full-access"`.
@@ -220,7 +211,7 @@ When upgrading official `@openai/codex`:
220
211
  9. Preserve bearer username auth with the CodexAPI.pro API username.
221
212
  10. Preserve the `X-CodexAPI-*` headers.
222
213
  11. Preserve Claude-family endpoint routing unless operations changes it.
223
- 12. Preserve update enforcement through `/api/v1/codexclaude/version` and npm latest metadata.
214
+ 12. Preserve update checks through `/api/v1/codexclaude/version` and npm metadata. Recommended releases must be non-blocking; only versions below the backend `minimumVersion` may be forced.
224
215
  13. Update this file with a new release section explaining what changed.
225
216
  14. Run the validation commands below before publishing.
226
217
 
@@ -250,8 +241,8 @@ The JSON output must contain exactly:
250
241
 
251
242
  - `gpt-5.5`
252
243
  - `claude-opus-4-8`
253
- - `deepseek-v4-pro`
254
- - `gemini-3.5-flash`
244
+ - `claude-sonnet-5`
245
+ - `claude-fable-5`
255
246
 
256
247
  The Opus entry must have `default_reasoning_level = "xhigh"` and must not use
257
248
  fallback metadata.
@@ -270,6 +261,21 @@ python3 -m py_compile app/main.py app/openai_compat.py app/config.py app/postgre
270
261
  /root/codexapi/.venv/bin/pytest -q tests/test_openai_compat.py tests/test_main_helpers.py
271
262
  ```
272
263
 
264
+ ## Version 2.0.16 Changes
265
+
266
+ - Updated the bundled official Codex dependency to `@openai/codex@0.143.0`.
267
+ - Kept the launcher model picker and native Codex `/model` catalog limited to ChatGPT-5.5, Opus 4.8, Sonnet 5, and Fable 5.
268
+ - Kept the customer-facing startup identity as Magnetapi.org Coding Agent and continued hiding the upstream Codex runtime version in normal startup text.
269
+ - Changed the update surface for this release to a recommended, non-blocking notice. Users should be shown the exact update command, but they must not be forced off `2.0.15` for this release.
270
+ - Preserved Full Access defaults, xhigh visible reasoning, bearer username auth, Responses wire API, and the CodexAPI.pro identification headers.
271
+
272
+ ## Version 2.0.15 Changes
273
+
274
+ - Renamed the launcher-controlled startup/status surface to Magnetapi.org Coding Agent and now prints the app version instead of the upstream runtime version.
275
+ - Removed Gemini Flash and Deepseek from the launcher model picker and generated native Codex model catalog.
276
+ - Kept ChatGPT-5.5, Opus 4.8, Sonnet 5, and Fable 5 as the only visible codexclaude model choices.
277
+ - Preserved Full Access defaults, xhigh visible reasoning, wallet auth, local model catalog metadata, and CodexAPI.pro identifying headers.
278
+
273
279
  ## Version 2.0.14 Changes
274
280
 
275
281
  - Updated the official OpenAI Codex runtime dependency to `@openai/codex@0.142.5`, the latest version currently published on npm.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@codexapi/codexclaude",
3
- "version": "2.0.14",
4
- "description": "CodexAPI.pro coding CLI launcher for ChatGPT-5.5, Opus 4.8, Sonnet 5, Fable 5, Deepseek v4 Budget, and Google Gemini Flash 3.5, powered by official Codex CLI 0.142.5.",
3
+ "version": "2.0.16",
4
+ "description": "Magnetapi.org Coding Agent launcher for ChatGPT-5.5, Opus 4.8, Sonnet 5, and Fable 5.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "bin": {
@@ -17,7 +17,7 @@
17
17
  "node": ">=20"
18
18
  },
19
19
  "dependencies": {
20
- "@openai/codex": "^0.142.5"
20
+ "@openai/codex": "0.143.0"
21
21
  },
22
22
  "publishConfig": {
23
23
  "access": "public"
@@ -26,10 +26,6 @@
26
26
  "codex",
27
27
  "claude",
28
28
  "opus",
29
- "deepseek",
30
- "gemini",
31
- "flash",
32
- "budget",
33
29
  "codexapi",
34
30
  "coding-cli"
35
31
  ],