Le compactage du contexte detruisait ce dont l'IA avait besoin pour continuer
une recherche, ce qui la faisait boucler ou repartir de zero.
- Compactage : le resume est desormais fabrique a partir du torse ORIGINAL. On
degraissait les resultats d'outils (page web -> marqueur) AVANT de resumer :
le resumeur ne voyait plus aucune information trouvee, donc le resume n'en
contenait aucune et l'IA relancait les memes recherches sans fin. Les
resultats sont seulement raccourcis (1200 car.) pour le resumeur ; le torse
degraisse ne sert plus que de repli si le resume echoue.
- Compactage : la demande EN COURS est preservee telle quelle. Pendant une
boucle d'outils il n'y a aucun message user recent, elle tombait donc dans le
torse et se dissolvait dans le resume, tandis que le TOUT PREMIER message de
la conversation restait epingle en tete : l'IA repondait a la question du
debut et abandonnait la recherche.
- Compactage : prompt du resumeur refait (findings, sources deja consultees,
etat d'avancement) et plafond du resume porte de 1500 a 2200 caracteres.
- Appels repetes : l'avertissement passe EN TETE du resultat et, des la 2e
redemande identique, le contenu n'est plus renvoye. Colle a la fin d'un
resultat de plusieurs milliers de caracteres, il passait inapercu.
- Marqueur d'effacement du compactage : dit explicitement de ne PAS rappeler
l'outil (l'ancien texte se lisait comme une invitation a re-telecharger).
- Outils web : sortie bornee a 8000 caracteres comme le shell. Un
web_read(limit=500) pouvait injecter 25000 caracteres d'un coup et declencher
les compactages en cascade.
- Bulles d'outils : la borne d'affichage passe de 4000 a 12000 caracteres, donc
l'etiquette « ~N tok » cesse d'afficher toujours ~1004 (la valeur du plafond)
et donne la vraie taille. Le chemin « appel identique non rejoue » envoyait
lui le resultat brut sans troncature.
Socle du renommage jean -> AJEAN, sans aucun impact visible pour le parc
installe. Trois briques :
- module github.com/nathaninline/ajean, cmd/ajean, internal/ajean,
package ajean. Purement interne.
- AjeanHome() remplace JeanHome(). Les defauts deviennent
%ProgramData%\ajean et /etc/ajean, avec migration du dossier existant
au premier lancement. La migration est un os.Rename dans le dossier
parent de l'ancien chemin : intra-volume, donc atomique et instantane
meme avec des .gguf de plusieurs dizaines de Go. Si le rename echoue
(handle ouvert sous Windows, droits, volume en lecture seule) on
CONTINUE sur l'ancien chemin et on retentera : jamais de copie, jamais
de suppression, le pire cas est "rien n'a bouge".
$AJEAN_HOME et $JEAN_HOME restent tous deux honores, ainsi que
/etc/default/ajean et /etc/default/jean : un chemin impose a la main
est un ordre, on ne le migre pas.
- l'auto-MAJ accepte desormais ajean-<os>-<arch> ET jean-<os>-<arch>,
dans cet ordre. Indispensable dans les deux sens : les binaires deja
installes ne connaissent que jean-*, et ce binaire-ci doit pouvoir
s'installer depuis une release anterieure au renommage.
Couvert par des tests, dont le repli quand un handle ouvert bloque le
rename sous Windows.