diff --git a/internal/ajean/ui/index.html b/internal/ajean/ui/index.html index 31d838a..87df07e 100644 --- a/internal/ajean/ui/index.html +++ b/internal/ajean/ui/index.html @@ -3438,6 +3438,11 @@

0) && !(tok>0) && !(pr && !viewOn('hide-preset'))){ removeGenEl(); scrollMaybe(true); return; } const items=genItems(elapsedMs/1000, tok, rate, pr, ''); if(!(elapsedMs>0)) items.shift(); - const g=ensureGenEl(); paintGenParts(g.querySelector('.gtxt'), items); + const g=ensureGenEl(); + const act=g.querySelector('.jact'); if(act){ act.textContent=''; act.classList.remove('jact-in'); } + paintGenParts(g.querySelector('.gtxt'), items); GENEL=null; if(!CHAT_TARGET) JeanAvatar&&JeanAvatar.detach(); scrollMaybe(true); } @@ -12444,7 +12461,8 @@

0) && !(tok>0) && !(pr && !viewOn('hide-preset'))){ removeGenEl(); scrollMaybe(true); return; } const items=genItems(elapsedMs/1000, tok, rate, pr, ''); if(!(elapsedMs>0)) items.shift(); - const g=ensureGenEl(); paintGenParts(g.querySelector('.gtxt'), items); + const g=ensureGenEl(); + // Le mot d'activité DOIT être effacé ici. `GENEL=null` détache la ligne sans la vider : + // elle reste dans le fil comme trace du tour fini, avec son encore + // plein. Or le CSS anime tout `.jact:not(:empty)::after` avec un balayage `infinite`, + // donc chaque « Retient ça… » des tours passés continuait à briller pour toujours — et + // la règle `.jact:not(:empty)+.gtxt{display:none}` cachait par-dessus le coup la ligne + // de métriques (durée · tokens · t/s), remplacée par ce mot figé. + const act=g.querySelector('.jact'); if(act){ act.textContent=''; act.classList.remove('jact-in'); } + paintGenParts(g.querySelector('.gtxt'), items); GENEL=null; if(!CHAT_TARGET) JeanAvatar&&JeanAvatar.detach(); scrollMaybe(true); // révèle la fin (et cette ligne) même sur un fil à peine défilable } diff --git a/internal/ajean/ui/src/js/20-jean-avatar.js b/internal/ajean/ui/src/js/20-jean-avatar.js index 46060e0..82f3569 100644 --- a/internal/ajean/ui/src/js/20-jean-avatar.js +++ b/internal/ajean/ui/src/js/20-jean-avatar.js @@ -251,7 +251,8 @@ var JeanAvatar = (()=>{ act(k){ if(!k) return; wake(); - const map={'jean.act_think':'think','jean.act_read':'think','jean.act_search':'search','jean.act_remember':'search','jean.act_forget':'search', + const map={'jean.act_think':'think','jean.act_read':'think','jean.act_search':'search','jean.act_remember':'search','jean.act_note':'search','jean.act_lesson':'search', + 'jean.act_save':'search','jean.act_patch':'search','jean.act_rule':'search','jean.act_forget':'search', 'jean.act_web':'web','jean.act_browse':'web','jean.act_look':'web','jean.act_machine':'work','jean.act_task':'work','jean.act_work':'work'}; setState(map[k]||'think'); },