mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-22 06:28: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
@@ -39,6 +39,9 @@ type Project struct {
|
||||
// de conversation (projectContextMessage) pour qu'elle sache d'emblée sur quoi
|
||||
// elle travaille, sans avoir à le lui réexpliquer à chaque nouvelle discussion.
|
||||
Desc string `json:"desc,omitempty"`
|
||||
// MemMode = mode mémoire PROPRE à ce projet (off/ondemand/always/search).
|
||||
// Vide = pas encore réglé → repli sur l'ancien global MEM_MODE (voir memMode).
|
||||
MemMode string `json:"mem_mode,omitempty"`
|
||||
}
|
||||
|
||||
const (
|
||||
@@ -186,6 +189,36 @@ func projectDesc(slug string) string {
|
||||
// setProjectDesc enregistre la description d'un projet, tronquée à une taille
|
||||
// raisonnable : c'est un contexte injecté à CHAQUE conversation, pas un cahier des
|
||||
// charges. Une chaîne vide efface la description.
|
||||
// projectMemMode renvoie le mode mémoire propre à un projet ("" si non réglé, ce
|
||||
// qui déclenche le repli global dans memMode).
|
||||
func projectMemMode(slug string) string {
|
||||
for _, p := range listProjects() {
|
||||
if p.Slug == slug {
|
||||
return p.MemMode
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// setProjectMemMode enregistre le mode mémoire d'un projet. Une valeur vide
|
||||
// efface le réglage propre (retour au repli global).
|
||||
func setProjectMemMode(slug, mode string) error {
|
||||
mode = strings.ToLower(strings.TrimSpace(mode))
|
||||
switch mode {
|
||||
case "", "off", "ondemand", "always", "search":
|
||||
default:
|
||||
return fmt.Errorf("mode mémoire invalide: %s", mode)
|
||||
}
|
||||
list := listProjects()
|
||||
for i := range list {
|
||||
if list[i].Slug == slug {
|
||||
list[i].MemMode = mode
|
||||
return saveProjects(list)
|
||||
}
|
||||
}
|
||||
return fmt.Errorf("projet introuvable")
|
||||
}
|
||||
|
||||
func setProjectDesc(slug, desc string) error {
|
||||
desc = strings.TrimSpace(desc)
|
||||
const max = 2000
|
||||
|
||||
Reference in new issue
Block a user