diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index 073de7d..ccad0c7 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -1,19 +1,13 @@
-Les postes distants se pilotent maintenant depuis le chat, et l'envoi de fichiers à travers ajean.link est réparé.
+Quelques réglages d'interface pour une lecture plus claire, et un statut du moteur enfin honnête.
-## Les postes distants à portée de main
+## Un statut du moteur plus juste
-Un nouveau bouton apparaît dans la barre de saisie, juste à côté du trombone. Son icône dit **sur quelle machine l'IA agit** : un écran quand c'est ce serveur, des ondes wifi quand c'est un poste distant. Un clic ouvre une **fenêtre dédiée** où tu choisis la cible, vois tes postes appairés (avec leurs capacités et leur dossier autorisé) et en ajoutes de nouveaux.
+La pastille d'état affichait « modèle incompatible » dès qu'un chargement échouait — même quand la vraie cause était ailleurs. Désormais elle reste courte et neutre (**prêt**, **chargement…**, **erreur**, **arrêté**), et le message détaillé en dessous n'accuse le moteur d'incompatibilité **que lorsque le journal le montre vraiment** (quantification ou architecture non reconnue). Pour tout autre échec, il renvoie simplement au journal du moteur au lieu de donner une fausse piste.
-Plus besoin d'aller fouiller dans les réglages : tout est là, au moment où on en a besoin.
+## Panneau « Actions » réorganisé
-## Envoi de fichiers réparé sur ajean.link
+Le bouton « refresh », qui ne servait à rien, est retiré. Les actions sont regroupées deux par deux : **mise à jour** et **exporter** sur une ligne, **bench** et **effacer la conversation** sur l'autre.
-Depuis l'accès distant, joindre un fichier à un message échouait. La cause : l'envoi ne passait pas par le tunnel chiffré de bout en bout, contrairement au téléchargement. C'est corrigé — l'envoi emprunte désormais le même chemin, et un gigaoctet traverse toujours par morceaux, sans que le relais ne voie rien.
+## Petits nettoyages
-## Installer un poste, en une commande ré-exécutable
-
-`ajean remote install …` peut maintenant être relancé tel quel : fournir un code d'appairage force toujours le (ré)appairage, et la commande retire proprement un service déjà en place au lieu d'échouer sur un fichier verrouillé. Fini le `logout` manuel entre deux essais.
-
-## Mise à jour depuis l'interface, même sans root
-
-Sur un serveur où le service tourne sous un compte non-root, le bouton « mettre à jour » de l'interface redémarre désormais correctement le service (via sudo non interactif) au lieu d'échouer en silence.
+Le titre de l'éditeur de preset n'affiche plus le mot « Preset » redondant (juste le nom), et le mode mémoire automatique s'appelle simplement « auto ».
diff --git a/cmd/ajean/resource_windows_amd64.syso b/cmd/ajean/resource_windows_amd64.syso
index 9b53b00..732983b 100644
Binary files a/cmd/ajean/resource_windows_amd64.syso and b/cmd/ajean/resource_windows_amd64.syso differ
diff --git a/cmd/ajean/resource_windows_arm64.syso b/cmd/ajean/resource_windows_arm64.syso
index f481cc0..8cd1a12 100644
Binary files a/cmd/ajean/resource_windows_arm64.syso and b/cmd/ajean/resource_windows_arm64.syso differ
diff --git a/cmd/ajean/versioninfo.json b/cmd/ajean/versioninfo.json
index ec0b6c1..6760f6b 100644
--- a/cmd/ajean/versioninfo.json
+++ b/cmd/ajean/versioninfo.json
@@ -3,13 +3,13 @@
"FileVersion": {
"Major": 0,
"Minor": 9,
- "Patch": 2,
+ "Patch": 3,
"Build": 0
},
"ProductVersion": {
"Major": 0,
"Minor": 9,
- "Patch": 2,
+ "Patch": 3,
"Build": 0
},
"FileFlagsMask": "3f",
@@ -25,7 +25,7 @@
"LegalCopyright": "Copyright (c) 2026 AJEAN contributors. MIT License.",
"OriginalFilename": "ajean.exe",
"ProductName": "AJEAN",
- "ProductVersion": "0.9.2",
+ "ProductVersion": "0.9.3",
"Comments": "https://github.com/nathaninline/ajean — projet open source (MIT)"
},
"VarFileInfo": {
diff --git a/internal/ajean/run.go b/internal/ajean/run.go
index dbc77ec..536669e 100644
--- a/internal/ajean/run.go
+++ b/internal/ajean/run.go
@@ -10,7 +10,7 @@ import (
"strings"
)
-const Version = "0.9.2"
+const Version = "0.9.3"
// Main est le vrai main() du binaire (cmd/ajean ne fait que l'appeler).
func Main() {
diff --git a/internal/ajean/ui/index.html b/internal/ajean/ui/index.html
index 91ba5a7..d7f6ef6 100644
--- a/internal/ajean/ui/index.html
+++ b/internal/ajean/ui/index.html
@@ -1249,7 +1249,7 @@ button:hover{border-color:var(--dim);color:var(--text)}