Malli säilyy refreshin yli: automaattinen uudelleenlataus IndexedDB-cachesta
- coderSize tallennetaan localStorageen (valinta säilyy) - Kun malli on kerran ladattu, 'kpn-coder-loaded' lippu asetetaan - Sivulatauksessa: jos lippu on asetettu, ensureCoderNode() käynnistyy automaattisesti — painot tulevat IndexedDB-cachesta, ei verkosta - Radio-napit asetetaan oikeaan tilaan localStoragesta Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1491,12 +1491,19 @@
|
|||||||
let detectedWebGPU = false;
|
let detectedWebGPU = false;
|
||||||
let detectedGpuInfo = null;
|
let detectedGpuInfo = null;
|
||||||
let wasmInitialized = false;
|
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 => {
|
document.querySelectorAll('input[name="coder-size"]').forEach(radio => {
|
||||||
radio.addEventListener('change', (e) => {
|
radio.addEventListener('change', (e) => {
|
||||||
coderSize = e.target.value;
|
coderSize = e.target.value;
|
||||||
|
localStorage.setItem('kpn-coder-size', coderSize);
|
||||||
// Visuaalinen korostus
|
// Visuaalinen korostus
|
||||||
document.getElementById('coder-opt-05b').style.borderColor = coderSize === '05b' ? 'var(--accent-color)' : 'var(--border-color)';
|
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)';
|
document.getElementById('coder-opt-3b').style.borderColor = coderSize === '3b' ? 'var(--accent-color)' : 'var(--border-color)';
|
||||||
@@ -1876,6 +1883,7 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
coderSize = selected.coderSize;
|
coderSize = selected.coderSize;
|
||||||
|
localStorage.setItem('kpn-coder-size', coderSize);
|
||||||
termLog(` Alustetaan ${selected.name} (${selected.size})...`, '#d29922');
|
termLog(` Alustetaan ${selected.name} (${selected.size})...`, '#d29922');
|
||||||
if (btn) btn.click();
|
if (btn) btn.click();
|
||||||
else ensureCoderNode();
|
else ensureCoderNode();
|
||||||
@@ -2776,6 +2784,7 @@
|
|||||||
if (cd) cd.style.background = '#3fb950';
|
if (cd) cd.style.background = '#3fb950';
|
||||||
if (cl) { cl.textContent = 'Qwen2.5-Coder'; cl.style.color = '#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'; }
|
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:')) {
|
if (msg.includes('[Coder]') && msg.includes('Syöte:')) {
|
||||||
// Pipeline piiloon kun generointi alkaa
|
// 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
|
// Laskentasolmun käynnistys/pysäytys -nappi
|
||||||
let computeAbortController = null;
|
let computeAbortController = null;
|
||||||
|
|||||||
Reference in New Issue
Block a user