Skip to content

Provider CLI updates leave discovery caches and sibling instance catalogs stale #14316

Description

@yashranaway

Problem

The existing explicit provider/model refresh bypasses T3-owned discovery caches, but the one-click CLI update path does not. After a successful update command, providerMaintenanceRunner.ts refreshes only the selected instance without calling its invalidateCaches hook. Cursor model discovery and Claude capability probes can therefore reuse pre-update results. Other instances of the same provider can retain stale catalogs too, even when they share the updated installation.

Reproduction

  1. Configure two enabled instances of a provider with a cached discovery probe.
  2. Populate both catalogs, then install a CLI update through T3 that changes the discovery response.
  3. Observe that post-update verification probes only the selected instance and leaves discovery caches intact. Explicit model refresh takes a different invalidation path.

This is a code-path reproduction; it does not claim a particular release introduced a model.

Expected behavior

After the update command succeeds, invalidate T3-owned discovery caches and re-probe enabled instances of that provider using each instance's own configuration. Publish results through the existing registry/config stream. Preserve credentials, routing, model preferences, selected models, and running conversations. Failed discovery should retain the existing recovery behavior.

Keep this repair focused on discovery after updates. Detecting stale running binaries and safely replacing idle sessions with their resume cursors needs separate lifecycle work. Refreshing catalogs must not be presented as upgrading an already-running session.

Related but distinct: #13109 covers explicit cache refresh; #13010 covers OpenCode version verification against a running helper; #13244 covers the manifest update-check opt-out.

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions