mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-12 01:37:06 +02:00
Repris d'AJEAN 0.15.8, adapté : chez nous le contexte projet n'est jamais persisté, il est injecté à chaque tour sous forme de messages système préfixés — ce qui rend le déplacement trivial et sans migration. LE PROBLÈME Sur un modèle hybride (Qwen3.5 et suivants, couches récurrentes), llama.cpp ne peut reprendre un prompt déjà calculé qu'à un point de sauvegarde, et il n'en pose qu'au DÉBUT d'un message utilisateur. La description du projet, l'index mémoire et l'index des trackers étaient fusionnés dans le bloc système : deux projets divergeaient AVANT le premier point de reprise, et le premier message après un changement de projet recalculait tout (l'amont mesure ~8 s pour 5 000 tokens sur un 27B). LE CORRECTIF normalizeSystemMessages sort ces messages (isProjectSystem, par leurs préfixes) du bloc système et les place, dans un bloc <project_context>, en tête du PREMIER message utilisateur de la séquence envoyée. Le système commun reste identique d'un projet à l'autre, donc en cache. L'historique persisté et l'affichage ne changent pas (copie, entrée non mutée — testé). InjectSkills ne fusionne plus son préambule DANS un message projet placé en tête (cas d'un preset sans prompt système) : il y aurait perdu son préfixe et serait resté dans le bloc commun. Le gain ne vaut qu'entre projets de même mode mémoire : la consigne mémoire fait partie du système commun. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>