Files
Loki/internal/loki/facade_settings.go
T
Claude 28f90543de Lot 10 : réglages partagés tenus par la façade (LOKI_SETTINGS=rust)
La façade sert /api/prefs, /api/sysprompt, /api/reasoning-effort et
/api/oai/public quand LOKI_SETTINGS=rust (expérimental ; le Go reste le
défaut), sur les mêmes clés de la base : préférences fusionnées et
nettoyées (prénom borné, avatars en liste fermée, valeurs vides
effacées), prompt système du preset actif avec repli sur le global,
intensité du raisonnement en liste blanche, adresse publique normalisée.

Côté Go, facade_settings.go remet ces routes à la façade quand elles
arrivent par le tunnel du relais.

Parité : parity_settings_test.go tire du Go 19 adresses, 11 intensités et
29 appels de route avec le contenu de la base après chacun, rejoués par
tests/settings.rs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016tcGfJWefW5kUGoC2wL8cv
2026-10-15 16:25:51 +00:00

33 lines
1.1 KiB
Go

package loki
import (
"os"
"strings"
)
// facade_settings.go — réglages partagés tenus par la façade Rust
// (LOKI_SETTINGS=rust, lot 10 de la migration ; expérimental, le Go reste le
// défaut) : préférences d'affichage, prompt système, intensité du
// raisonnement, adresse publique.
//
// Les valeurs restent dans la base, aux mêmes clés : ce process les relit là
// où il s'en sert (tour de chat, accès OpenAI). Seules les routes changent de
// main ; celles qui arrivent ici par le tunnel du relais sont remises à la
// façade (withFacadeChat).
const facadeSettingsEnv = "LOKI_SETTINGS"
// facadeSettings : la façade tient-elle les réglages partagés ?
func facadeSettings() bool {
return strings.EqualFold(strings.TrimSpace(os.Getenv(facadeSettingsEnv)), "rust") &&
facadeAddr() != "" && internalToken() != ""
}
// facadeSettingsRoutes : les routes que la façade sert alors (settings.rs).
var facadeSettingsRoutes = map[string]bool{
"/api/prefs": true,
"/api/sysprompt": true,
"/api/reasoning-effort": true,
"/api/oai/public": true,
}