Korjattu laskenta: poistettu warmup (aiheutti busy-konfliktin) + parempi solmun odotus

Ongelma: warmup-prompt käynnisti inferenssin heti yhdistymisen jälkeen,
jolloin oikea kpnRun-prompt tuli solmulle kun se oli vielä busy.
Solmu lähetti llm_error mutta UI:ssa ei ollut käsittelijää → ikuinen odotus.

Korjaukset:
1. Poistettu warmup ensureCoderNode:sta — ei tarvita koska kpnRun
   käynnistää solmun automaattisesti
2. kpnRun odottaa coderWsReady-lippua max 15s (pollaus 500ms välein)
   kiinteän 1s viiveen sijaan
3. Selkeä virheilmoitus jos solmu ei käynnisty

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jaakko Vanhala
2026-04-09 19:37:28 +03:00
parent 6031737f83
commit 9925079729

View File

@@ -1522,8 +1522,14 @@ IMPORTANT: Include get_db() dependency for FastAPI` },
if (!coderWsReady && typeof ensureCoderNode === 'function') {
statusDiv.innerHTML = ` <span style="color:#d29922">→ Käynnistetään laskentasolmua...</span>`;
await ensureCoderNode();
// Odotetaan hetki jotta solmu ehtii rekisteröityä hubiin
await new Promise(r => setTimeout(r, 1000));
// Odotetaan kunnes solmu on varmasti rekisteröitynyt hubiin
for (let i = 0; i < 30 && !coderWsReady; i++) {
await new Promise(r => setTimeout(r, 500));
}
if (!coderWsReady) {
statusDiv.innerHTML = ` <span style="color:#f85149">✗ Laskentasolmun käynnistys epäonnistui</span>`;
return null;
}
statusDiv.innerHTML = ` <span style="color:#8b949e">→ <span style="color:#58a6ff">${model}</span> käsittelee...</span>`;
}
@@ -3733,15 +3739,6 @@ ${filesHtml}
// Odotetaan kunnes Worker on yhdistänyt hubiin
await workerStarted;
// Warmup — nyt WS on varmasti auki
if (uiSocket && uiSocket.readyState === 1) {
uiSocket.send(JSON.stringify({
type: 'user_text',
text: '{"prompt":"warmup","max_tokens":1}',
task_type: 'qwen-coder'
}));
}
if (pendingCodePrompt) {
setTimeout(() => {
sendCodeToHub(pendingCodePrompt);