mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-22 22:48:11 +02:00
Mémoire : un mode par projet, et un quatrième — « recherche »
Repris d'AJEAN 0.13.12. PAR PROJET Le mode mémoire était un réglage global de config.env. Il vit désormais sur le projet (champ mem_mode) : un chantier de code peut couper la mémoire pendant qu'un projet perso la garde proactive. Un projet sans réglage propre — tous ceux d'avant — retombe sur l'ancien MEM_MODE global : rien ne change tant qu'on n'y touche pas. L'API /api/memory et `loki memory` agissent sur le projet actif ; l'UI le dit, et se recharge déjà au changement de projet. AUTO, EN DEUX SAVEURS - « auto, injectée » (always, le défaut) : l'index des pages est en tête de conversation. La consigne dit maintenant d'y lire directement la bonne page ; mem_search ne sert plus qu'à chercher par contenu. Avant, on injectait l'index ET on exigeait une recherche préalable — un appel d'outil par tour pour retrouver ce que le modèle avait sous les yeux. - « auto, recherche » (nouveau) : rien d'injecté, l'IA cherche avant chaque tâche. Contexte plus léger, démarrage plus rapide. memProactive regroupe les deux là où seul « proactif » compte. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
4a1054c1b7
commit
2c36fa6d2c
8 files changed
+144
-43
No files matched your search
@@ -0,0 +1,38 @@
|
||||
package loki
|
||||
|
||||
import "testing"
|
||||
|
||||
// Chaque projet garde son propre mode mémoire ; un projet sans réglage retombe
|
||||
// sur l'ancien global MEM_MODE.
|
||||
func TestMemModePerProject(t *testing.T) {
|
||||
testHome(t)
|
||||
ensureDefaultProject()
|
||||
if err := SetConfigKey("MEM_MODE", "ondemand"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if memMode() != MemOnDemand {
|
||||
t.Fatalf("sans réglage propre, repli global attendu, got %q", memMode())
|
||||
}
|
||||
b, err := createProject("Chantier")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := setActiveProject(b.Slug); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := setMemMode(MemSearchFirst); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if memMode() != MemSearchFirst {
|
||||
t.Fatalf("mode du projet actif attendu, got %q", memMode())
|
||||
}
|
||||
if err := setActiveProject(defaultProjectSlug); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if memMode() != MemOnDemand {
|
||||
t.Fatalf("l'autre projet ne doit pas hériter du réglage, got %q", memMode())
|
||||
}
|
||||
if setProjectMemMode(b.Slug, "n'importe quoi") == nil {
|
||||
t.Fatal("un mode inconnu doit être refusé")
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user