Skip to content

fix(models): keep gpt-5.3-codex-spark on its own display line (fix #461)#481

Open
fightingst wants to merge 1 commit into
getagentseal:mainfrom
fightingst:fix/gpt-5.3-codex-spark-display-name
Open

fix(models): keep gpt-5.3-codex-spark on its own display line (fix #461)#481
fightingst wants to merge 1 commit into
getagentseal:mainfrom
fightingst:fix/gpt-5.3-codex-spark-display-name

Conversation

@fightingst

@fightingst fightingst commented Jun 12, 2026

Copy link
Copy Markdown

Summary

  • gpt-5.3-codex-spark is a distinct Codex model variant, but both
    getShortModelName() and Codex's own modelDisplayName() collapsed
    it into the base GPT-5.3 Codex label via the longest-prefix
    fallback (longest-first sort + key + '-' boundary match).
  • Add explicit gpt-5.3-codex-spark entries to both SHORT_NAMES
    and Codex's modelDisplayNames, sorted before gpt-5.3-codex so
    the more specific id wins.

Repro (before fix)

CODEX_HOME=/path/to/fake codeburn today --provider codex --format json
# models: [{ "name": "GPT-5.3 Codex", "calls": 4, ... }]
# spark calls silently merged into the base line

After fix, the same fixture produces two independent line items:

{ "name": "GPT-5.3 Codex Spark", "calls": 2, "cost": ... }
{ "name": "GPT-5.3 Codex",       "calls": 2, "cost": ... }

Changes

File +Lines Purpose
src/models.ts +1 Add gpt-5.3-codex-spark to SHORT_NAMES (sorted longest-first, automatically wins)
src/providers/codex.ts +1 Add gpt-5.3-codex-spark to per-provider modelDisplayNames
tests/models.test.ts +6 Regression: getShortModelName('gpt-5.3-codex-spark')'GPT-5.3 Codex Spark'
tests/providers/codex.test.ts +12 Regression: provider.modelDisplayName('gpt-5.3-codex-spark')'GPT-5.3 Codex Spark'

Testing

  • npm test -- tests/models.test.ts tests/providers/codex.test.ts — 126/126 pass
  • E2E: wrote a fake ~/.codex/sessions/2026/06/12/rollout-*.jsonl with
    gpt-5.3-codex-spark model and ran codeburn today --provider codex --format json; confirmed spark and base now appear as separate line
    items with correct per-model cost attribution
  • Verified the 4 pre-existing failures elsewhere in the suite
    (usage-aggregator, cli-proxy-path, cli-json-daily) also fail on
    main without this change — not introduced by this PR

Fixes #461

…tagentseal#461)

gpt-5.3-codex-spark is a distinct Codex model variant, but both
getShortModelName() and Codex's own modelDisplayName() collapsed it
into the base "GPT-5.3 Codex" label via the longest-prefix fallback
(longest-first sort + "key + '-'" boundary match).

Add explicit gpt-5.3-codex-spark entries to both SHORT_NAMES and
Codex's modelDisplayNames, sorted before gpt-5.3-codex so the more
specific id wins. Regression tests cover both the shared resolver
and the Codex provider's per-provider display name.
@fightingst fightingst force-pushed the fix/gpt-5.3-codex-spark-display-name branch from b3ed53d to 8e6c6c9 Compare June 12, 2026 07:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix display label for gpt-5.3-codex-spark in codex usage output

1 participant