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;