mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-11 17:26:57 +02:00
Presets : une bascule faite sur un appareil se voit sur les autres
Repris d'AJEAN 0.13.6. Changer de preset sur le téléphone laissait l'onglet du PC afficher l'ancien, sélection de la liste comprise, jusqu'à un rechargement à la main. /api/status (sondé toutes les 5 s) expose l'id du preset actif ; loadStatus rappelle loadPresets quand il change sans qu'on y ait touché ici. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
2c36fa6d2c
commit
38802d9e21
3 files changed
+21
No files matched your search
@@ -3915,8 +3915,17 @@ function askKeyOnce(){
|
|||||||
}
|
}
|
||||||
async function jget(u){ const r=await jfetch(u); return r.json(); }
|
async function jget(u){ const r=await jfetch(u); return r.json(); }
|
||||||
async function jpost(u,b){ const r=await jfetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b||{})}); return r.json(); }
|
async function jpost(u,b){ const r=await jfetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b||{})}); return r.json(); }
|
||||||
|
let LAST_PRESET=null; // id du preset actif vu au dernier poll (détecte une bascule faite ailleurs)
|
||||||
async function loadStatus(){
|
async function loadStatus(){
|
||||||
const s=await jget('/api/status');
|
const s=await jget('/api/status');
|
||||||
|
// Preset actif changé alors qu'on n'a rien touché ici : un AUTRE appareil a
|
||||||
|
// basculé de preset/modèle. On rafraîchit la liste (et le libellé du preset)
|
||||||
|
// pour rester en phase sans recharger l'app. Premier poll (LAST_PRESET null) :
|
||||||
|
// on note seulement la valeur, loadPresets a déjà tourné au démarrage.
|
||||||
|
if(typeof s.preset!=='undefined'){
|
||||||
|
if(LAST_PRESET!==null && s.preset!==LAST_PRESET && typeof loadPresets==='function') loadPresets();
|
||||||
|
LAST_PRESET=s.preset;
|
||||||
|
}
|
||||||
const el=document.getElementById('status-svc');
|
const el=document.getElementById('status-svc');
|
||||||
// Trois états : service coupé (err) · service actif mais modèle pas encore
|
// Trois états : service coupé (err) · service actif mais modèle pas encore
|
||||||
// chargé (loading, llama-server renvoie 503) · modèle prêt (ok).
|
// chargé (loading, llama-server renvoie 503) · modèle prêt (ok).
|
||||||
|
|||||||
@@ -1,5 +1,14 @@
|
|||||||
|
let LAST_PRESET=null; // id du preset actif vu au dernier poll (détecte une bascule faite ailleurs)
|
||||||
async function loadStatus(){
|
async function loadStatus(){
|
||||||
const s=await jget('/api/status');
|
const s=await jget('/api/status');
|
||||||
|
// Preset actif changé alors qu'on n'a rien touché ici : un AUTRE appareil a
|
||||||
|
// basculé de preset/modèle. On rafraîchit la liste (et le libellé du preset)
|
||||||
|
// pour rester en phase sans recharger l'app. Premier poll (LAST_PRESET null) :
|
||||||
|
// on note seulement la valeur, loadPresets a déjà tourné au démarrage.
|
||||||
|
if(typeof s.preset!=='undefined'){
|
||||||
|
if(LAST_PRESET!==null && s.preset!==LAST_PRESET && typeof loadPresets==='function') loadPresets();
|
||||||
|
LAST_PRESET=s.preset;
|
||||||
|
}
|
||||||
const el=document.getElementById('status-svc');
|
const el=document.getElementById('status-svc');
|
||||||
// Trois états : service coupé (err) · service actif mais modèle pas encore
|
// Trois états : service coupé (err) · service actif mais modèle pas encore
|
||||||
// chargé (loading, llama-server renvoie 503) · modèle prêt (ok).
|
// chargé (loading, llama-server renvoie 503) · modèle prêt (ok).
|
||||||
|
|||||||
@@ -80,6 +80,9 @@ func handleStatus(w http.ResponseWriter, r *http.Request) {
|
|||||||
"load_error": loadErr, // modèle qui ne charge pas (incompat moteur…) — vide sinon
|
"load_error": loadErr, // modèle qui ne charge pas (incompat moteur…) — vide sinon
|
||||||
"load_pct": loadPct, // % estimé du chargement en cours (-1 = non mesurable)
|
"load_pct": loadPct, // % estimé du chargement en cours (-1 = non mesurable)
|
||||||
"external": external, // preset externe : le chat part vers une API distante
|
"external": external, // preset externe : le chat part vers une API distante
|
||||||
|
// id du preset actif : un autre appareil a pu basculer, l'UI se
|
||||||
|
// resynchronise sans reload (voir loadStatus). AJEAN 0.13.6.
|
||||||
|
"preset": activePresetID(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user