mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-12 01:37:06 +02:00
- Désactivation du chiffrement (amont cac0cda, 19918c6) : une valeur illisible ne bloque plus tout (quarantaine datée + copie du keyvault), et la reprise au démarrage déchiffre aussi les conversations au lieu de retirer la clé après les seules pages. Propre à Loki : les images de conversation (chatimg/) sont maintenant déchiffrées elles aussi — elles restaient chiffrées sans clé. Les .bak chiffrés devenus illisibles sont retirés. - Preset externe (amont #95) : `loki serve` sort sans erreur (plus de boucle systemd « MODEL non défini »), le pré-vol l'accepte, le superviseur du conteneur ne le prend plus pour un plantage. - Unité systemd du moteur : TimeoutStopSec=5 (bascule de preset bloquée 90 s en pleine génération). - Heartbeat SSE (amont #105) : plus d'écriture après le retour du handler. - Paramètres → Configuration : commande exacte du moteur copiable (clé API masquée, Strata compris) et nombre de couches du modèle à côté de NGL, lu dans l'en-tête GGUF (amont #108, #43) ; aussi dans l'éditeur de preset. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
44 lines
1.3 KiB
Go
44 lines
1.3 KiB
Go
package loki
|
|
|
|
import "testing"
|
|
|
|
// Preset externe actif : `loki serve` n'a aucun moteur local à lancer. Il
|
|
// sortait en erreur « MODEL non défini », que systemd (Restart=on-failure)
|
|
// relançait en boucle (amont #95).
|
|
func TestServeExitsCleanlyForExternalPreset(t *testing.T) {
|
|
testHome(t)
|
|
if err := WriteConfig(map[string]string{extKeyFlag: "1", "PORT": "8080"}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := cmdServe(nil); err != nil {
|
|
t.Fatalf("loki serve sur un preset externe : %v", err)
|
|
}
|
|
}
|
|
|
|
// Le pré-vol refusait `loki start` / `loki restart` sur un preset externe,
|
|
// en invitant à réinstaller llama.cpp.
|
|
func TestPreflightAcceptsExternalPreset(t *testing.T) {
|
|
testHome(t)
|
|
if err := WriteConfig(map[string]string{extKeyFlag: "1"}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := preflightEngine(); err != nil {
|
|
t.Fatalf("pré-vol refusé sur un preset externe : %v", err)
|
|
}
|
|
}
|
|
|
|
// Strata : le pré-vol vérifie sa configuration à lui, pas BIN/MODEL.
|
|
func TestPreflightStrataWithoutConfig(t *testing.T) {
|
|
testHome(t)
|
|
if err := WriteConfig(map[string]string{"ENGINE": "strata"}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
err := preflightEngine()
|
|
if err == nil {
|
|
t.Fatal("un preset Strata sans STRATA_CONFIG devrait être refusé")
|
|
}
|
|
if want := "STRATA_CONFIG"; !contains(err.Error(), want) {
|
|
t.Fatalf("message attendu sur %s : %v", want, err)
|
|
}
|
|
}
|