Repository navigation
fix(models): honor runtime operation deadlines in the dashboard - #5299
Merged
gabsprogrammer merged 1 commit intoSep 15, 2026
Merged
gabsprogrammer merged 1 commit into
gabsprogrammer merged 1 commit into
Conversation
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.
Problem and change
The model UI mixes stale or missing operation deadlines. Activation stops after 610 seconds although the current API permits a 2700-second host call plus 120 seconds of download-busy retry grace. Delete and benchmark requests have no deadline. Download start drops its timer before reading an error body, which can leave its action pending indefinitely.
Keep activation polling through the current host/grace budget plus five seconds (2825 seconds), while preserving the final authoritative inventory check. Add one bounded request helper for download, delete and benchmark, including error-body reads and cleanup of unused response bodies. Budgets are 15 seconds for download acceptance, 35 seconds for the 30-second delete call and 400 seconds for the 128-token benchmark's 384-second provider timeout. Timeout messages explicitly ask for refresh because the server may still be working.
Validation
Related work and gates
Inspected live PRs and patches: #4962 stops activation polling on unmount; #3376 improves inventory timeout messages; #3027 validates inventory shape. This PR addresses operation budgets and request completion. #4962 overlaps the activation loop and should retain the new duration when composed.
The backend's bounds are in routers/models.py: load_model passes timeout=2700 with 120-second busy retry grace, delete uses the 30-second default and the fixed 128-token benchmark uses max(60, max_tokens*3). These are UI request budgets, not proof that an aborted server-side operation was cancelled. Existing inventory refresh/final verification behavior remains.
Tests use fake time and local response fixtures. Live model activation/benchmark qualification and independent human review remain pending. AI-assisted implementation and validation by Codex; ready for review is not approval to merge.