fix(model-server): deadline de warmup configurable pour le cold-start llama.cpp (#55)
Corrige la régression high « Error on loading local model » : le premier chargement du serveur modèle local (cold-start llama.cpp) dépassait la fenêtre de readiness et échouait. Le warmup dispose désormais d'un deadline par défaut de 600 s, surchargable par config optionnelle `warmup_deadline_secs` (validée dans [30, 1800]). - domain: champ `warmup_deadline_secs: Option<u64>` + validation de borne - application: policy de readiness effective (défaut 600 s, override par config) - app-tauri: DTO `warmupDeadlineSecs` - infrastructure: application de la deadline effective au warmup Verdict QA (vert) : domain 252, application 81 + 22 model_server, app-tauri dto_model_servers 6, infrastructure model_server 2, build OK. Contrat readiness couvert sur ports mockés. Caveat : le cold-start end-to-end réel (llama-server) sort du sandbox de test -> vérification manuelle utilisateur restante, non couverte par les tests unitaires. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -1057,6 +1057,9 @@ pub struct ModelServerConfigDto {
|
||||
pub auto_start: bool,
|
||||
/// Stop policy.
|
||||
pub stop_policy: StopPolicyDto,
|
||||
/// Optional readiness warmup deadline override in seconds.
|
||||
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||
pub warmup_deadline_secs: Option<u64>,
|
||||
}
|
||||
|
||||
impl ModelServerConfigDto {
|
||||
@ -1080,6 +1083,7 @@ impl ModelServerConfigDto {
|
||||
args: config.args,
|
||||
auto_start: config.auto_start,
|
||||
stop_policy: config.stop_policy.into(),
|
||||
warmup_deadline_secs: config.warmup_deadline_secs,
|
||||
}
|
||||
}
|
||||
|
||||
@ -1122,6 +1126,7 @@ impl ModelServerConfigDto {
|
||||
self.auto_start,
|
||||
self.stop_policy.into(),
|
||||
)
|
||||
.and_then(|config| config.with_warmup_deadline_secs(self.warmup_deadline_secs))
|
||||
.map_err(invalid_domain_error)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user