- Flux : le reliquat retenu par la garde « </think> » est vidé dès qu'un appel
d'outil arrive, au lieu de la fin du flux. Sans ça il partait APRÈS
l'événement d'outil et la fin de phrase — souvent coupée en plein mot —
atterrissait dans une bulle séparée sous l'outil.
- Le plafond d'appels d'outils par tour (TOOL_LIMIT) et l'anti-boucle « appel
identique répété » sont SUPPRIMÉS : ils coupaient des tours légitimes (une
recherche enchaîne facilement des dizaines d'appels). Le bouton stop reste
le seul frein. Endpoint /api/agent/tool-limit et son interrupteur retirés.
- Prompt système : « You are Jean » (majuscule) — le modèle recopiait la casse
et se présentait en minuscule.
- UI : titres du menu tous en monospace capitales via une seule règle (la casse
vient du CSS, plus du HTML).
- UI : le message envoyé s'affiche tout de suite en gris (« envoi… ») et
s'éclaircit quand le serveur le confirme ; il ne disparaît plus pendant
l'aller-retour, et il est retiré si l'envoi échoue.
- UI : voile de chargement du fil (« chargement de la conversation… » /
« connexion au serveur… ») — un chat vide ne se confond plus avec une
connexion lente.
- UI mobile : hauteur de coque 100dvh hors PWA (100vh en PWA), et plus aucun
défilement du document. Le mode PWA est détecté par navigator.standalone :
le média display-mode ne matche pas, faute de manifeste.
- Apparence repensee : la liste ne montre plus que les FAMILLES de theme
(Classique, AJEAN, Doux, ChatGPT) avec un interrupteur clair/sombre, au lieu
d'une entree par variante. Nouveau theme « ChatGPT sombre » (fond quasi noir).
- Le theme par defaut redevient « clair ».
- Nouveau reglage « police », independant du theme : du theme / Mono / Systeme /
Lexend / Serif (Lexend n'est telechargee que si elle est choisie).
- Le mode « complet / simple » laisse place a quatre interrupteurs : masquer le
raisonnement, masquer les appels d'outils, garder les bulles repliees, barre
laterale escamotable (tiroir meme sur ordinateur). L'ancien reglage est repris.
- Cle API du serveur Crawl4AI reglable depuis l'UI (et `jean internet key`) :
envoyee en Authorization: Bearer sur toutes les requetes, jamais relue par
l'API (indice sur 4 caracteres), preservee au changement de preset.
- Mise en page : colonne de lecture bornee a 900 px en mode escamotable, marges
d'origine sinon ; tiroir de meme largeur que la barre fixe ; bouton ☰ qui ne
recouvre plus le fil ; logo et numero de version recales.
- renommage : « Jean » devient « AJEAN » dans tous les textes visibles (titre de
l'UI, proprietes du binaire Windows, barre de menus macOS / zone de
notification, messages du terminal, README). La commande, les services, les
chemins et le depot ne changent pas.
- nouveau thème « AJEAN sombre » (même habillage pixel, palette nuit) ; les
regles de mise en page sont partagees via [data-theme^="ajean"].
- l'IA montre ce qu'elle ecrit : les outils edit / mem_add / mem_edit renvoient
un diff ligne a ligne, affiche en vert (+) et rouge (-) dans la bulle d'outil
et persiste avec la conversation (chat_diff.go).
- ecritures idempotentes : si la modification est deja en place, edit et
mem_edit repondent « deja a jour » au lieu d'une erreur trompeuse ; un appel
d'outil rigoureusement identique n'est plus rejoue dans le meme tour.
- saisie du chat auto-agrandissante (une ligne au repos en thème ChatGPT, deux
ailleurs), bouton d'envoi enfin aligne, astuce clavier detachee de la carte.
- editeur de preset relu pour le thème AJEAN (plus de double encadrement), champ
+ bouton de telechargement recolles dans tous les thèmes, interrupteurs carres.
- emojis retires de l'interface (les glyphes monochromes restent).
Chaque onglet Jean ouvert monopolise une connexion SSE permanente ; au-dela
du plafond navigateur (~6 par domaine) toute nouvelle requete part en file
d'attente sans jamais aboutir NI echouer : UI figee sur << chargement... >>
alors que le serveur repond en quelques ms (verifie en curl).
- un onglet cache relache son flux SSE et le reprend au retour (le replay
depuis lastSeq rattrape ce qui a ete manque)
- timeout de 30 s sur les appels /api/* ordinaires, avec un message explicite
au lieu d'une attente infinie
- Resume borne et dense : max_tokens 700, consigne 250 mots max, plafond dur a
1500 caracteres, et surtout thinking DESACTIVE pour l'appel de resume
(chat_template_kwargs enable_thinking:false) -> plus rapide, plus dense, plus
de budget gaspille en <think> par un modele hybride.
- Garantie de reduction : la compaction n'est acceptee que si elle enleve >=20%
du contexte estime, sinon refusee -> fini le "compactage a chaque message sans
reduire". Queue plus agressive (tailFrac 0.35 -> 0.25) : le contexte retombe
plus bas et met plus longtemps a re-declencher.
- Jauge de contexte : chute immediatement apres compaction (delta ctx_used emis
aussitot) au lieu d'attendre la fin du tour.
- Banniere "Compactage du contexte en cours" pendant le resume (emis avant/apres
via deltas compacting), au lieu d'une UI figee sans info.
- Le bouton "compacter" declenche desormais une VRAIE compaction manuelle
(/api/chat/compact -> CompactNow, detache) ; visible des 50% de contexte. Fini
le toast "c'est automatique" qui ne faisait rien.
- Erreurs de transport llama-server (connection refused / timeout / EOF)
traduites en message clair ("le moteur demarre/charge, reessaie") au lieu du
brut "dial tcp 127.0.0.1:8080: connect: connection refused".
Nouvel endpoint /api/ram (lecture /proc/meminfo, used/total en Mo, 0 hors Linux)
et bloc RAM dans la sidebar a cote du GPU, rafraichi toutes les 3 s. Masque si
pas de /proc/meminfo (Windows/mac).