Repository navigation
[Bug] Cursor Muse Spark 1.3 missing from catalog despite successful live discovery #4820
Description
Client or integration
OpenCodex dashboard
Area
Catalog / models
Summary
Muse Spark 1.3 is absent from the Cursor model list in OpenCodex 2.56.0 even though Cursor's live GetUsableModels response for the configured account includes six Muse Spark 1.3 reasoning variants.
Expected: preserve models returned by successful live discovery, including model names absent from the static catalog. Muse Spark 1.3 should appear under Cursor with its supported reasoning-effort mappings.
Actual: the dashboard and /api/models have no Cursor Muse row. Live discovery succeeds, but the configured/static Cursor catalog has no Muse entry, and discovery only filters that existing catalog.
Reproduction
- Use OpenCodex 2.56.0 with an authenticated Cursor provider (
adapter: "cursor",authMode: "oauth",baseUrl: "https://api2.cursor.sh"). Cursor model discovery is enabled. - Open
http://localhost:10100/#models, select Cursor, and search for Muse. - Observe no Muse entry;
/api/modelslikewise contains no Cursor Muse model. - Call the installed adapter's
fetchCursorUsableModelsusing the configured account's resolved credential, without printing the credential. The discovery call succeeds and returns the Muse variants below.
Version
@bitkyc08/opencodex 2.56.0; bundled Bun 1.4.2.
Operating system
macOS 27.0 (26A428), arm64.
Provider and model
Cursor / Muse Spark 1.3 (muse-spark-1.3-*).
Logs or error output
Sanitized results from a direct discovery check on 2026-09-16:
{
"ok": true,
"count": 223,
"muse": [
"muse-spark-1.3-minimal",
"muse-spark-1.3-low",
"muse-spark-1.3-medium",
"muse-spark-1.3-high",
"muse-spark-1.3-xhigh",
"muse-spark-1.3-max"
]
}The running gateway's /api/selected-models reports liveModelCounts.cursor: 223, but its available Cursor list contains 40 rows and no Muse. Both the provider's configured models and CURSOR_STATIC_MODELS contain no Muse entry. The difference between 223 wire variants and 40 base rows is not itself the bug; Muse's omission is.
Screenshots and supporting files
Source trace for v2.56.0:
provider-models.ts, Cursor discovery branch callsfilterCursorConfiguredModelsByLiveDiscovery(configured, liveResult.models)on a successful discovery.discovery.ts, configured-model filter returnsconfigured.filter(...), so a model missing from the seed/configuration cannot be added by live discovery.- The Cursor catalog and effort mappings have no Muse definition in the installed version.
Requested behavior: treat successful live discovery as the source of available model names, rather than intersecting it with a static allowlist. The static catalog can enrich known models with capabilities, display names, and reasoning mappings, but an unfamiliar name alone should not cause a live-discovered model to disappear.
Grouping known reasoning variants into a base-model row is useful and should remain. For unfamiliar families, preserve the exact upstream IDs until their grouping and capabilities can be resolved, without inventing unsupported metadata. Any deliberate exclusion for a known incompatibility should be explicit and diagnosable.
Adding Muse Spark 1.3 and its wire-effort mappings would address the immediate omission, but a Muse-only catalog patch would leave the same failure mode for the next new model. Please add regression coverage showing that an unknown model returned by successful live discovery remains visible, alongside coverage for the Muse variants above.
This report verifies discovery and catalog omission only. No Muse inference request was made, so successful generation through the Cursor adapter is not claimed.
Redacted configuration
Relevant provider fields only; credentials omitted:
{
"providers": {
"cursor": {
"adapter": "cursor",
"authMode": "oauth",
"baseUrl": "https://api2.cursor.sh"
}
}
}Checks
- I searched existing issues and documentation/source comments.
- I removed secrets, tokens, account details, request credentials, and personal data.
Activity
lidge-jun commentedon Sep 16, 2026
리뷰 · 우선순위 68 / 80
이 이슈는 Cursor 계정에서 live
GetUsableModels가 Muse Spark 1.3 reasoning variant 여섯 개를 돌려주는데, OpenCodex 카탈로그/대시보드에는 Cursor Muse 행이 전혀 없다는 보고다. 기대는 "성공한 live discovery가 돌려준 모델은 정적 카탈로그에 없어도 보존"이고, 실제는 "정적/설정 카탈로그에 없는 id는 live에 있어도 안 나타남"이다. 2.56.0에서 관측했고, 지금devHEAD8c5917448e971f8bbfb7595252932f678b486a35(2.58.0) 코드 경로와도 맞는지 대조했다.핵심은 Cursor gather가 live roster로 새 행을 추가하지 않고, 이미 구성된 행만 live 가용성으로 걸러 낸다는 점이다.
src/codex/catalog/provider-models.ts(대략 375행)는filterCursorConfiguredModelsByLiveDiscovery(configured, liveResult.models)를 호출한다. 구현은src/adapters/cursor/discovery.ts241–252행:configured.filter(...)만 한다. router id와 ultra base 예외를 빼면, 설정에 없는 Muse Spark id는 live 배열에 있어도 결과 집합에 들어올 구멍이 없다. 그리고 정적 시드 쪽을 보면src/adapters/cursor/catalog.ts의CURSOR_CAPABILITIES와discovery.ts의CURSOR_PRODUCT_MODELS/CURSOR_STATIC_MODELS조립물에 Muse Spark /muse-spark문자열이 없다. 즉 live가 신제품을 광고해도, 우리 쪽 umbrella catalog에 base capability가 없으면 picker에 영원히 안 뜬다.참고로 Muse Spark 자체는 다른 프로바이더에는 이미 있다.
opencode-go의modelWireDefaults·context window·input modalities에muse-spark-1.3-contributor등이 있고, Command Code effort 표에도 Meta Muse Spark 행이 있다. 문제는 "Muse를 모른다"가 아니라 Cursor 어댑터 카탈로그에 Cursor wire id로 안 심어졌다는 것이다. 보고자가 말한 six reasoning variants는 Cursor effort/variant 문법(thinking/fast 등)으로 capability 한 줄 + ladder로 표현하는 편이CURSOR_CAPABILITIES설계와 맞다. types/config 분리와 무관하고, 단순 중복으로 닫을 이슈는 아니다.경로/심볼 -
src/codex/catalog/provider-models.ts~375 — live 성공 시 configured ∩ live만 채택. live-only id 미추가.경로/심볼 -
src/adapters/cursor/discovery.tsfilterCursorConfiguredModelsByLiveDiscovery— filter only; union/merge 없음.경로/심볼 -
src/adapters/cursor/catalog.tsCURSOR_CAPABILITIES— Muse Spark base 없음.경로/심볼 -
src/adapters/cursor/discovery.tsCURSOR_PRODUCT_MODELS— 제품형 예외 목록에도 Muse 없음.경로/심볼 -
src/adapters/cursor/live-models.tsGetUsableModels— live는 성공한다고 가정해도 catalog merge 정책이 병목.정책 주석 - discovery.ts 127행 근처 "live-discovered new … stay … until curated" 취지와 일치. 즉 의도된 curation gate일 수 있어, 버그라기보다 시드 누락일 가능성이 크다.
메인테이너의 판단이 필요한 지점
너의 추천
이슈를 열린 채로 두고, 자동 merge 정책 변경보다 커레이션 PR을 받아라.
CURSOR_CAPABILITIES에 Muse Spark 1.3 base(및 필요한 variant/effort)를 추가하고, live dump와 맞는 alias/wire id 회귀 테스트를 붙여라. "live에 있으면 무조건 catalog에 넣기"는 Cursor not_found 격리(CURSOR_KNOWN_UNCALLABLE_MODEL_IDS/ quarantine) 철학과 충돌하므로 기본값으로 쓰지 마라. 증거로 GetUsableModels id 목록만 이슈에 붙여 주면 시드 PR이 바로 시작된다.이 댓글은 grok-bot이 작성했습니다
fix(cursor): seed Muse Spark 1.3 so live discovery can surface it (#4924
lidge-jun commentedon Sep 17, 2026
Landed via #4924 at 1c7ab30.
Cursor now seeds
muse-spark-1.3(capability + effort ladder throughxhigh) so live discovery can surface the advertised Muse Spark 1.3 variants. The seed deliberately omitsmax(Meta + independent probe evidence); a Codex request atmaxclamps toxhigh.Out of scope on purpose: discovery still filters the configured roster and does not union arbitrary live ids into the catalog. If that policy change is still wanted, open a follow-up — this issue's reported missing Muse row is fixed on
dev.