diff --git a/network-poc/static/index.html b/network-poc/static/index.html index e57cecc..052f5b7 100644 --- a/network-poc/static/index.html +++ b/network-poc/static/index.html @@ -1491,12 +1491,19 @@ let detectedWebGPU = false; let detectedGpuInfo = null; let wasmInitialized = false; - let coderSize = '05b'; // '05b' tai '3b' + let coderSize = localStorage.getItem('kpn-coder-size') || '05b'; - // Mallivalinnan radio-napit + // Mallivalinnan radio-napit — asetetaan oikea valinta localStoragesta + const savedRadio = document.querySelector(`input[name="coder-size"][value="${coderSize}"]`); + if (savedRadio) savedRadio.checked = true; + if (coderSize === '3b') { + document.getElementById('coder-opt-05b')?.style && (document.getElementById('coder-opt-05b').style.borderColor = 'var(--border-color)'); + document.getElementById('coder-opt-3b')?.style && (document.getElementById('coder-opt-3b').style.borderColor = 'var(--accent-color)'); + } document.querySelectorAll('input[name="coder-size"]').forEach(radio => { radio.addEventListener('change', (e) => { coderSize = e.target.value; + localStorage.setItem('kpn-coder-size', coderSize); // Visuaalinen korostus document.getElementById('coder-opt-05b').style.borderColor = coderSize === '05b' ? 'var(--accent-color)' : 'var(--border-color)'; document.getElementById('coder-opt-3b').style.borderColor = coderSize === '3b' ? 'var(--accent-color)' : 'var(--border-color)'; @@ -1876,6 +1883,7 @@ return; } coderSize = selected.coderSize; + localStorage.setItem('kpn-coder-size', coderSize); termLog(` Alustetaan ${selected.name} (${selected.size})...`, '#d29922'); if (btn) btn.click(); else ensureCoderNode(); @@ -2776,6 +2784,7 @@ if (cd) cd.style.background = '#3fb950'; if (cl) { cl.textContent = 'Qwen2.5-Coder'; cl.style.color = '#3fb950'; } if (btn) { btn.dataset.state = 'ready'; btn.textContent = '✓ Valmis'; btn.style.borderColor = '#3fb950'; btn.style.color = '#3fb950'; btn.style.cursor = 'default'; btn.title = 'Kielimalli ladattu — oma kone on valmis laskentaan'; } + localStorage.setItem('kpn-coder-loaded', 'true'); } if (msg.includes('[Coder]') && msg.includes('Syöte:')) { // Pipeline piiloon kun generointi alkaa @@ -2862,7 +2871,11 @@ } } - // Agents-sivun coder-node käynnistetään "Alusta laskentasolmu" -napista tai kpn load -komennolla + // Automaattinen uudelleenkäynnistys: jos malli oli ladattu ennen refreshiä, ladataan se uudelleen cachesta + if (localStorage.getItem('kpn-coder-loaded') === 'true') { + // Pieni viive jotta UI ehtii piirtyä + setTimeout(() => ensureCoderNode(), 500); + } // Laskentasolmun käynnistys/pysäytys -nappi let computeAbortController = null;