From c5dc936f50d0ce05537e2f0c5318015a7fdbad64 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 3 Aug 2026 05:47:42 +0000 Subject: [PATCH] =?UTF-8?q?Simplifie=20les=20R=C3=A9glages=20:=20divulgati?= =?UTF-8?q?on=20progressive,=20rien=20de=20retir=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Les Réglages exposaient d'un bloc 7 curseurs et 5 interrupteurs « Intelligence », dont des réglages pointus (Couches GPU, Batch, Top-K) que l'on ne touche jamais — et Couches GPU est précisément celui qui avait basculé l'inférence sur le CPU quand on le forçait. - Génération : ne montre que Température et Contexte ; Top-P, Top-K, Jetons max, Couches GPU et Batch passent sous « Réglages avancés », avec un avertissement explicite sur Couches GPU (laisser auto). - Intelligence : au premier plan « Code minimal » et « Plan-puis-exécute » (ce qui change le rendu au quotidien) ; Skills, Auto-critique et Mémoire entre sessions passent en avancé. Descriptions raccourcies. - Nouveau repli
natif (aucun état à gérer, accessible au clavier) et ligne ToggleRow réutilisable, qui déduplique le balisage. Aucune option supprimée : tout reste accessible en un clic. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01SVay7z3y7q2gEe54ByAE6N --- frontend/src/panels/SettingsView.tsx | 143 ++++++++++++++++++++------- 1 file changed, 106 insertions(+), 37 deletions(-) diff --git a/frontend/src/panels/SettingsView.tsx b/frontend/src/panels/SettingsView.tsx index 5967968..0382375 100644 --- a/frontend/src/panels/SettingsView.tsx +++ b/frontend/src/panels/SettingsView.tsx @@ -299,6 +299,7 @@ export function SettingsView() { GÉNÉRATION + {/* Les deux seuls réglages qui comptent au quotidien. */} v.toFixed(2)} onChange={(v) => set("temperature", v)} /> + `${Math.round(v / 1024)}K`} + onChange={(v) => set("num_ctx", Math.round(v))} + /> + + set("max_tokens", Math.round(v))} /> `${Math.round(v / 1024)}K`} - onChange={(v) => set("num_ctx", Math.round(v))} - /> - (v < 0 ? "auto" : String(Math.round(v)))} onChange={(v) => set("num_gpu", Math.round(v))} /> +
+ Laisse « auto » : forcer un nombre de couches qui ne tient + pas en VRAM bascule toute l'inférence sur le CPU. +
set("num_batch", Math.round(v))} last /> +
+ La précision KV (f16/q8_0) est un + réglage global du serveur Ollama et nécessite son redémarrage. +
+
+
Mode réflexion
@@ -373,10 +386,6 @@ export function SettingsView() {
set("think", !draft.think)} />
-
- La précision KV (f16/q8_0) est un - réglage global du serveur Ollama et nécessite son redémarrage. -
@@ -427,34 +436,42 @@ export function SettingsView() {
INTELLIGENCE
- {[ + {/* Au quotidien : comment il code, et s'il planifie. */} + {([ + ["ponytail", "Code minimal", + "Va au plus simple qui marche, sans dépendance ni extra"] as const, ["plan_mode", "Plan-puis-exécute", - "Décompose les demandes complexes en étapes"] as const, - ["self_review", "Auto-critique (Qualité +)", - "Relit et révise la réponse avant de la donner"] as const, - ["rag_enabled", "Mémoire entre sessions (RAG)", - "Rappelle d'AUTRES discussions dans celle-ci. Désactivé par défaut : sinon une ancienne demande sans rapport ressurgit. Chaque discussion garde toujours sa propre mémoire."] as const, - ["skills_enabled", "Skills automatiques", - "Méthodes expertes injectées selon la tâche (débogage, web, refactor…)"] as const, - ["ponytail", "Ponytail (code minimal)", - "Anti sur-ingénierie : code le plus simple qui marche, sans dépendance ni fonctionnalité superflue (github.com/DietrichGebert/ponytail)"] as const, - ].map(([key, label, desc], i) => ( -
( + 0 ? "border-t-2 border-line-soft" : "" - }`} - > - - {label} - {desc} - - set(key, !draft[key])} + /> + ))} + + + {([ + ["skills_enabled", "Skills automatiques", + "Méthodes expertes selon la tâche (débogage, web…)"] as const, + ["self_review", "Auto-critique", + "Relit et révise la réponse — plus lent"] as const, + ["rag_enabled", "Mémoire entre sessions", + "Rappelle d'AUTRES discussions ici. Chaque discussion garde toujours sa propre mémoire."] as const, + ]).map(([key, label, desc], i) => ( + set(key, !draft[key])} /> -
- ))} + ))} +
@@ -881,6 +898,58 @@ function Toggle({ on, onClick }: { on: boolean; onClick: () => void }) { ); } +/** Repli « Avancé » : sort les réglages rares du chemin principal. + * + *
natif : pas d'état à gérer, repliement mémorisé par le navigateur + * le temps de la page, et accessible au clavier sans code supplémentaire. + */ +function Advanced({ + children, + label = "Réglages avancés", +}: { + children: React.ReactNode; + label?: string; +}) { + return ( +
+ + ▸ + {label} + +
{children}
+
+ ); +} + +/** Ligne interrupteur : libellé + description + bascule. */ +function ToggleRow({ + label, + desc, + on, + onClick, + first, +}: { + label: string; + desc: string; + on: boolean; + onClick: () => void; + first?: boolean; +}) { + return ( +
+ + {label} + {desc} + + +
+ ); +} + function Slider({ label, value,