FABLESLIP commited on
Commit
069b7aa
·
verified ·
1 Parent(s): 995b0ca

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -20
app.py CHANGED
@@ -1260,29 +1260,14 @@ async function refreshWarmupUI(){
1260
  if (warmupPopupStatus) warmupPopupStatus.textContent = running ? 'Téléchargement en cours…' : 'Terminé';
1261
 
1262
  // PRÉAMBULE FIXE (conservé pendant tout le run)
1263
- // (Auto-scroll sur chaque rafraîchissement)
1264
- const logsTxt = Array.isArray(s.logs) ? s.logs.join('\n') : '';
1265
- const fixedPreface = (warmupPreface && warmupPreface.trim().length)
1266
- ? warmupPreface
1267
- : (()=>{
1268
- const n = Number.isFinite(s.audit_count)
1269
- ? s.audit_count
1270
- : (Array.isArray(s.audit_cached) ? s.audit_cached.length : 0);
1271
- const cachedList = Array.isArray(s.audit_cached) ? s.audit_cached : [];
1272
- const asked = Array.isArray(window.lastRequestedModels) ? window.lastRequestedModels : [];
1273
- return (
1274
- `[Instance ${instanceId}]` + '\n' +
1275
- 'Déjà en cache (' + n + '):\n' +
1276
- cachedList.map(m => ' • ' + m).join('\n') + '\n\n' +
1277
- 'Demandé dans cette exécution (' + asked.length + '):\n' +
1278
- asked.map(m => ' • ' + m).join('\n')
1279
- );
1280
- })();
1281
- if (warmupLogs) {
1282
- warmupLogs.textContent = fixedPreface + '\n\n' + logsTxt;
1283
  warmupLogs.scrollTop = warmupLogs.scrollHeight;
1284
  }
1285
 
 
1286
  if (running) {
1287
  if (!userClosedWarmupPopup) openWarmupPopup();
1288
  if (!warmupTimer) warmupTimer = setInterval(refreshWarmupUI, 1000);
@@ -1480,6 +1465,25 @@ if (launchSelectedBtn){
1480
  launchSelectedBtn.addEventListener('click', async ()=>{
1481
  const picks = Array.from(repoListEl.querySelectorAll('input[type="checkbox"]'))
1482
  .filter(cb=>cb.checked).map(cb=>cb.value);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1483
  if(!picks.length){ alert('Sélectionne au moins un modèle.'); return; }
1484
  window.lastRequestedModels = picks.slice();
1485
  userClosedWarmupPopup = false;
 
1260
  if (warmupPopupStatus) warmupPopupStatus.textContent = running ? 'Téléchargement en cours…' : 'Terminé';
1261
 
1262
  // PRÉAMBULE FIXE (conservé pendant tout le run)
1263
+ // Afficher "préface + logs" uniquement pendant l'exécution,
1264
+ // le récap final sera posé plus bas quand s.done === true
1265
+ if (running && warmupLogs) {
1266
+ warmupLogs.textContent = ((warmupPreface && warmupPreface.trim()) ? warmupPreface : fixedPreface) + '\n\n' + logsTxt;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1267
  warmupLogs.scrollTop = warmupLogs.scrollHeight;
1268
  }
1269
 
1270
+
1271
  if (running) {
1272
  if (!userClosedWarmupPopup) openWarmupPopup();
1273
  if (!warmupTimer) warmupTimer = setInterval(refreshWarmupUI, 1000);
 
1465
  launchSelectedBtn.addEventListener('click', async ()=>{
1466
  const picks = Array.from(repoListEl.querySelectorAll('input[type="checkbox"]'))
1467
  .filter(cb=>cb.checked).map(cb=>cb.value);
1468
+ // Réinitialiser l’état d’affichage pour ce nouveau run
1469
+ warmupPreface = '';
1470
+ window.lastRequestedModels = picks.slice();
1471
+
1472
+ // Construire immédiatement une préface exacte (Demandés + Ignorés + Cache global)
1473
+ try {
1474
+ const ra = await fetch('/warmup/audit');
1475
+ const audit = ra.ok ? await ra.json() : null;
1476
+ const cached = (audit && Array.isArray(audit.cached)) ? audit.cached : [];
1477
+ const ignored = picks.filter(m => cached.includes(m));
1478
+ warmupPreface =
1479
+ 'Demandés (' + picks.length + '):\n' +
1480
+ picks.map(m => ' • ' + m).join('\n') + '\n\n' +
1481
+ '⬛ Ignorés (déjà en cache) (' + ignored.length + '):\n' +
1482
+ (ignored.length ? ignored.map(m => ' • ' + m).join('\n') : '') + '\n\n' +
1483
+ '📦 Déjà en cache global (' + cached.length + '):\n' +
1484
+ (cached.length ? cached.map(m => ' • ' + m).join('\n') : '');
1485
+ } catch(_) { /* no-op */ }
1486
+
1487
  if(!picks.length){ alert('Sélectionne au moins un modèle.'); return; }
1488
  window.lastRequestedModels = picks.slice();
1489
  userClosedWarmupPopup = false;