mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-23 15:08:16 +02:00
v0.8.2 : audit du coeur, correctifs de securite et de robustesse
- Le mode agent redevient une vraie fermeture : une surcharge de requete ne peut plus RALLUMER l'agent (donc bash/write/edit/MCP) quand la machine l'a coupe. - Une lecture ratee de la cle de pilotage ne se confond plus avec « aucune cle » : requireWebAuth ferme (503) au lieu d'ouvrir l'API. - healthCheck : timeout de 3 s. Sans lui, un moteur qui accepte la connexion sans repondre laissait /api/chat/send bloque indefiniment. - Acces distant : la session de tunnel ecoute enfin un contexte. Un redemarrage ne fait plus cohabiter deux sessions ; le backoff se remet a zero apres une session qui a tenu. - Flux SSE : selection des evenements neufs par dichotomie au lieu de relire tout le journal a chaque token et pour chaque appareil. - Cache de lecture de la configuration, invalide par ecriture locale, par mtime et par age : fin des ~100 ouvertures de base par tour agentique. - Erreurs moteur classees par type (errors.Is / net.Error) et non par sous-chaine anglaise ; les 3 compactions partagent un seul chemin ; champs morts de chatReq retires ; ReadHeaderTimeout sur les deux serveurs HTTP.
This commit is contained in:
1 parent
bc270ac15c
commit
e6a948c314
17 files changed
+499
-168
No files matched your search
+15
-18
@@ -899,29 +899,26 @@ func handleBenchLast(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// chatReq est le corps d'une requête de chat (commun au chat clair et au chat E2E).
|
||||
//
|
||||
// `messages` et `ctx_used`, que les clients envoyaient du temps où l'historique
|
||||
// vivait dans le navigateur, ont été RETIRÉS : depuis que la conversation est
|
||||
// possédée par le serveur (chat_conversation.go), plus personne ne les lisait.
|
||||
// Les garder laissait croire qu'un client pouvait encore imposer son historique
|
||||
// ou son décompte de contexte. Un client qui les envoie encore n'est pas gêné :
|
||||
// le décodeur JSON ignore les champs qu'il ne connaît pas.
|
||||
type chatReq struct {
|
||||
Messages []Message `json:"messages"`
|
||||
Temperature float64 `json:"temperature"`
|
||||
// Optional per-request override of the agent mode (used by ajean.link
|
||||
// agents, which carry their own toggle). nil = inherit the machine's
|
||||
// global config. Tools/Skills sont conservés pour la rétro-compat des
|
||||
// anciens clients relais : l'un OU l'autre à true active le mode agent.
|
||||
Temperature float64 `json:"temperature"`
|
||||
// Surcharges par requête, portées par les agents ajean.link qui ont leurs
|
||||
// propres interrupteurs. nil = on prend la configuration de la machine.
|
||||
// ⚠️ Elles ne peuvent que RESTREINDRE, jamais rallumer (voir capsFromBody).
|
||||
// Tools/Skills : rétro-compat des anciens clients relais.
|
||||
Agent *bool `json:"agent"`
|
||||
Tools *bool `json:"tools"`
|
||||
Skills *bool `json:"skills"`
|
||||
// Override par requête de l'accès internet (outils web). nil = config machine.
|
||||
// Surcharge par requête de l'accès internet (outils web).
|
||||
Internet *bool `json:"internet"`
|
||||
// Taille réelle du contexte au tour précédent (usage.prompt_tokens + tokens
|
||||
// générés), rapportée par le client qui l'affiche déjà. Sert à décider du
|
||||
// compactage sur le VRAI décompte plutôt qu'une estimation. 0 = inconnu.
|
||||
CtxUsed int `json:"ctx_used"`
|
||||
// Nouveau modèle « conversation serveur » : Message = texte du tour à lancer
|
||||
// (via /api/chat/send) ; From = dernier Seq déjà vu par le client (le flux
|
||||
// d'abonnement rejoue Log[From:] puis suit le direct).
|
||||
// Message = texte du tour à lancer (/api/chat/send) ; From = dernier Seq déjà
|
||||
// vu par le client (le flux d'abonnement rejoue Log[From:] puis suit le direct).
|
||||
Message string `json:"message"`
|
||||
From int `json:"from"`
|
||||
}
|
||||
|
||||
// capsFromBody dérive les capacités du tour à partir des overrides éventuels du
|
||||
// corps de requête (agents ajean.link portant leurs propres toggles), sinon la
|
||||
// config machine.
|
||||
Reference in new issue
Block a user