[Bug]: Stale provider registries in Ekko Studio 0.7.22 omit Hermes-supported providers
Ekko Studio Version
0.7.22 (hermes-web-ui)
Agent Runtime and Version (if applicable)
Hermes Agent 0.21.3
Bug Description
Ekko Studio 0.7.22 maintains provider registries (PROVIDER_ENV_MAP and PROVIDER_PRESETS) that are out of sync with Hermes Agent 0.21.3. Native Hermes providers missing from these tables are omitted from Studio’s built-in discovery path, even when Hermes supports them and valid credentials are configured. This affects /api/hermes/available-models and New Chat → Provider.
Verified reproduction: alibaba-token-plan-cn works through Hermes CLI but is absent in Studio. It is the concrete example below of a broader registry synchronization defect; other missing providers have not been individually tested end to end.
Affected profile: default; model: deepseek-v4.1-flash.
Steps to Reproduce
- Configure Hermes’s native
alibaba-token-plan-cnprovider with a validALIBABA_TOKEN_PLAN_CN_API_KEYin~/.hermes/.env. - Verify Hermes can call it:This returned
hermes chat --provider alibaba-token-plan-cn --model deepseek-v4.1-flash -q "reply only OK"OKin the affected environment. An authenticated request tohttps://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/modelsalso succeeded and listeddeepseek-v4.1-flash. - Start Studio against the same Hermes home/profile and open New Chat → Provider.
- Inspect
GET /api/hermes/available-models?profile=default.
Expected Behavior
Studio should keep discovery aligned with the installed Hermes runtime for supported native providers, preserving canonical IDs, aliases, credentials, endpoints, and available models. A provider should not silently disappear solely because Studio’s manually maintained metadata is stale. Providers requiring an unsupported integration should have that limitation made explicit. For the verified case, alibaba-token-plan-cn and deepseek-v4.1-flash should be selectable.
Actual Behavior
alibaba-token-plan-cn is absent from both groups and allProviders, so it cannot be selected in New Chat. The response contains zai, deepseek, opencode-free, openai-codex, and the internal moa group. model_visibility is empty. The credential pool contains the canonical provider and its alias dashscope-token-plan-cn; the required API-key environment entry is present.
Logs / Error Messages
Environment
macOS
Node Version
No response
Additional Context
Root-cause evidence
The installed 0.7.22 source map identifies the following path. The same omission was verified in upstream main at commit b036cf24479a652559ea19e48143069e8596b61e:
PROVIDER_ENV_MAPincludesalibabaandalibaba-coding-plan, but notalibaba-token-plan-cn.buildAvailableForProfile()iteratesObject.entries(PROVIDER_ENV_MAP)before checking credentials and resolving model catalogs. The missing provider never enters that loop.PROVIDER_PRESETSalso lacks the provider.allProvidersis built from those presets.
In the installed Hermes Agent 0.21.3, plugins/model-providers/alibaba/__init__.py registers alibaba-token-plan-cn, alias dashscope-token-plan-cn, API-key authentication, and base URL https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1. Its static model catalog also includes this provider. Studio’s manually maintained registries have therefore diverged from Hermes’s native registry.
Broader scope and verification limits
The affected installation’s diagnostic report compared Hermes 0.21.3’s registry with the union of Studio’s two tables and found additional missing identifiers, including alibaba-token-plan, deepinfra / deep-infra, nebius, fireworks / fw, upstage, vertex, and bedrock. The reported difference was 46 registry identifiers, including aliases—not 46 independently reproduced provider failures.
The code-level exclusion is shared: an ID absent from PROVIDER_ENV_MAP is never considered by the built-in discovery loop, and an ID absent from PROVIDER_PRESETS is not emitted through the preset-based allProviders path. Consequently, other omitted native providers can encounter the same discovery failure. Their authentication/transport requirements and actual runtime behavior need individual validation; this report does not claim that every provider can be fixed with an OpenAI-compatible preset.
The missing custom:* entries observed during diagnosis had a separate cause: corresponding providers / custom_providers definitions were absent from the current configuration. They are not evidence of this native-registry bug.
Suggested fix
- Audit and synchronize native provider coverage against Hermes 0.21.3, deduplicating aliases and checking authentication/transport support. Prefer deriving metadata from the installed Hermes registry, with explicit compatibility handling, over maintaining an independent snapshot.
- As an immediate fix for the verified case, add
alibaba-token-plan-cnto both Studio registries, withALIBABA_TOKEN_PLAN_CN_API_KEY, optionalALIBABA_TOKEN_PLAN_CN_BASE_URL, the native base URL, and a model fallback sourced from Hermes. Preserve Hermes’s supported API-key fallback (ALIBABA_TOKEN_PLAN_API_KEY) and normalize the alias to the canonical ID where appropriate. - Add registry-parity/compatibility tests plus representative discovery tests across supported authentication types and aliases. For the verified case, assert that valid profile credentials produce the canonical provider in
groupsandallProviders, with the correct endpoint/model and existing providers preserved.
Related: #1186 concerned an older alibaba-coding-plan mapping problem. This report documents registry drift in 0.7.22, with alibaba-token-plan-cn as the verified reproduction. Runtime/API observations above come from the affected installation’s diagnostic report; the upstream source check was performed separately.
Source: EKKOLearnAI/hermes-studio