Repository navigation
[Feature]: include Hermes in the background catalog refresh of connected integrations (#6836) #7704
Description
Area
Catalog / models
What are you trying to accomplish?
Keep a connected Hermes integration's model catalog current without an external sync job. When providers add or remove models, Hermes should receive the updated providers.opencodex.models list the same way the other file integrations do.
What prevents this today?
#6836 added the background refresh of already-connected clients after a catalog change. The default list in src/integrations/catalog-refresh.ts:15 is:
["pi", "aside", "raycast", "omo", "commandcode", "droid", "opencode", "kilo", "qoder", "gentle-shell"]hermes is not in it. The #6836 description documents Cline as intentionally excluded from unattended refresh, but does not mention Hermes. The Hermes target already declares sourcePreservingYaml: { path: ["providers", "opencodex"] } in src/integrations/registry.ts, and the writer supports source-preserving YAML fragments, so the refresh machinery appears to be able to handle it.
As a result, a Hermes user who connected through Connect → Hermes gets a one-time snapshot of the catalog. New models never appear unless the user re-applies the integration manually or runs an external writer, and an external writer moves the integration into conflict / foreign-edit.
What should OpenCodex do?
If the omission was not deliberate: include hermes in the unattended owned-refresh list, under the same owned-refresh rules as the other file integrations (unowned, removed or edited blocks are never claimed).
If it was deliberate (for example, YAML edits under unattended refresh are considered too risky), it would help to document the reason next to the Cline exclusion, so users know a manual re-apply is expected.
This overlaps with #7700 (named Hermes profiles), which touches the same integration files, so I would rather follow the maintainers' sequencing than open a competing change.
Example usage or interface
No new interface. After ocx integration client enable --client hermes, a background catalog change refreshes ~/.hermes/config.yaml providers.opencodex.models exactly as it already does for Command Code or OpenCode.
Alternatives or workarounds
An external timer that rewrites providers.opencodex.models. It works, but it is a second writer on a file OpenCodex owns, and it leaves the native integration permanently in conflict / foreign-edit.
Additional context
Related: #6836 (background refresh), #7700 / #7674 (named Hermes profiles), #5710 / #5711 (earlier Hermes managed-config conflict). If this is accepted, I can send the PR against dev with a focused regression test for the Hermes YAML refresh, after #7700 lands or rebased onto it.
Checks
- I searched existing issues and documentation.
- This request describes a concrete OpenCodex workflow rather than merely naming a desired technology.
- I removed secrets and personal data.
Activity
rrmlima commentedon Oct 25, 2026
Draft PR: #7719. It adds
hermesto the owned catalog refresh lists (background default, explicitocx sync, and the management sync), with regression tests for the three cases (connected block refreshed byte-preserving, hand-edited block refused asconflict, never-connected config untouched) and the matchingstructure/and docs updates. Nowriter.tschange, and no code overlap with #7700 (only a small docs overlap).feat(integrations): refresh connected Hermes configs after catalog ch…
feat(integrations): refresh connected Hermes configs after catalog ch…
lidge-jun commentedon Oct 27, 2026
Resolved by #7719, merged into
devas d9f594b.Catalog changes and
ocx syncnow refresh a connected Hermes default profile (the profile the running proxy'sHERMES_HOMEresolves) under the same owned-refresh rules as the other file integrations:providers.opencodexleave the profile Current.Named profiles show Update needed and refresh through an explicit Apply in Connect → Hermes; the integrations guide documents this.
Closing manually because merges into
devdo not auto-close issues. The fix ships in the next release fromdev.