Repository navigation
Releases
v0.6.4
0.6.4
Fixed
- Credential resolution reads
$HERMES_HOME/muse-code-sub.jsonthroughProviderProfile.resolve_api_key_secret()instead of relying on theMUSE_CODE_SUB_TOKENexport, which only happens in the process that imports the plugin. Hermes reported "No usable credentials found for provider 'muse-code'" underplugins.isolation: hostand in a gateway that started before the login, even with a valid cached key. An explicitMUSE_CODE_SUB_TOKENthat differs from the cache still wins.
Full changelog: https://github.com/TheStreamCode/hermes-muse-code/blob/main/CHANGELOG.md
v0.6.3
What changed
requires_hermesis now>= 0.23.0, matching the requirement in the Hermes plugin catalog. The provider hooks the plugin uses are unchanged and still exist in 0.22; only the declared floor moved, so a catalog install and a direct install now agree about the supported host.
No code change.
Update
hermes plugins update muse-code-subscriptionthen restart the gateway (hermes gateway restart --yes).
v0.6.2
What changed
- Static fallback model list.
fallback_modelswas a single id, so a process where the live catalog probe cannot run (for example a worker without a readable login cache) showed one model in the picker and could block Apply. The fallback now covers the chat ids a standard subscription exposes; Hermes merges it with the live results and deduplicates, so the same models appear either way.muse-wonder-full-1.0(Power/Maximum tier) is deliberately absent. Contributed by @nordiskfamily in #15. - README. Documents the fallback and what selecting a
*-contributormodel implies: the lower quota is paid with training data, and background work inherits whichever model was picked.
Update
hermes plugins update muse-code-subscriptionthen restart the gateway (hermes gateway restart --yes).
v0.6.1
What changed
MuseCodeSubscriptionProfile.runtime_base_url()now returns the loopback adapter URL. Hermes resolves the runtime inference base URL through that hook, so without the overrideprofile.base_urlwas never read: every subscription request went straight toapi.meta.aiand Meta answered403 client_attestation_deniedeven though the adapter was bound.- Regression tests cover the routed path and the fallback to the direct endpoint when the adapter cannot bind.
Update
hermes plugins update muse-code-subscriptionthen restart the gateway (hermes gateway restart --yes).
v0.6.0
What changed
- Ported the loopback wire adapter to Hermes stdlib (
muse_adapter.py,ADAPTER_CONTRACT.mdv3). The adapter aliases the client tool names that collide with the 40-name Muse builtin catalog, restores them in streamed and JSON responses, repairs empty function-call arguments, and normalizes the Responses parameters. - The
muse-codeprovider base URL now points at the adapter's/v1origin; repeated imports and registrations reuse the same server, and a bind failure falls back to the direct endpoint with a warning. - If Meta still refuses the request, the adapter retries once with every tool aliased.
- Documented the two deployment overrides that bypass the adapter:
MUSE_CODE_SUB_TOKENin the environment or.env, andmodel.base_urlinconfig.yaml. MUSE_CODE_ADAPTER=offkeeps the proxy but disables the reshaping.
Update
hermes plugins update muse-code-subscriptionthen restart the gateway (hermes gateway restart --yes).
hermes-muse-code 0.5.0
0.5.0
Added
hermes auth add muse-coderuns the Meta device login in the browser and stores the credential in the existing cache.
Fixed
- Meta's client restriction (403) is classified as a provider policy block instead of a revoked credential, so the host no longer recommends re-authentication for it.
- Login errors no longer echo endpoint response bodies.
Changed
- The standalone login script remains available; the README documents the browser flow and the restriction.
hermes-muse-code 0.4.0
Fixed
- The subscription provider ignored
META_BASE_URLand could be pointed at another host; the base URL is now pinned to the subscription endpoint. MUSE_CODE_SUB_TOKENis refreshed from the credential cache without overwriting an explicit value set in the environment.- Importing the plugin no longer exports the subscription key as a side effect.
- Third-party plugins may not import private Hermes core modules: the Meta effort vocabulary and the
clamp_effortcontract are vendored locally (provenance:agent/reasoning_effort.pyat Hermes v0.22.0) with identical behavior.hermes plugins validateis clean.
Changed
- Requires Hermes Agent 0.22.0 or newer.
- Added
AUTH_CONTRACT.md, ruff configuration and regression tests; repository documentation and community files aligned with the shared standard.
See CHANGELOG.md.
v0.3.0: dynamic model discovery
Serve every model id returned by the live account catalog except the endpoint families verified as non-chat (sam-, muse-image-, muse-voice-*). New chat models appear with no plugin update. Supersedes #6.
v0.2.2
Live discovery now admits only muse-spark-* (the endpoint also serves non-chat families such as sam-*).
v0.2.1
Security hardening: the credential cache no longer persists the Meta OAuth access token (apiKey/accountId/email only). Re-run muse_code_login.py once to refresh pre-0.2.1 caches.