Skip to content

[Feature]: include Hermes in the background catalog refresh of connected integrations (#6836) #7704

Closed

Description

@rrmlima

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

  1. added
    enhancementNew feature or request
    catalogModel catalog, slugs, visibility, routed entries
    on Oct 24, 2026
  2. rrmlima commented on Oct 25, 2026

    @rrmlima
    ContributorAuthor

    Draft PR: #7719. It adds hermes to the owned catalog refresh lists (background default, explicit ocx sync, and the management sync), with regression tests for the three cases (connected block refreshed byte-preserving, hand-edited block refused as conflict, never-connected config untouched) and the matching structure/ and docs updates. No writer.ts change, and no code overlap with #7700 (only a small docs overlap).

  3. lidge-jun commented on Oct 27, 2026

    @lidge-jun
    Owner

    Resolved by #7719, merged into dev as d9f594b.

    Catalog changes and ocx sync now refresh a connected Hermes default profile (the profile the running proxy's HERMES_HOME resolves) under the same owned-refresh rules as the other file integrations:

    • A never-connected or disabled integration stays untouched.
    • With an unchanged catalog, edits outside providers.opencodex leave the profile Current.
    • When a catalog update is pending and the file was edited since the last Apply, the refresh is refused and reported, and you need to review and Apply.

    Named profiles show Update needed and refresh through an explicit Apply in Connect → Hermes; the integrations guide documents this.

    Closing manually because merges into dev do not auto-close issues. The fix ships in the next release from dev.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    catalogModel catalog, slugs, visibility, routed entriesenhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions