mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-11 17:26:57 +02:00
Presets : un switch Raisonnement laissé sur off ne l'écrivait jamais
onchange ne part que sur une interaction : créer un preset et laisser l'interrupteur décoché n'écrivait pas REASONING=, et la clé absente laisse le moteur suivre le gabarit du modèle — il raisonnait malgré le switch affiché sur off. À l'enregistrement, l'état de l'interrupteur est désormais matérialisé : off explicite, ou on si aucune valeur active plus précise (auto/deepseek) n'est déjà là. Repris de l'amont AJEAN v0.12.1 (issue #46). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q7fwdmmVbvLHznF9v1npzN
This commit is contained in:
1 parent
b4f4135101
commit
cfe70f2b70
2 files changed
+30
No files matched your search
@@ -5279,6 +5279,21 @@ function closeModal(){ hideModal('modal'); document.getElementById('modal').clas
|
||||
async function saveItem(){
|
||||
const K = KINDS[editingKind];
|
||||
const name = document.getElementById('m-name').value.trim();
|
||||
// Interrupteur « Raisonnement » : on matérialise son état dans le preset AVANT
|
||||
// de lire le contenu. onchange ne part que sur une interaction : un switch
|
||||
// laissé sur off à la création n'écrivait donc jamais REASONING=, et la clé
|
||||
// ABSENTE laisse le moteur raisonner malgré l'interrupteur affiché sur off
|
||||
// (amont, issue #46). Décoché → REASONING=off explicite. Coché → on, sauf si
|
||||
// une valeur active plus précise (auto/deepseek) est déjà là : on la garde.
|
||||
if(editingKind==='preset'){
|
||||
const rsw = document.getElementById('s-reasoning');
|
||||
if(rsw){
|
||||
const cur = cfgReadKey('REASONING');
|
||||
const active = /^(on|1|true|auto|deepseek)$/i.test(cur);
|
||||
if(!rsw.checked){ if(!/^off$/i.test(cur)) cfgWriteKey('REASONING', 'off'); }
|
||||
else if(!active){ cfgWriteKey('REASONING', 'on'); }
|
||||
}
|
||||
}
|
||||
const content = document.getElementById('m-content').value;
|
||||
if(!name){ toast('nom requis'); return; }
|
||||
// Presets: keyed by id (filename); duplicate display names are allowed.
|
||||
|
||||
@@ -827,6 +827,21 @@ function closeModal(){ hideModal('modal'); document.getElementById('modal').clas
|
||||
async function saveItem(){
|
||||
const K = KINDS[editingKind];
|
||||
const name = document.getElementById('m-name').value.trim();
|
||||
// Interrupteur « Raisonnement » : on matérialise son état dans le preset AVANT
|
||||
// de lire le contenu. onchange ne part que sur une interaction : un switch
|
||||
// laissé sur off à la création n'écrivait donc jamais REASONING=, et la clé
|
||||
// ABSENTE laisse le moteur raisonner malgré l'interrupteur affiché sur off
|
||||
// (amont, issue #46). Décoché → REASONING=off explicite. Coché → on, sauf si
|
||||
// une valeur active plus précise (auto/deepseek) est déjà là : on la garde.
|
||||
if(editingKind==='preset'){
|
||||
const rsw = document.getElementById('s-reasoning');
|
||||
if(rsw){
|
||||
const cur = cfgReadKey('REASONING');
|
||||
const active = /^(on|1|true|auto|deepseek)$/i.test(cur);
|
||||
if(!rsw.checked){ if(!/^off$/i.test(cur)) cfgWriteKey('REASONING', 'off'); }
|
||||
else if(!active){ cfgWriteKey('REASONING', 'on'); }
|
||||
}
|
||||
}
|
||||
const content = document.getElementById('m-content').value;
|
||||
if(!name){ toast('nom requis'); return; }
|
||||
// Presets: keyed by id (filename); duplicate display names are allowed.
|
||||
|
||||
Reference in new issue
Block a user