Repository navigation
refactor!: retire the serving-class presets, grants and default classes - #2068
Conversation
The interactive/throughput presets, per-account class grants and account or overlay default classes are unused. Removing them now keeps the routing path small before model class routing lands. - Onwards resolves only overlay targets (`custom`) or nothing (`standard`) and the self-hosted restriction; class suffixes are no longer parsed. - dwctl no longer strips or interprets realtime class suffixes. Flex, background and batch uploads still discard a model suffix after a shape check, unchanged. - The admin API drops the grant and default-class fields; the organisation serving view and model overlays keep targets and self_hosted_only. - The model catalog accepts `serving_classes` only as an empty map. The organisation catalog prices `standard` and `custom` only, and retires any rows it owned under the old class names. - The dashboard drops the grant, default-class and preset views. Stored onwards configuration that still carries the old fields loads with them ignored. Database columns are left in place for a later migration.
Deploying control-layer with
|
| Latest commit: |
bf23ccf
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://3d301dc4.control-layer.pages.dev |
| Branch Preview URL: | https://feat-remove-legacy-serving-c.control-layer.pages.dev |
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing. Review the Copilot code review billing settings.
There was a problem hiding this comment.
All reported issues were addressed across 98 files
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
Assert that a PATCH carrying the retired grant and default-class fields is accepted, writes neither column and returns neither field. Restrict the organisation pricing view to the classes billing can select (standard, and custom when an overlay's targets apply), so a manual price under a retired class name is no longer shown as if it applied.
There was a problem hiding this comment.
0 issues found across 3 files (changes from recent commits).
Requires human review: Retires unused serving-class presets/grants across serving, APIs and catalogs; approval hinges on unverified claims of zero production usage and the diff is truncated, so human review is required.
View guided diff | Turn on auto-fix | Re-trigger cubic
Summary
Retires the
interactive/throughputserving-class presets, per-account class grants and account/overlay default classes. They aren't used: no account holds a grant or a default class, no overlay sets a default class, no model declares presets, and no realtime request has named a class suffix recently. Removing them shrinks the routing path before model class routing (#1908) lands on top of it.What changes
Onwards
serving::resolvereturns the overlay's explicit targets (custom) or nothing (standard), plus the self-hosted restriction. Daemon legs still get no targets.alias:interactiveis an ordinary (unknown) model name, so it gets a 404 instead of a 403 or a class.PoolSpec.serving_classes,AccountServing.granted/default_classandServingOverlay.default_classare gone. Stored configs that still carry them load with those fields ignored.onwards_serving_class_requests_totalkeeps its labels;requestedis now always empty.dwctl
inference/model_selector.rs).granted_serving_classesanddefault_serving_classfrom users and organisations (PATCH ignores them),default_serving_classfrom overlays, andserving_classesfrom model responses.serving_classesis accepted only as an empty map, so existing files still load. The writer keeps the column{}.default_classis removed.class_pricingacceptsstandardandcustom; rows the catalog owned under the old class names are retired on the next apply.standard, orcustomwhen overlay targets applied.Dashboard
No migrations. The now-unused columns stay until a later migration drops them.
Compatibility notes
serving_classesmap or an overlaydefault_classnow fail validation with an explicit message.Testing
just lint rust,just lint tsjust test rust(4225 tests),just test ts(804 tests).sqlxregenerated against a freshly migrated database;cargo sqlx prepare --check --workspacepassesmodel-provisioning.schema.jsonregenerated🤖 Generated with Claude Code