Repository navigation
feat(playground): list the deployments, not whatever the gateway serves - #39
Merged
imneov merged 3 commits intoOct 7, 2026
Merged
Conversation
… by name of route The Playground is to list deployments, and a deployment is a route: it needs each route's own models, a route that is not ready with why, and to send a turn to the route the user picked even when another route serves the same model name. GET <prefix>/routes answers the first from the model index; the X-ModelSphere-Route header does the second. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The Playground listed every model any gateway route answered for, so it showed models the deployment pages do not know about, and none of a deployment whose route was not ready. It now lists the deployments the deployment pages list, each joined with its route: a ready one by release and served name, sent to its own route; one not ready greyed out with why, linked to its page. Routes no deployment owns are left out. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Joined to the catalog line it was cut off by the item's width. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
imneov
pushed a commit
to imneov/modelsphere-console
that referenced
this pull request
Oct 7, 2026
Since modelsphere#39 the model picker lists the deployments, greyed out with why when not ready, instead of what the gateway serves. Say so in the Playground chapter, split the FAQ into no deployment vs greyed out, and stop saying a deployment without a route is absent from the Playground. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
5 tasks done
imneov
pushed a commit
to imneov/modelsphere-console
that referenced
this pull request
Oct 7, 2026
The Playground lists Model Serving's deployments since modelsphere#39, so a llama.cpp model the chart runs beside console never shows there, and swiss is where models come from. Remove demo-model.yaml, the demo values, its llm backend and the router's fallback to it, its NOTES, the component selector only it used, and its two chart tests. An install that still sets demo.enabled renders without it; the weights PVC is kept (resource-policy: keep). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
6 of 7 tasks
imneov
pushed a commit
to imneov/modelsphere-console
that referenced
this pull request
Oct 7, 2026
The Playground lists Model Serving's deployments since modelsphere#39, so a llama.cpp model the chart runs beside console never shows there, and swiss is where models come from. Remove demo-model.yaml, the demo values, its llm backend and the router's fallback to it, its NOTES, the component selector only it used, and its two chart tests. An install that still sets demo.enabled renders without it; the weights PVC is kept (resource-policy: keep). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
6 of 7 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What type of PR is this?
What this PR does and why
The Playground listed every model any gateway route answered
/v1/modelsfor. On a shared gateway that is the wrong set twice over:The deployment pages and the Playground then disagree, and the one model a user just deployed is the one they cannot find. Models were also keyed by served name, so two deployments serving the same name (two versions of one catalog entry, say) collapsed into one entry that always went to the first route.
This PR makes the Playground list the deployments the deployment pages list, each joined with what the gateway says about its route:
GET <prefix>/routesreturns it. A request carryingX-ModelSphere-Routegoes to that route (it must be one of the gateway's routes), so a turn reaches the deployment picked even when another route serves the same name.targets.ts,joinTargets), ready ones first: a ready one asrelease · served nameand sent to its route; one not ready greyed out with why (no gateway route / route not on the gateway yet / route has no ready instance). Routes no deployment owns are left out. With deployments but none ready, the page lists each with its reason and a link to its page; with none, it says no model is deployed yet and links to Model Serving.Shortcomings: one page of 100 deployments is listed, the largest page swissd serves. View Code still shows the served name only; the snippet goes through
/v1, which routes by name.Which issue(s) this PR fixes
None; follow-up to #36.
How it was tested
go test ./...(newTestPlaygroundByRoute: per-route listing including a route that does not answer, the header picking a route over the name, an unknown route refused).joinTargetsunit tests: ready first, the three not-ready reasons, routes no deployment owns left out.Checks
go test ./...andgofmt -l .is emptynpm run typecheck && npm test && npm run buildinweb/(ifweb/changed)helm lint --strict helm/console(if the chart changed) (no chart change)Notes for reviewers
Start at
web/src/modules/playground/targets.ts(the join) androuteByModelininternal/server/models.go. A target's id is its route, so Chat and Compare keep holding a string id;useTargetturns it into the served name and route at request time.Release note
🤖 Generated with Claude Code