Repository navigation
feat(web): configure generation recovery when deploying models - #78
Merged
Merged
Conversation
imneov
force-pushed
the
feat/63-generation-recovery
branch
2 times, most recently
from
November 5, 2026 10:59
52e576f to
9e57a98
Compare
5 tasks
zhanghaohit
approved these changes
Nov 6, 2026
zhanghaohit
left a comment
Contributor
There was a problem hiding this comment.
LGTM. The keys match the continuation-gateway subchart (continuationModel, continuationEnabled, bufferToolCalls, stallIdleTimeoutSeconds), the form's defaults match the subchart's, and leaving continuationEngine to each parent chart is right. The minimum versions check out: vllm gained continuationGateway in 0.8.9, and sglang 0.8.11 follows #40 making continuationModel required.
Non-blocking notes:
- Prerelease charts are rejected.
supportedChartonly accepts a strictx.y.z, so0.9.0-rc.1counts as unsupported. Test clusters deploy rc charts routinely. - The chart gate runs while recovery is off.
recoveryErrorchecksactual.configured && !supportedChart, so any layer that merely mentionscontinuationGatewaytriggers it, for example a catalog variant withenabled: false. Combined with (1), a deploy with recovery switched off fails with thecharterror on an rc chart. I'd gate onenabled === trueand compare versions with the prerelease suffix ignored (or semver-aware). An old chart ignores the unknown key anyway. - The initial toggle state may not match the plan for a new deploy.
- The form seeds from
variant.values+profile.extraonly, while the plan mergesdefaults / catalog / site / derived / form / edit / autoscale. - Suppose
siteorderivedenables the gateway andprofile.extraisn't that layer. The switch then shows off,matchesRecoverysees a mismatch, and the user getsoverridden, which blames Advanced YAML for something it didn't do. - Can you confirm
profile.extrais the site layer? Otherwise, consider seeding from a dry-run plan.
- The form seeds from
- Two small UX items.
- An empty idle timeout shows nothing, while the effective value is the subchart's 600 s. A placeholder like "600 (chart default)" would help.
- The tool-call buffering switch could be disabled while "Resume interrupted responses" is off, since the hint already says it has no effect then.
Expose existing continuationGateway chart settings in Model Serving deploy and upgrade forms, preserve recorded values, and validate the final plan before review. Fixes modelsphere#63
imneov
force-pushed
the
feat/63-generation-recovery
branch
2 times, most recently
from
November 6, 2026 13:56
42ed37b to
ffcbfd3
Compare
Add regressions for higher-priority overrides, complete plan layers and timeout removal through validated recomposition. Preserve adaptive concurrency cleanup and reject unrelated changes between compositions.
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
Model Serving has no form controls for continuation_gateway. Add generation recovery to deploy and upgrade with actual model identity, stream idle timeout, continuation execution, and tool-call buffering, using the existing chart values and plan API.
Rebased on current main while preserving adaptive-concurrency cleanup, cache settings, apply flags, and the upgrade form's stable initial snapshot. Validate the effective plan across its configuration layers and report higher-priority YAML that overrides the recovery controls. Clearing an upgrade's timeout removes the stored form override through a fresh composition pinned to the validated source and chart; unrelated changes stop review. Existing detection-only mode and unrelated gateway settings remain supported.
Which issue(s) this PR fixes
Fixes #63
How it was tested
pnpm run typecheck: Console and standalone Swiss types pass.pnpm exec vitest run: 58 files, 520 tests pass, including 31 recovery-related tests.pnpm run buildandpnpm run build:swisspass.go vet ./...,go test ./..., Go formatting, andgit diff --checkpass.Checks
go test ./...andgofmt -l .is emptyhelm lint --strict helm/console(no chart changes)Notes for reviewers
Start with
recovery-compose.ts,recovery.ts, and their tests. Recovery and adaptive-concurrency cleanup share the source-pinning and baseline comparison inplan-composition.ts. The copied Swiss module is unchanged. Chart compatibility remains sglang 0.8.11+ or vllm 0.8.9+; operators must verify their engine/model combination with the gateway documentation.Release note