Ollama-palvelu puuttui client-composesta — native-node yritti yhdistää
ollamaan jota ei ollut. Nyt jokaisessa profiilissa on oma Ollama
(nvidia: latest+GPU, amd: rocm+/dev/kfd, cpu: latest) network alias
'ollama' jotta native-node löytää sen.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Staattinen tekstitokenisointiesimerkki korvattu kuvalla joka
näyttää värikoodatut tokenit EN/FI-vertailussa
- Markdown-renderöijään lisätty  kuvatuki
- Kuva: static/images/tokenization-example.png
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Lisätty #[wasm_bindgen] tokenize_js(text) → JSON-funktio joka lataa
tokenizerin IndexedDB:stä tai HuggingFacesta tarvittaessa.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
HUB_URL vaihdettu ws://agentic-poc:3000/ws → wss://kipina.studio/ws
jotta lokaali GPU-solmu palvelee tuotantoympäristöä.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Tabit olivat piilotettu display:none-tyylillä, mikä rikkoi myös
hash-navigoinnin (#codelab, #network).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Lisätty nappi jolla org-chartin voi vaihtaa vaaka- ja pystyasennon välillä.
Vaaka on oletuksena (kompakti), pysty lisää vertical-CSS-luokan.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Ongelma: kaksi erillistä avatar-aktivointilogiikkaa kilpaili:
1) pipelineStep() — oikea agentti statuksen perusteella
2) llm_prompt-handler — arvasi agentin prompt-tekstistä (usein väärin → DevOps vilkkui QA:n/Datan sijaan)
Korjaus:
- Poistettu llm_prompt- ja llm_done-handlerien avatar-heuristiikat
- pipelineStep() hoitaa kaiken: active → syttyy, done → sammuu heti
- Pipeline-lopussa kaikki avataret sammutetaan eksplisiittisesti
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
pipelineStep() aktivoi nyt oikean agentin avatarin (sekä card että gallery-head)
kun status on 'active', ja poistaa 'done'-statuksella sekunnin viiveellä.
Poistettu llm_done-handlerin turha manageri-aktivointi joka vilkutti aina manageria.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Ollaman system prompt: 'Use proper newlines and indentation'.
Staattinen analyysi: havaitsee jos .py-tiedosto on yhdellä rivillä.
Native node vaatii rebuildin.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sama bugi kuin aiemmin: template-literalin </script> sulkee
ulomman script-tagin. Pilkottu: '<'+'/script>'.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Template-stringin sisällä oleva </script> sulki ulomman script-tagin.
Pilkottu string-konkatenoimalla: '</'+' script>'.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
from db import get_db → tarkistaa onko get_db määritelty db.py:ssä
(def, class tai muuttuja). Löytää puuttuvat exportit ennen Docker-buildia.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Staattinen analyysi: tarkistaa 15 yleistä symbolia (Boolean, Text,
Depends, HTTPException jne.) puuttuvista importeista.
Models-esimerkki: lisätty Boolean ja Text importteihin.
docker-compose.yml: template ilman LLM:ää — ei enää version tai
turhaa PostgreSQL-containeria SQLite-projektissa.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
declarative_base() on poistettu SQLAlchemy 2.0:sta.
Päivitetty molemmat esimerkit käyttämään class Base(DeclarativeBase).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Poistettu fixedDockerfile-viittaus joka kaatoi pipelinen ennen
renderProjectCard:ia → ZIP ei generoitunut.
Pipeline-vaiheet käyttävät nyt flex-wrap:ia eikä overflow-x:ää.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
QA-validoinnin korjausvaihe antoi LLM:n generoida uuden Dockerfilen
joka sekoitti pip:n ja uv:n. Nyt korjaus kohdistuu vain .py ja
pyproject.toml -tiedostoihin. Dockerfile pysyy templatena.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Malli laittoi sqlite3:n dependencies-listaan → uv sync epäonnistui.
Koodarin, QA:n ja validoinnin prompteihin lisätty selkeä kielto.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
/api/v1/hardware tarkistaa nyt myös Ollaman tilan fallbackina.
kpn models näyttää ladattujen mallien määrän ja ✓ oikein.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Frontend ei tiedä onko malli oikeasti ladattu Ollamaan.
Nyt näytetään 'valittu — natiivisolmu lataa mallin' ja
varoitus ensimmäisen pyynnön hitaudesta.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Lisätty GET /api/v1/ollama/tags proxy-endpoint hubiin.
Poistettu suorat http://hostname:11434 -kutsut frontendistä.
Hub välittää Ollama-kutsut sisäisessä Docker-verkossa.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Normaali klikkaus valitsee yhden agentin (poistaa muut valinnat).
Shift+klikkaus lisää/poistaa agentin valinnasta yhteistä promptia varten.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Simulaatio-välilehdet piilotettu display:none:lla (koodi säilytetty).
Agents & CLI on nyt oletusvälilehti.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Jokaisella agentilla on nyt oletusprompt joka näkyy heti modalissa
- Muokatut promptit tallentuvat localStorageen
- Pipeline-vaiherivin (✓ Suunnittelu → ✓ models.py → ...) klikkaus
avaa modalin jossa näkyy kyseisen vaiheen prompti + tulos
- 📋 Näytä prompti -nappi näkyy aina kun agentti on valittu
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Klikkaa agenttia → 'Näytä viimeisin prompti' → modal-ikkuna jossa
prompti on pilkottu rakenteellisiin kenttiin (Project, CONSTRAINTS,
EXAMPLE jne.). Editoitavat kentät sinisellä ✏️, lukitut harmaalla 🔒.
'Aja uudelleen' kokoaa promptin kentistä ja ajaa sen.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Aiemmin QA vastasi vain 'OK'. Nyt prompti vaatii raportin jokaisesta
6 tarkistuksesta (Dockerfile, deps, ports, README, testit, pyproject)
esimerkkivastauksen kanssa.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
break ei ole sallittu if/else-lohkossa. Kääritty avatar-aktivointi
if(data.task_id) -ehtoon.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Pienet mallit tuottavat huomattavasti parempaa koodia kun promptissa
on konkreettinen esimerkki oikeasta vastauksesta. Lisätty:
- Manageri: esimerkki tiedostolistasta
- Koodari: esimerkki main.py ja models.py -tiedostoista
- QA: esimerkki pytest + TestClient -testeistä
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>