fix: add gpt-5.3-codex-spark to openai-codex curated model list#7844
Merged
Conversation
The _PROVIDER_MODELS['openai-codex'] static list was a manually maintained duplicate of DEFAULT_CODEX_MODELS in codex_models.py. They drifted — the static list was missing gpt-5.3-codex-spark (and previously gpt-5.4). Replace the hardcoded list with _codex_curated_models() which calls DEFAULT_CODEX_MODELS + _add_forward_compat_models() from codex_models.py. Now both the CLI 'hermes model' flow and the gateway /model picker derive from the same source of truth. New models added to DEFAULT_CODEX_MODELS or _FORWARD_COMPAT_TEMPLATE_MODELS automatically appear everywhere.
19141f7 to
b1c54fb
Compare
forsonny
pushed a commit
to forsonny/hermes-agent
that referenced
this pull request
Apr 11, 2026
…trol backoff Merge upstream/main (3 commits): - fix(streaming): adaptive backoff + cursor strip to prevent message truncation (NousResearch#7683) Telegram flood control during streaming caused messages to be cut off. New: adaptive backoff (double interval on flood, cap at 10s), cursor strip on fallback entry, retry on fallback send, default edit_interval 1.0s. - fix: unify openai-codex model list from codex_models.py (NousResearch#7844) - fix(matrix): pass required args to MemoryCryptoStore for mautrix >=0.21 (NousResearch#7848) Add 33 tests for the new streaming flood control behavior: - TestIsFloodError (7): flood/retry/rate detection, false positives - TestSendOrEditReturnValues (9): bool return values for all scenarios - TestAdaptiveBackoffDirect (6): progressive backoff, strike tracking, reset - TestTryStripCursor (4): cursor cleanup on fallback entry - TestFallbackFinalRetry (1): retry on flood during fallback send - TestDefaultEditInterval (3): config defaults - TestFloodStrrikesState (3): initialization state Self-improve: automated improvement
Tommyeds
pushed a commit
to Tommyeds/hermes-agent
that referenced
this pull request
Apr 12, 2026
…sResearch#7844) The _PROVIDER_MODELS['openai-codex'] static list was a manually maintained duplicate of DEFAULT_CODEX_MODELS in codex_models.py. They drifted — the static list was missing gpt-5.3-codex-spark (and previously gpt-5.4). Replace the hardcoded list with _codex_curated_models() which calls DEFAULT_CODEX_MODELS + _add_forward_compat_models() from codex_models.py. Now both the CLI 'hermes model' flow and the gateway /model picker derive from the same source of truth. New models added to DEFAULT_CODEX_MODELS or _FORWARD_COMPAT_TEMPLATE_MODELS automatically appear everywhere.
3 tasks
teknium1
added a commit
that referenced
this pull request
Apr 28, 2026
Follow-up to the static list refresh: replace the hardcoded xAI entries with _xai_curated_models(), mirroring the _codex_curated_models() pattern from PR #7844. The helper reads $HERMES_HOME/models_dev_cache.json at import time (no network call) and falls back to a small static list when the cache is missing or malformed. Why: _PROVIDER_MODELS["xai"] has drifted once already (issue #16699) and will drift again next time xAI renames a model. Hermes already maintains the models.dev cache and uses it for context-length lookups; pointing _PROVIDER_MODELS at the same source means the /model picker self-heals on the next cache refresh instead of requiring a PR. Behavior: - With cache populated (normal user): shows every current xAI model ID, picks up renames automatically on next refresh. - Without cache (fresh install, offline): falls back to a static snapshot of the 9 current flagship IDs. - Malformed cache / unexpected shape: same static fallback, no crash. Import time verified <20ms — disk read only, no HTTP. Addresses the structural piece of #16699 ("consider a single _provider_models(provider) resolver") for xAI. Other per-provider lists can adopt the same pattern as drift is observed.
cluricaun28
referenced
this pull request
in cluricaun28/Logos
Apr 28, 2026
Follow-up to the static list refresh: replace the hardcoded xAI entries
with _xai_curated_models(), mirroring the _codex_curated_models()
pattern from PR #7844. The helper reads $HERMES_HOME/models_dev_cache.json
at import time (no network call) and falls back to a small static list
when the cache is missing or malformed.
Why: _PROVIDER_MODELS["xai"] has drifted once already (issue #16699) and
will drift again next time xAI renames a model. Hermes already maintains
the models.dev cache and uses it for context-length lookups; pointing
_PROVIDER_MODELS at the same source means the /model picker self-heals on
the next cache refresh instead of requiring a PR.
Behavior:
- With cache populated (normal user): shows every current xAI model ID,
picks up renames automatically on next refresh.
- Without cache (fresh install, offline): falls back to a static snapshot
of the 9 current flagship IDs.
- Malformed cache / unexpected shape: same static fallback, no crash.
Import time verified <20ms — disk read only, no HTTP.
Addresses the structural piece of #16699 ("consider a single
_provider_models(provider) resolver") for xAI. Other per-provider lists
can adopt the same pattern as drift is observed.
ulasbilgen
pushed a commit
to ulasbilgen/hermes-adhd-agent
that referenced
this pull request
May 1, 2026
…sResearch#7844) The _PROVIDER_MODELS['openai-codex'] static list was a manually maintained duplicate of DEFAULT_CODEX_MODELS in codex_models.py. They drifted — the static list was missing gpt-5.3-codex-spark (and previously gpt-5.4). Replace the hardcoded list with _codex_curated_models() which calls DEFAULT_CODEX_MODELS + _add_forward_compat_models() from codex_models.py. Now both the CLI 'hermes model' flow and the gateway /model picker derive from the same source of truth. New models added to DEFAULT_CODEX_MODELS or _FORWARD_COMPAT_TEMPLATE_MODELS automatically appear everywhere.
ulasbilgen
pushed a commit
to ulasbilgen/hermes-adhd-agent
that referenced
this pull request
May 1, 2026
…search#16699) Follow-up to the static list refresh: replace the hardcoded xAI entries with _xai_curated_models(), mirroring the _codex_curated_models() pattern from PR NousResearch#7844. The helper reads $HERMES_HOME/models_dev_cache.json at import time (no network call) and falls back to a small static list when the cache is missing or malformed. Why: _PROVIDER_MODELS["xai"] has drifted once already (issue NousResearch#16699) and will drift again next time xAI renames a model. Hermes already maintains the models.dev cache and uses it for context-length lookups; pointing _PROVIDER_MODELS at the same source means the /model picker self-heals on the next cache refresh instead of requiring a PR. Behavior: - With cache populated (normal user): shows every current xAI model ID, picks up renames automatically on next refresh. - Without cache (fresh install, offline): falls back to a static snapshot of the 9 current flagship IDs. - Malformed cache / unexpected shape: same static fallback, no crash. Import time verified <20ms — disk read only, no HTTP. Addresses the structural piece of NousResearch#16699 ("consider a single _provider_models(provider) resolver") for xAI. Other per-provider lists can adopt the same pattern as drift is observed.
aj-nt
pushed a commit
to aj-nt/hermes-agent
that referenced
this pull request
May 1, 2026
…sResearch#7844) The _PROVIDER_MODELS['openai-codex'] static list was a manually maintained duplicate of DEFAULT_CODEX_MODELS in codex_models.py. They drifted — the static list was missing gpt-5.3-codex-spark (and previously gpt-5.4). Replace the hardcoded list with _codex_curated_models() which calls DEFAULT_CODEX_MODELS + _add_forward_compat_models() from codex_models.py. Now both the CLI 'hermes model' flow and the gateway /model picker derive from the same source of truth. New models added to DEFAULT_CODEX_MODELS or _FORWARD_COMPAT_TEMPLATE_MODELS automatically appear everywhere.
donald131
pushed a commit
to donald131/hermes-agent
that referenced
this pull request
May 2, 2026
…search#16699) Follow-up to the static list refresh: replace the hardcoded xAI entries with _xai_curated_models(), mirroring the _codex_curated_models() pattern from PR NousResearch#7844. The helper reads $HERMES_HOME/models_dev_cache.json at import time (no network call) and falls back to a small static list when the cache is missing or malformed. Why: _PROVIDER_MODELS["xai"] has drifted once already (issue NousResearch#16699) and will drift again next time xAI renames a model. Hermes already maintains the models.dev cache and uses it for context-length lookups; pointing _PROVIDER_MODELS at the same source means the /model picker self-heals on the next cache refresh instead of requiring a PR. Behavior: - With cache populated (normal user): shows every current xAI model ID, picks up renames automatically on next refresh. - Without cache (fresh install, offline): falls back to a static snapshot of the 9 current flagship IDs. - Malformed cache / unexpected shape: same static fallback, no crash. Import time verified <20ms — disk read only, no HTTP. Addresses the structural piece of NousResearch#16699 ("consider a single _provider_models(provider) resolver") for xAI. Other per-provider lists can adopt the same pattern as drift is observed.
02356abc
pushed a commit
to 02356abc/hermes-agent
that referenced
this pull request
May 14, 2026
…sResearch#7844) The _PROVIDER_MODELS['openai-codex'] static list was a manually maintained duplicate of DEFAULT_CODEX_MODELS in codex_models.py. They drifted — the static list was missing gpt-5.3-codex-spark (and previously gpt-5.4). Replace the hardcoded list with _codex_curated_models() which calls DEFAULT_CODEX_MODELS + _add_forward_compat_models() from codex_models.py. Now both the CLI 'hermes model' flow and the gateway /model picker derive from the same source of truth. New models added to DEFAULT_CODEX_MODELS or _FORWARD_COMPAT_TEMPLATE_MODELS automatically appear everywhere.
02356abc
pushed a commit
to 02356abc/hermes-agent
that referenced
this pull request
May 14, 2026
…search#16699) Follow-up to the static list refresh: replace the hardcoded xAI entries with _xai_curated_models(), mirroring the _codex_curated_models() pattern from PR NousResearch#7844. The helper reads $HERMES_HOME/models_dev_cache.json at import time (no network call) and falls back to a small static list when the cache is missing or malformed. Why: _PROVIDER_MODELS["xai"] has drifted once already (issue NousResearch#16699) and will drift again next time xAI renames a model. Hermes already maintains the models.dev cache and uses it for context-length lookups; pointing _PROVIDER_MODELS at the same source means the /model picker self-heals on the next cache refresh instead of requiring a PR. Behavior: - With cache populated (normal user): shows every current xAI model ID, picks up renames automatically on next refresh. - Without cache (fresh install, offline): falls back to a static snapshot of the 9 current flagship IDs. - Malformed cache / unexpected shape: same static fallback, no crash. Import time verified <20ms — disk read only, no HTTP. Addresses the structural piece of NousResearch#16699 ("consider a single _provider_models(provider) resolver") for xAI. Other per-provider lists can adopt the same pattern as drift is observed.
olympus-terminal
pushed a commit
to olympus-terminal/hermes-agent
that referenced
this pull request
May 16, 2026
…sResearch#7844) The _PROVIDER_MODELS['openai-codex'] static list was a manually maintained duplicate of DEFAULT_CODEX_MODELS in codex_models.py. They drifted — the static list was missing gpt-5.3-codex-spark (and previously gpt-5.4). Replace the hardcoded list with _codex_curated_models() which calls DEFAULT_CODEX_MODELS + _add_forward_compat_models() from codex_models.py. Now both the CLI 'hermes model' flow and the gateway /model picker derive from the same source of truth. New models added to DEFAULT_CODEX_MODELS or _FORWARD_COMPAT_TEMPLATE_MODELS automatically appear everywhere.
dannyJ848
pushed a commit
to dannyJ848/hermes-agent
that referenced
this pull request
May 17, 2026
…search#16699) Follow-up to the static list refresh: replace the hardcoded xAI entries with _xai_curated_models(), mirroring the _codex_curated_models() pattern from PR NousResearch#7844. The helper reads $HERMES_HOME/models_dev_cache.json at import time (no network call) and falls back to a small static list when the cache is missing or malformed. Why: _PROVIDER_MODELS["xai"] has drifted once already (issue NousResearch#16699) and will drift again next time xAI renames a model. Hermes already maintains the models.dev cache and uses it for context-length lookups; pointing _PROVIDER_MODELS at the same source means the /model picker self-heals on the next cache refresh instead of requiring a PR. Behavior: - With cache populated (normal user): shows every current xAI model ID, picks up renames automatically on next refresh. - Without cache (fresh install, offline): falls back to a static snapshot of the 9 current flagship IDs. - Malformed cache / unexpected shape: same static fallback, no crash. Import time verified <20ms — disk read only, no HTTP. Addresses the structural piece of NousResearch#16699 ("consider a single _provider_models(provider) resolver") for xAI. Other per-provider lists can adopt the same pattern as drift is observed.
gweeteve
pushed a commit
to gweeteve/hermes-agent
that referenced
this pull request
Jun 2, 2026
…sResearch#7844) The _PROVIDER_MODELS['openai-codex'] static list was a manually maintained duplicate of DEFAULT_CODEX_MODELS in codex_models.py. They drifted — the static list was missing gpt-5.3-codex-spark (and previously gpt-5.4). Replace the hardcoded list with _codex_curated_models() which calls DEFAULT_CODEX_MODELS + _add_forward_compat_models() from codex_models.py. Now both the CLI 'hermes model' flow and the gateway /model picker derive from the same source of truth. New models added to DEFAULT_CODEX_MODELS or _FORWARD_COMPAT_TEMPLATE_MODELS automatically appear everywhere.
gweeteve
pushed a commit
to gweeteve/hermes-agent
that referenced
this pull request
Jun 2, 2026
…search#16699) Follow-up to the static list refresh: replace the hardcoded xAI entries with _xai_curated_models(), mirroring the _codex_curated_models() pattern from PR NousResearch#7844. The helper reads $HERMES_HOME/models_dev_cache.json at import time (no network call) and falls back to a small static list when the cache is missing or malformed. Why: _PROVIDER_MODELS["xai"] has drifted once already (issue NousResearch#16699) and will drift again next time xAI renames a model. Hermes already maintains the models.dev cache and uses it for context-length lookups; pointing _PROVIDER_MODELS at the same source means the /model picker self-heals on the next cache refresh instead of requiring a PR. Behavior: - With cache populated (normal user): shows every current xAI model ID, picks up renames automatically on next refresh. - Without cache (fresh install, offline): falls back to a static snapshot of the 9 current flagship IDs. - Malformed cache / unexpected shape: same static fallback, no crash. Import time verified <20ms — disk read only, no HTTP. Addresses the structural piece of NousResearch#16699 ("consider a single _provider_models(provider) resolver") for xAI. Other per-provider lists can adopt the same pattern as drift is observed.
Egavasyug
pushed a commit
to Egavasyug/hermes-agent
that referenced
this pull request
Jun 10, 2026
…sResearch#7844) The _PROVIDER_MODELS['openai-codex'] static list was a manually maintained duplicate of DEFAULT_CODEX_MODELS in codex_models.py. They drifted — the static list was missing gpt-5.3-codex-spark (and previously gpt-5.4). Replace the hardcoded list with _codex_curated_models() which calls DEFAULT_CODEX_MODELS + _add_forward_compat_models() from codex_models.py. Now both the CLI 'hermes model' flow and the gateway /model picker derive from the same source of truth. New models added to DEFAULT_CODEX_MODELS or _FORWARD_COMPAT_TEMPLATE_MODELS automatically appear everywhere.
Egavasyug
pushed a commit
to Egavasyug/hermes-agent
that referenced
this pull request
Jun 10, 2026
…search#16699) Follow-up to the static list refresh: replace the hardcoded xAI entries with _xai_curated_models(), mirroring the _codex_curated_models() pattern from PR NousResearch#7844. The helper reads $HERMES_HOME/models_dev_cache.json at import time (no network call) and falls back to a small static list when the cache is missing or malformed. Why: _PROVIDER_MODELS["xai"] has drifted once already (issue NousResearch#16699) and will drift again next time xAI renames a model. Hermes already maintains the models.dev cache and uses it for context-length lookups; pointing _PROVIDER_MODELS at the same source means the /model picker self-heals on the next cache refresh instead of requiring a PR. Behavior: - With cache populated (normal user): shows every current xAI model ID, picks up renames automatically on next refresh. - Without cache (fresh install, offline): falls back to a static snapshot of the 9 current flagship IDs. - Malformed cache / unexpected shape: same static fallback, no crash. Import time verified <20ms — disk read only, no HTTP. Addresses the structural piece of NousResearch#16699 ("consider a single _provider_models(provider) resolver") for xAI. Other per-provider lists can adopt the same pattern as drift is observed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
_PROVIDER_MODELS['openai-codex']was missinggpt-5.3-codex-spark, causing it to not appear in the gateway/modelpicker (Telegram/Discord) for ChatGPT OAuth users.The CLI
hermes modelflow gets codex-spark viacodex_models.py's_add_forward_compat_models()synthesis — but the gateway reads the static curated list frommodels.pydirectly, which was never updated.Follows up on #7670 which added
gpt-5.4andgpt-5.4-minibut missed this one.Changes
gpt-5.3-codex-sparkto_PROVIDER_MODELS['openai-codex']inhermes_cli/models.pyTest plan
/modelpicker for openai-codex users should now show codex-spark in the list