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:
@ -526,6 +526,7 @@ impl From<ModelServersDocV1> for ModelServersDoc {
|
||||
args: server.args,
|
||||
auto_start: server.auto_start,
|
||||
stop_policy: server.stop_policy,
|
||||
warmup_deadline_secs: None,
|
||||
})
|
||||
.collect(),
|
||||
}
|
||||
|
||||
@ -138,7 +138,9 @@ async fn fs_model_server_registry_roundtrips_global_json() {
|
||||
let fs: Arc<dyn FileSystem> = Arc::new(LocalFileSystem::new());
|
||||
let registry = FsModelServerRegistry::new(Arc::clone(&fs), tmp.app_data_dir());
|
||||
|
||||
let first = config(sid(2), 8081);
|
||||
let first = config(sid(2), 8081)
|
||||
.with_warmup_deadline_secs(Some(900))
|
||||
.unwrap();
|
||||
registry.save(first.clone()).await.unwrap();
|
||||
|
||||
assert_eq!(registry.get(&first.id).await.unwrap(), Some(first.clone()));
|
||||
@ -190,6 +192,7 @@ async fn fs_model_server_registry_migrates_v1_json_to_v2() {
|
||||
|
||||
assert_eq!(servers.len(), 1);
|
||||
assert_eq!(servers[0].options, LlamaCppOptions::default());
|
||||
assert_eq!(servers[0].warmup_deadline_secs, None);
|
||||
assert_eq!(servers[0].args, vec!["--ctx-size", "4096"]);
|
||||
assert_eq!(
|
||||
servers[0].model.source,
|
||||
|
||||
Reference in New Issue
Block a user