kpnRun lähettää suoraan hubille, Wasm-fallback vain 503:lla

Ei enää odoteta Wasm-latausta ennen API-kutsua. Jos natiivisolmu
on hubissa, vastaus tulee suoraan. Jos hub palauttaa 503 (ei solmua),
käynnistetään Wasm-fallback ja yritetään uudelleen.

Tämä korjaa tilanteen jossa native-node on jo käynnissä mutta
selain yritti silti ladata Wasmia ensin.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jaakko Vanhala
2026-04-09 21:09:26 +03:00
parent 3497f66db7
commit 28f620f901

View File

@@ -207,17 +207,9 @@ import AgentBar from "../components/AgentBar.astro";
termPanel.scrollTop = termPanel.scrollHeight;
try {
// Varmistetaan solmu
if (!wasmNodeStarted) {
statusDiv.innerHTML = ' <span style="color:#d29922">→ Käynnistetään laskentasolmua...</span>';
await ensureNode();
// Odotetaan kunnes malli on latautunut tai 60s
for (let i = 0; i < 120 && !llmReady; i++) await new Promise(r => setTimeout(r, 500));
if (!llmReady) {
statusDiv.innerHTML = ' <span style="color:#f85149">✗ Mallin lataus aikakatkaistiin</span>';
return null;
}
}
// Ei odotetaan Wasmia — lähetetään suoraan hubille.
// Jos hub löytää natiivisolmun, vastaus tulee nopeasti.
// Jos 503, käynnistetään Wasm-fallback.
if (!silent) {
const streamDiv = document.createElement('div');
@@ -236,6 +228,15 @@ import AgentBar from "../components/AgentBar.astro";
body: JSON.stringify({ model, prompt, task_id: taskId }),
});
if (res.status === 503 && !wasmNodeStarted) {
// Ei natiivisolmua — käynnistetään Wasm-fallback
statusDiv.innerHTML = ' <span style="color:#d29922">→ Ei natiivisolmua — käynnistetään selainlaskenta...</span>';
await ensureNode();
for (let i = 0; i < 120 && !llmReady; i++) await new Promise(r => setTimeout(r, 500));
if (!llmReady) { statusDiv.innerHTML = ' <span style="color:#f85149">✗ Mallin lataus aikakatkaistiin</span>'; return null; }
// Yritetään uudelleen
return kpnRun(model, prompt, silent);
}
if (!res.ok) {
const err = await res.text().catch(() => res.statusText);
statusDiv.innerHTML = ` <span style="color:#f85149">✗ ${esc(err)}</span>`;