@codexapi/codexclaude 2.0.15 → 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
@@ -5,7 +5,8 @@
5
5
  ## Runtime
6
6
 
7
7
  - Customer-facing app name: `Magnetapi.org Coding Agent`
8
- - Local launcher version: `2.0.15`
8
+ - Local launcher version: `2.0.16`
9
+ - Bundled official Codex dependency: `@openai/codex@0.143.0`
9
10
  - Bundled coding runtime is managed internally and must not be advertised in customer-facing startup text.
10
11
 
11
12
  ## Launcher Behavior
@@ -15,9 +16,9 @@
15
16
  - Rewrites `~/.codex/config.toml` before every launch.
16
17
  - Starts official Codex with `--search` by default.
17
18
  - Passes all unknown commands directly to the bundled coding runtime.
18
- - Provides `codexclaude changelog` so users can see forced-update changes from the terminal.
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
 
@@ -42,7 +43,7 @@ The launcher writes a Codex model provider named `codexapi`:
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
45
 
45
- 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.
46
47
 
47
48
  ## Wallet Display
48
49
 
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
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.15` applies account, wallet, model, and Full Access defaults before the coding session 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.
@@ -73,8 +73,8 @@ gpt-5.5 xhigh · ~/codexapi · Wallet $20.00
73
73
  - xhigh visible reasoning in the local Codex UI while CodexAPI.pro keeps upstream runtime effort server-managed.
74
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
- - Magnetapi.org Coding Agent `2.0.15` 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
79
  - Backend-identifying request headers so CodexAPI.pro can enforce subscription plan rules server-side.
80
- - 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,8 @@ 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.15";
14
- const CODEX_VERSION = "0.142.5";
13
+ const APP_VERSION = "2.0.16";
14
+ const CODEX_VERSION = "0.143.0";
15
15
  const APP_DISPLAY_NAME = "Magnetapi.org Coding Agent";
16
16
  const DISPLAY_REASONING_EFFORT = "xhigh";
17
17
  const SERVER_REASONING_EFFORT = "high";
@@ -273,19 +273,9 @@ async function enforceLauncherVersion() {
273
273
  if (metadata?.updateRequired || isOlderVersion(APP_VERSION, metadata?.minimumVersion)) {
274
274
  throw new Error(updateRequiredMessage(metadata));
275
275
  }
276
- const npmMetadata = await npmLatestMetadata();
277
- if (npmMetadata?.version && isOlderVersion(APP_VERSION, npmMetadata.version)) {
278
- throw new Error(
279
- updateRequiredMessage({
280
- latestVersion: npmMetadata.version,
281
- minimumVersion: npmMetadata.version,
282
- installCommand: UPDATE_COMMAND,
283
- registryInstallCommand: UPDATE_COMMAND,
284
- changes: [
285
- `npm latest is ${npmMetadata.version}; update codexclaude before starting a coding session.`,
286
- ],
287
- }),
288
- );
276
+ const updateMetadata = optionalUpdateMetadata(metadata, await npmLatestMetadata());
277
+ if (updateMetadata) {
278
+ printOptionalUpdateNotice(updateMetadata);
289
279
  }
290
280
  }
291
281
 
@@ -384,13 +374,49 @@ function updateRequiredMessage(metadata) {
384
374
  const latest = metadata?.latestVersion || "latest";
385
375
  const minimum = metadata?.minimumVersion || latest;
386
376
  return [
387
- `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.`,
388
378
  `Installed codexclaude: ${APP_VERSION}. Required: ${minimum}. Latest: ${latest}.`,
389
379
  `Run: ${installCommand}`,
390
380
  "Your Codex session history will not be deleted. The update only replaces the codexclaude launcher and rewrites provider config backups.",
391
381
  ].join("\n");
392
382
  }
393
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
+
394
420
  function isOlderVersion(current, required) {
395
421
  if (!required) {
396
422
  return false;
package/codexclaude.md CHANGED
@@ -9,10 +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.15`
12
+ - Launcher version: `2.0.16`
13
13
  - Customer-facing app name: `Magnetapi.org Coding Agent`
14
- - Bundled runtime dependency: managed internally; do not print the upstream runtime version in customer-facing startup text.
15
- - Public install command: `npm install -g @codexapi/codexclaude@latest`
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`
16
16
  - Default API origin: `https://codexapi.pro`
17
17
  - Normal Responses base URL: `https://codexapi.pro/v1`
18
18
  - Opus 4.8 Responses base URL: `https://api-chicago.codexapi.pro/v1`
@@ -20,7 +20,7 @@ there is no supported configuration or API boundary that can solve the issue.
20
20
  - Generated Codex config: `~/.codex/config.toml`
21
21
  - Generated Codex model catalog: `~/.codexclaude/model_catalog.json`
22
22
 
23
- State verified on 2026-07-06: the launcher presents itself as Magnetapi.org Coding Agent `2.0.15`. 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.
24
24
 
25
25
  ## Required User-Facing Model Behavior
26
26
 
@@ -57,7 +57,7 @@ because the request body model is how CodexAPI.pro snapshots routing and
57
57
  billing before generation starts. The correct fix is to provide valid metadata
58
58
  for `claude-opus-4-8`.
59
59
 
60
- `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
61
61
  supported slugs. Each entry must include, at minimum:
62
62
 
63
63
  - `slug`
@@ -211,7 +211,7 @@ When upgrading official `@openai/codex`:
211
211
  9. Preserve bearer username auth with the CodexAPI.pro API username.
212
212
  10. Preserve the `X-CodexAPI-*` headers.
213
213
  11. Preserve Claude-family endpoint routing unless operations changes it.
214
- 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.
215
215
  13. Update this file with a new release section explaining what changed.
216
216
  14. Run the validation commands below before publishing.
217
217
 
@@ -261,6 +261,14 @@ python3 -m py_compile app/main.py app/openai_compat.py app/config.py app/postgre
261
261
  /root/codexapi/.venv/bin/pytest -q tests/test_openai_compat.py tests/test_main_helpers.py
262
262
  ```
263
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
+
264
272
  ## Version 2.0.15 Changes
265
273
 
266
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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codexapi/codexclaude",
3
- "version": "2.0.15",
3
+ "version": "2.0.16",
4
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",
@@ -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"