Repository navigation
Description
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 (the Muse provider status probe in packages/provider-muse)
Steps to reproduce
- Use Muse Code CLI 1.4.15-R8339.1 (
muse --version) on the T3 server host, signed in:muse usagereports an active plan. - Enable the Muse provider and let it discover models at least once (for example before a CLI upgrade), so T3 keeps advertising known models and threads run.
- Refresh provider status in Settings → Providers.
- The Muse card reads "Needs attention · Muse Code returned no models..." and a warning banner with the same message appears on Muse threads, while the same card still lists models and the threads keep working.
The trigger is the CLI host returning an empty catalog. Spawning the same read-only host the status check uses (muse serve --disable-shell --disable-write --no-session-log), then initialize and model/list, returns:
{"providerId":"meta","profileId":"tbh","source":"bundledCatalog","models":[]}The same host started with --model muse-spark-1.3 returns one row for that model. --trust-workspace, --provider meta, and session/start with a modelId all still return an empty list. A provider catalog cache exists on the host (~/.local/share/muse/model-catalog/*.json, source: provider_catalog, 9 rows), but the host does not serve it from model/list. The affected host upgraded 1.4.14-R7309.1 → 1.4.15-R8339.1 around the time the warning appeared, and the catalog cache predates the upgrade.
Expected behavior
A signed-in CLI on a provider that T3 still lists models for should not be reported as returning no models. Per the MSP schema, model/list may legitimately return zero rows ("a build shipped with no bundled models is a supported configuration"), and its source field exists to distinguish providerCatalog from bundledCatalog/unresolvedCatalog.
Actual behavior
checkMuseProviderStatus maps models.length === 0 to status: "warning" with the message "Muse Code returned no models. Run muse login on this T3 server host and refresh its status." (packages/provider-muse/src/server/status.ts:141).
Meanwhile mergeProviderSnapshot retains the previous non-custom models (apps/server/src/provider/ProviderRegistry.ts:280), so the provider page shows the retained models and threads start normally with an explicit modelId. The result is a contradictory UI: four working models under a warning that none exist.
Two further problems with the message:
auth.statusisunknownfor Muse; status never checks the login.docs/user/providers-muse.mdexplicitly says "Provider status does not check your login."
Refreshing repeats the same probe and cannot clear the warning.
Impact
Cosmetic issue
Version or commit
0.1.9-nightly.20261111.4501; repo main @ ffaa1db. The warning logic dates to d6f47ff.
Environment
macOS Darwin 25.6.0 arm64, T3 desktop nightly 0.1.9-nightly.20261111.4501. Muse Code CLI 1.4.15-R8339.1; @muse-code/sdk 1.4.6 in packages/provider-muse.
Logs or stack traces
# muse serve --disable-shell --disable-write --no-session-log
before-session { source: 'bundledCatalog', providerId: 'meta', profileId: 'tbh', count: 0 }
session-started muse-spark-1.3
after-session { source: 'bundledCatalog', providerId: 'meta', profileId: 'tbh', count: 0 }
# muse serve --model muse-spark-1.3
{ source: 'bundledCatalog', count: 1, ids: 'muse-spark-1.3' }
# muse usage
Tier: Muse Code Power Usage
Window: 48% used, resets in 4h 20m
The cached provider status snapshot written by T3 shows the same contradiction: status: "warning" with the "returned no models" message and four retained entries in models.
Workaround
Dismiss the banner; Muse threads run. Refreshing status does not clear it.
Activity
juliusmarminge commentedon Nov 11, 2026
I tried to reproduce this on the current build and could not.
No live run: the Muse Code CLI is not available on any worker (a permanent blocker for a real app run). Instead, on origin/main @ 996b43f, I fed mergeProviderSnapshot a previous Muse snapshot (status ready, one non-custom model) and the snapshot checkMuseProviderStatus returns when MSP model/list is empty (status warning, message 'Muse Code returned no models. Run
muse login...', models []). The merged result still lists the retained model and keeps status 'warning' with the no-models message. The new test 'does not report no Muse models while it keeps listing retained ones' in apps/server/src/provider/ProviderRegistry.test.ts fails withexpected 'warning' to not equal 'warning'. Pushed as factory/repro-34260 (d31ff9d).Closing as not planned. If it still happens for you, reply with the exact steps and the version you are on and it will be looked at again.
seankoji commentedon Nov 11, 2026
Note
Written by GPT-6.1 Sol on behalf of @seankoji
I reproduced the backend behavior with the real installed CLI on 11 November 2026, around 20:50 AEDT. This includes a fresh successful model response, not a mocked catalogue.
Environment: macOS, Darwin 25.6.0 arm64; installed T3 desktop
0.1.9-nightly.20261111.4501; Muse1.4.15-R8339.1; SDK1.4.6. The source status check below ran fromffaa1dba76d86c073533055e48d7f8f015c8a7b7, not a newer build.Fresh reproduction in a scratch directory, using
spawnMspConnection:muse serve --disable-shell --disable-write --no-session-log, withMETA_API_KEYomitted andMUSE_NO_AUTO_UPDATE=1, matching T3's probe.clientInfo: {name:"t3_code",title:"T3 Code",version:"1"}andcapabilities: {requestedCapabilities:[]}, then requestmodel/listwith{}.{"providerId":"meta","source":"bundledCatalog","models":[]}checkMuseProviderStatuswith NodeServices, enabled, no custom models, and the official Muse CLI. It returnsstatus:"warning",auth.status:"unknown", zero models, and:serve --disable-shell --disable-write. Omit--no-session-logso turn notifications arrive. Requestsession/startwith the scratch workspace,modelId:"muse-spark-1.3",approvalMode:"promptUnmatched"andpermissionProfile:":ask-me". Send a no-tool prompt requesting a unique literal marker.turn/startreturnsstatus:"accepted", disposition:"started". AnagentMessagecontains exactly the requested marker andturn/completedreportsterminal:"completed".model/liston that same connection still returns the emptybundledCatalog. Every spawned host was closed through the SDK and exited with code 0.The installed app's cached snapshot also contains that warning alongside four retained non-custom models. That is supporting cached evidence; I could not obtain a fresh UI capture or recording, and this run did not create a T3 UI thread.
This reproduces the empty-catalogue/login-warning behavior alongside a working model request. It does not establish why Muse serves an empty catalogue, or prove the behavior of a later T3 build. Could you reconsider the report on that basis?