Skip to content

[Bug]: ACP Registry provider refresh keeps a stale model list (new Devin models never appear) #34242

Closed

Description

@edouard-andrei

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Area

apps/server

Steps to reproduce

  1. Configure the Devin agent through the ACP Registry provider (acpRegistry_devin).
  2. Start a Devin thread. The session publishes its model list (onSessionConfigurationUpdate -> publishLiveConfiguration).
  3. Devin adds a new model upstream (here: gemini-4-carbon-medium). devin acp -> session/new now returns it in the model config option (144 models, was 143).
  4. In T3 settings, click Refresh on the Devin provider. Wait more than 15 minutes and click Refresh again.

Expected behavior

After a refresh, the Devin model list matches what devin acp returns for session/new, and the new model appears under Settings -> Models.

Actual behavior

The new model never appears. Refresh updates checkedAt, but the model list stays at the old 143 entries.

Two in-memory caches in AcpRegistryDriver cause this, and Refresh clears neither of them:

  1. enrichProviderCached returns the cached probe for PROBE_SUCCESS_TTL_MS (15 min). Only auth changes, setProvider, disableProvider and logout call invalidateEnrichmentCache. Refresh does not.
  2. AcpRegistryRuntimeCoordinator keeps the last live session configuration per instance (liveConfigurationByInstance). withLiveRuntimeState -> applyAcpRegistryLiveConfiguration replaces the probed models with this stored list whenever it has models. So a list from a session that started before the upstream change wins over a fresh probe, even after the 15 min TTL ends. The stored list is cleared only when the driver instance is re-created, on auth invalidation, or on logout.

After the TTL ended, a fresh probe spawned devin acp and got 144 models, but the snapshot still showed 143.

Impact

Minor bug or occasional failure

Version or commit

T3 Code server 0.1.8, Devin CLI 3000.11.205 (ACP Registry binary)

Environment

Linux (WSL2), T3 Code desktop with the WSL runtime, ACP Registry provider: Devin

Logs or stack traces

# Direct probe of the same binary that T3 uses
devin acp -> initialize -> session/new
configOptions[model].options: 144 (includes gemini-4-carbon-medium)

# T3 provider snapshot after Refresh (past the 15 min TTL)
models: 143 (no gemini-4-carbon-medium), checkedAt updated

Workaround

Start any new Devin session in T3, for example a one-line prompt on a free model. The new session publishes a fresh live configuration, and the snapshot picks up the new model right away. Restarting T3 also works.

Suggested fix

  • Make the user-triggered provider refresh call invalidateEnrichmentCache and clearLiveConfiguration(instanceId). Or skip the probe cache for a manual refresh.
  • In applyAcpRegistryLiveConfiguration, prefer the newer source by timestamp, or merge the stored session list with the probed list, instead of always letting a stored session list win.
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