Make model download cancellation asynchronous
Los mantenedores suelen responder en 5 días
@ckelseynv ya está trabajando en esto.
Desde el 23/9/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
engine:cancel-pull and engine:remote-cancel-pull block until the download has stopped and its partial files are settled. That single decision is what forces every layer above them to carry a budget: the desktop picks 90s, the terminal interface picks 35s, the engine manager's peer client needs a separate long-header pool so a peer that takes minutes is not cut off, and each of those numbers has to be justified against the others.
It also sits awkwardly with state-and-auto-start.mdc, which says engine and model commands are fire-and-forget mutations whose outcome arrives on the push bus.
Proposal
Make cancellation fire-and-forget. The request acknowledges that the cancel was accepted; the terminal state arrives on the existing progress feed, the same way a pull's own completion does. Callers stop waiting, and most of the budgets in #114 stop being load-bearing.
Prerequisite
There is one non-obvious blocker. trackedPull routes a same-key retry to joinPull, so a retry issued while the previous download is still cleaning up would join the dying pull and receive its cancelled result rather than starting a new download. Today that is masked, because the caller is still blocked on the cancel and cannot retry yet. Removing the block exposes it.
So a retry arriving during cleanup has to start a new download rather than join the one being torn down. That ordering needs solving before, or alongside, the change — not after.
Worth preserving
Two behaviours from #111 should survive the redesign, because both were bugs that had to be fixed once already:
- A cancel must not overtake the pull it names. The remote path holds a cancel until the peer has accepted the matching pull; the local path claims the pull. A cancel that arrives first is answered as a cancel for nothing and leaves the transfer running.
- A cancel that stops being awaited must remain retryable, and the row must stay in Canceling rather than rolling back to Downloading. Asynchronous delivery makes the first half easier and the second half more important, since there is no longer a reply to distinguish "accepted" from "lost".
- Lenguaje dominante
- Go
- Estrellas
- 1.6k
- Forks
- 266
- Merge medio
- 3 d 6 h
- PR fusionados (30 d)
- 22
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de NVIDIA/Personal-AI-Router
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
NVIDIA/Personal-AI-Router#165 ·
Los mantenedores suelen responder en 5 días
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 46/100
NVIDIA/Personal-AI-Router#164 ·
Los mantenedores suelen responder en 5 días
-
enhancement
Dificultad 4/5 Más de una semana Aptitud para principiantes 12/100
NVIDIA/Personal-AI-Router#162 ·
Los mantenedores suelen responder en 5 días
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
NVIDIA/Personal-AI-Router#154 · 1 comentario ·
Los mantenedores suelen responder en 5 días
-
[Feature]: [Ollama] Alert the user about model pull failuresPosiblemente ocupada @ckelseynv la tomó hace 4 días. Abiertoenhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 56/100
NVIDIA/Personal-AI-Router#152 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 5 días
Todos los issues de NVIDIA/Personal-AI-Router
Issues similares
-
Action Required: Fix Renovate ConfigurationPosiblemente ocupada @thompson-tomo la tomó hoy. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
open-telemetry/opentelemetry-collector#16170 ·
Los mantenedores suelen responder en 1 día
-
automation awf compiler specifications
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
state:triage-needed
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
puppe1990/amarra-cais#342 ·
Los mantenedores suelen responder en 1 día
-
replay: a run cancelled during environment setup is logged as an ERROR (Instrument drops the cancellation)Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día