Commit Graph
131 Commits
Author SHA1 Message Date
nathaninline 2b5356acd8 UI config active : N-CPU-MOE en majuscule 2026-07-23 13:59:26 +02:00
nathaninline 3574039d56 UI config active : retire PORT (deja affiche en haut) 2026-07-23 13:57:35 +02:00
nathaninline 6d54c45afa UI moteur : section renommee MOTEUR, vouvoiement, verification de version
- Titre "Backend llama.cpp" -> "MOTEUR".
- Passage au vouvoiement dans tous les textes de la section.
- Nouveau lien "verifier la version" sur chaque moteur (rapide/optimise) :
  interroge la derniere version dispo (endpoints check existants) SANS installer,
  et affiche le resultat en toast avant tout lancement d'install.
2026-07-23 13:56:09 +02:00
nathaninline 996f918e72 UI: MOTEUR en majuscule dans la config active 2026-07-23 13:49:53 +02:00
nathaninline a04613a87d UI: 'BIN' renomme 'moteur' dans la config active 2026-07-23 13:47:39 +02:00
nathaninline 6bdf9e8ae4 UI config active : BIN affiche le moteur (rapide/optimise/custom+chemin) + n-cpu-moe
- BIN devient un libelle lisible : "rapide" (moteur precompile), "optimise"
  (compile), ou "custom : <chemin>" sinon (via in_use / prebuilt.in_use de
  /api/llamacpp). Le chemin complet reste en tooltip.
- Ajout d'une ligne "n-cpu-moe" quand --n-cpu-moe est present dans EXTRA_ARGS.
2026-07-23 13:45:20 +02:00
nathaninline dbb0ac40a4 UI: affichage de la RAM systeme dans la barre laterale
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).
2026-07-23 13:40:53 +02:00
nathaninline ee76638f15 v0.4.12 : fix reasoning Laguna S 2.1 (reponse qui partait dans le thinking)
Les modeles hybrides (Laguna S 2.1) qui repondent SANS reflechir n envoyaient
que `content` (ni reasoning_content, ni </think>, retire par le backend a
--reasoning-format). jean, avec REASONING=on, supposait un bloc <think> ouvert
par le prompt et vidait toute la reponse dans la bulle thinking. On streame
desormais le contenu en direct par defaut et on ne bascule en reasoning qu au
vu d un </think> reel. La coupe de la queue anti-</think> est realignee sur une
frontiere de rune UTF-8 pour ne plus casser les accents (e -> mojibake).
2026-07-23 11:49:40 +02:00
nathaninline ef5b036d99 backend llama.cpp : choix du moteur PAR MODELE (3 options), la barre laterale n'installe plus que
Corrige la confusion : deux endroits ecrivaient la ligne BIN et se battaient
(la barre laterale changeait le BIN global + redemarrait, puis selectionner un
preset remettait le BIN du preset). Desormais :
- la section laterale 'Backend llama.cpp' sert UNIQUEMENT a installer / mettre
  a jour les moteurs (rapide / optimisee), elle ne change plus le BIN actif
- le choix du moteur se fait PAR MODELE, dans l'editeur de preset, avec 3
  options claires : Rapide (precompile) / Optimise (compile) / Personnalise
  (chemin libre ou backend depose dans le dossier backends de jean, detecte)
- detection auto de l'option a l'ouverture selon le BIN du preset ; l'astuce
  indique le dossier ou deposer un binaire custom
- /api/llamacpp expose backends_dir ; l'endpoint /use n'est plus utilise par l'UI

v0.4.11
2026-07-22 20:17:23 +02:00
nathaninline c5522a51a5 v0.4.10 : backend llama.cpp, interface simplifiee (2 modes rapide / optimisee) 2026-07-22 19:55:04 +02:00
nathaninline ff045ba21e UI backend llama.cpp : vue simplifiee (2 modes rapide/optimisee, plus de badge, sans jargon)
Refonte de la section pour la rendre utilisable sans connaissances techniques :
- suppression du badge a cote du titre et de tous les details (commit, retard
  git, arch CUDA, nombre de jobs, chemins) ; une seule ligne 'Moteur actif : …'
- deux cartes claires : Version rapide (precompile, conseillee) / Version
  optimisee (compilee) ; un clic installe, active ou bascule
- bascule instantanee entre deux versions deja installees (nouvel endpoint
  /api/llamacpp/use : repointe BIN + redemarre, sans recompiler)
- carte active : '✓ Actif' + 'mettre a jour' ; progression et logs replies sous 'details'
2026-07-22 19:54:48 +02:00
nathaninline b0c1503ed8 v0.4.9 : backend llama.cpp precompile (binaires officiels, plus besoin de recompiler) 2026-07-22 19:22:34 +02:00
nathaninline b1890ed6f7 backend llama.cpp : mode binaires precompiles officiels (aucune compilation)
Alternative rapide a la compilation locale : telechargement des binaires
officiels de ggml-org/llama.cpp publies a chaque release (~2 min au lieu de
~40 de build CUDA). Le variant est choisi selon la machine (CUDA Windows avec
selection de la version selon le pilote + cudart, Vulkan, Metal, ROCm, CPU),
extrait dans backends/llama.cpp-prebuilt et BIN repointe dessus.

- backend_prebuilt.go : detection release/variant, telechargement avec
  progression, extraction zip/tar.gz anti zip-slip, marqueur VERSION
- UI : bouton 'binaires precompiles' + 'compiler (sources)', le statut
  distingue le mode actif (precompile vs build local), 'verifier les maj'
  compare a la derniere release officielle en mode precompile
- CLI : 'jean llamacpp prebuilt'
- le build local reste sur le disque : bascule possible via l'editeur de preset

Limites : builds generiques (pas de tuning natif) ; pas de build CUDA officiel
Linux (variant Vulkan) ; la compilation locale reste requise pour les forks.
2026-07-22 19:22:08 +02:00
nathaninline 58b59da823 v0.4.8 : gestion du backend llama.cpp depuis l'interface web (statut, verification des maj, install / update / recompilation avec logs en direct) 2026-07-22 17:59:12 +02:00
nathaninline 7ac571974f gestion du backend llama.cpp depuis l'UI web : statut (commit, retard, binaire, accelerateur detecte), verification des maj (git fetch), install / update / recompilation en job asynchrone avec phases, compteur de fichiers compiles et logs de build streames (poll /api/llamacpp/job) ; le service est arrete pendant le build puis relance, BIN repointe automatiquement 2026-07-22 13:34:56 +02:00
nathaninline 29f249be09 release CI : generer SHA256SUMS dans le workflow (jean update le verifie depuis v0.4.6) - evite le desaccord binaires CI / sommes manuelles qui a casse jean update sur v0.4.7 2026-07-22 12:37:57 +02:00
nathaninline 6bfa554edf v0.4.7 : detection et reparation auto de l'integration Visual Studio de CUDA (fix 'No CUDA toolset found' au build llama.cpp Windows, issue #10) 2026-07-22 12:26:03 +02:00
nathaninline 4fea700edc build CUDA Windows : detection + reparation de l'integration Visual Studio de CUDA manquante (erreur cryptique 'No CUDA toolset found', issue #10) - verif avant cmake via vswhere, copie auto des MSBuildExtensions du toolkit si possible, sinon message clair avec les 2 solutions ; filet dans hintMissingBuildDep 2026-07-22 12:24:33 +02:00
nathaninline 48c3e807be v0.4.6 : correctifs de la revue de code (reset/epoch, persistance du message user, cle jamais en URL, SHA256SUMS verifie par jean update, permissions preservees par edit, port conflict Windows) 2026-07-22 11:59:54 +02:00
nathaninline 02d164899e fix revue de code : reset pendant generation (epoch guard, plus de messages fantomes), message user persiste des l'envoi, cle de pilotage refusee en query string (fuite logs/historique), verif SHA256SUMS dans jean update, edit preserve les permissions du fichier, conflit de port gere sous Windows (netstat/taskkill), /api/update/apply renvoie 500 en echec 2026-07-22 11:57:56 +02:00
nathaninline cd570c5c5e fix theme doux sombre : accepter 'soft-dark' dans la whitelist /api/prefs (le theme sautait au refresh, ecrase par la pref serveur) 2026-07-22 11:32:37 +02:00
nathaninline 29efc82420 v0.4.5 : theme doux sombre, fix prompt systeme (persiste cote serveur), rangement complet du projet (cmd/+internal/, ui/src/, CI, tests e2eauth) 2026-07-22 11:26:39 +02:00
nathaninline 274dfbb516 UI: nouveau theme 'doux sombre' (soft-dark) - Lexend + palette chaude sur fond sombre, demande utilisateurs 2026-07-22 11:23:00 +02:00
nathaninline 1d2dba6501 fix: le prompt systeme de l'UI marchait dans le vide depuis la conversation serveur (v0.4.x) - il est desormais persiste cote serveur (/api/sysprompt, JEAN_HOME/sysprompt.txt, partage entre appareils) et injecte a chaque tour de generation (fusionne avec le preambule agent par InjectSkills) 2026-07-22 11:17:07 +02:00
nathaninline d5e0606dcc UI: assemblage via tools/assemble-ui (Go, multiplateforme) branche sur go generate - remplace ui/assemble.ps1 2026-07-22 11:06:19 +02:00
nathaninline b4b30cd47a Go: decoupe des 3 gros fichiers - web_server (mux/cmd) + web_api (handlers REST) + web_chat (SSE), backend_llamacpp (commandes) + backend_build (machinerie cmake), chat_internet (client crawl) + chat_internet_tools (outils du modele) ; deplacement pur, zero changement de code 2026-07-22 11:05:02 +02:00
nathaninline 76f0d963f9 CI GitHub Actions (build+vet+gofmt+tests+cross-compile sur push ; release 6 cibles auto sur tag v*) + tests relay_e2eauth (anti-rejeu, lockout appairage, normalisation code) 2026-07-22 11:03:28 +02:00
nathaninline 725a8161ce UI: retrait du doublon openBenchModal/closeBenchModal (07-models.js) 2026-07-22 11:02:14 +02:00
nathaninline 392f85ec3b gofmt -w sur les 6 fichiers non conformes (alignements de champs/maps uniquement) 2026-07-22 11:01:55 +02:00
nathaninline 71e7a5c369 gitattributes: .go en LF (gofmt -l ne crie plus a cause d'autocrlf) 2026-07-22 11:00:55 +02:00
nathaninline e3fe63ca24 Go: layout standard cmd/ + internal/ - tout le code dans internal/jean (package jean), cmd/jean = main() + ressources Windows (.syso/icone/versioninfo), ui/ demenage dans internal/jean/ui (go:embed inchange) ; racine GitHub epuree 2026-07-22 10:53:14 +02:00
nathaninline 79e8d322a9 Go: rangement des 45 fichiers par domaine (cli_/web_/chat_/llm_/backend_/relay_/sys_) + doc.go carte du code - renommages purs (git mv) + maj des noms cites en commentaires, zero changement de code 2026-07-22 10:47:42 +02:00
nathaninline 7af70c3d2e README: documenter ui/src/ + assemble.ps1 (index.html genere) 2026-07-22 10:27:49 +02:00
nathaninline c1b006e9ac UI: en-tete 'fichier genere' dans index.html (via template) 2026-07-22 10:24:24 +02:00
nathaninline 8a2450dff6 assemble.ps1: marqueurs tolerants LF/CRLF (autocrlf) + remplacement via MatchEvaluator (contenu JS avec \$ intact) 2026-07-22 10:23:52 +02:00
nathaninline 0770723ef0 UI: decoupe index.html en sources ui/src/ (styles.css + js/NN-*.js + template) assemblees par ui/assemble.ps1 - index.html reste genere/committe (go:embed et build-server-ui.ps1 inchanges), byte-identique 2026-07-22 10:22:54 +02:00
nathaninline 5f256befea UI: icone MAJ monochrome (fleche noire) au lieu de l'emoji colore 2026-07-22 09:54:41 +02:00
nathaninline c611893bcd UI: bouton mise a jour en haut des actions + icone dediee, retrait de la ligne 'Version installee' (deja affichee en haut) 2026-07-22 09:52:00 +02:00
nathaninline e0e5118063 v0.4.4 : le bouton mise a jour redemarre automatiquement jean-link
Apres une MAJ depuis l'UI, plus besoin de SSH sur le serveur pour finir : sur
Linux/systemd le service jean-link est relance tout seul (differe + --no-block,
la reponse HTTP part d'abord ; jean.service/llama-server n'est PAS touche pour
ne pas recharger le modele). La cle E2E survit au restart, l'UI se reconnecte
seule. Poste client/Windows : comportement inchange (message d'indice).
2026-07-22 09:44:55 +02:00
nathaninline 6cb678d42d replay: coalescer aussi les tool_used (garder l'etat final done, jeter le streaming d'args) - divise par ~100 les events d'outils rejoues, fix lenteur mobile au refresh 2026-07-22 09:35:09 +02:00
nathaninline faa377e64f SSE: padding APRES caught_up (16Ko) au lieu de dessus - le dernier message n'est plus la queue coincee dans le tampon proxy 2026-07-22 09:19:39 +02:00
nathaninline 51c2c2d80f v0.4.3 : anti-buffering SSE (Cloudflare) - fin des derniers messages en retard au refresh
Le chat E2E d'app.ajean.link traverse Cloudflare (ajean.link, proxy orange) qui
bufferise le flux SSE par lots : la queue du replay arrivait 20-30s apres le reste,
de facon intermittente (surtout Safari iOS). Corrige par la technique standard :
padding d'amorcage en tete de flux + padding sur caught_up (force le flush de la
queue), Cache-Control: no-transform (interdit a Cloudflare de bufferiser/compresser),
et heartbeat 15s->4s (borne le pire cas).
2026-07-22 09:15:15 +02:00
nathaninline 7d104e3213 v0.4.2 : refresh instantane du chat (fin du layout thrashing O(n2) au replay)
Au refresh, le client rejouait tout le journal depuis seq 0 et forcait un reflow
synchrone par evenement (scrollMaybe lisait scrollHeight ; collapseInstant lisait
offsetHeight) sur un DOM grandissant -> cout quadratique, 20-30s pour que les
derniers messages s'affichent. Le scroll est desormais fait une seule fois a la
fin du replay (caught_up), plus aucun reflow force pendant le rejeu -> O(n).
2026-07-22 08:55:07 +02:00
nathaninline e16bebda8a v0.4.1 : correctif du bouton stop (regression v0.4.0 : stopGen supprimee par erreur) 2026-07-21 22:16:04 +02:00
nathaninline d55c0d4992 fix: bouton stop cassé — la fonction stopGen avait ete supprimee par erreur lors de la refonte de send() 2026-07-21 22:14:53 +02:00
nathaninline 696627246d v0.4.0 : conversation persistee cote serveur (historique partage multi-appareils, generation autonome) + compaction du contexte facon Hermes
- Compaction automatique du contexte facon Hermes (head/torso/tail, elagage des
  vieux tool outputs + resume du torse par le modele local) : discussions quasi
  illimitees sans 'vider', declenchee sur le vrai decompte de tokens
- Historique et generation deplaces CToe SERVEUR : une seule conversation partagee
  entre tous les appareils, persistee sur disque, generation autonome (fermer le
  navigateur n'arrete plus la reponse), replay complet au refresh (outils/vitesses)
- Un seul process (jean-link) sert le tunnel ET le :8090 local -> meme historique
  entre jean.n27.fr et app.ajean.link
- Relais toujours 100% boite noire (chiffrement E2E inchange)
- Nombreux polish UI (replay coalesce rapide, pas de clignotement au refresh, envoi
  resilient, reorganisation des reglages)
2026-07-21 21:37:35 +02:00
nathaninline 02d4830a17 UI: aide clavier 'Entree pour envoyer' de retour sur desktop, cachee seulement <720px (menu replie) 2026-07-21 21:34:31 +02:00
nathaninline f9165fb204 UI: bouton send/stop ne flotte plus au refresh (etat applique une fois au caught_up) 2026-07-21 21:29:18 +02:00
nathaninline 7192931ddc UI: fin du clignotement au refresh (chat masque pendant le replay, revele en bas au caught_up) 2026-07-21 21:25:30 +02:00
nathaninline a898f32e1a historique partage entre jean web (local) et jean link (tunnel)
Le process jean-link sert desormais AUSSI l'UI locale sur :8090 avec le MEME mux
que le tunnel -> une seule conversation en memoire, partagee entre jean.n27.fr et
app.ajean.link. Fini les deux process avec des historiques divergents qui
s'ecrasaient sur le meme fichier. Le 'jean web' autonome n'est plus necessaire.
2026-07-21 21:17:21 +02:00