Files
agentic-studio/TODO.md

4.3 KiB

Kipinä Agentic Network: TODO-lista

  • Tietoturva & yksityisyys: Lisää viesteihin tietoturvallinen kryptaus (E2E-salaus / Blind Orchestrator). Mitään selkokielistä ei ole hyvä lähettää vieraalle solmulle.
  • Reititysarkkitehtuuri: Hubin kohdennettu reititys. Broadcastin sijaan tehtävät ohjataan vain parhaalle vapana olevalle solmulle (Node Registry & Matchmaking) tehtävän tyypin ja resurssien perusteella.
  • P2P-jakelu: WebRTC Data Channels mallipainojen jakamiseen suoraan solmujen välillä kaistan ja latausaikojen säästämiseksi.
  • Tulosten varmentaminen: Proof of Compute / Konsensus-mekanismi, jossa sama tehtävä annetaan kahdelle solmulle, ja tila hyväksytään vasta kun ristiintarkastus täsmää.
  • Optimaalinen laitekiihdytys: Selainpuolen laajennus tulevaa WebNN-standardia (NPU API) varten WebGPU:n rinnalle.
  • Insentiivit: Gamifikaatio, pistetaulukko tai token-talous (esim. Kipinä Tokens), joka motivoi käyttäjiä tarjoamaan laitteensa laskentatehoa verkoston käyttöön pidemmäksi aikaa.
  • Pelimerkkien UI-synkkaus: Pelimerkkien saldon synkronointi reaaliajassa Hubista takaisin valikossa olevalle selainsolmulle ja luvun visuaalinen näyttäminen.
  • XSS-suojaus: HTML-escape kaikelle backend-datalle joka renderöidään DOM:iin (prompt, response, tokenisaatiotekstit).
  • System prompt -vuoto: Agents-pipelinen system prompt ei enää näy käyttäjälle vastauksissa.
  • Token-saldon data race: Korjattu atomiseksi operaatioksi.
  • UTF-8 slicing panic: Korjattu kaikki &text[..n]text.chars().take(n).
  • Tensor dim unwrap: Lisätty virheenkäsittely tyhjälle tensorille natiivisolmussa.
  • llm_error-viestien tuki: Lisätty hubiin ja frontendiin, streaming-kortti siivoutuu virhetilanteessa.
  • Malli-cache (selain): QwenModel pidetään muistissa thread_local! MODEL_CACHE:ssa, clear_kv_cache() promptien välillä.
  • Malli-cache (natiivi): LlmEngine pitää mallin muistissa, fresh_model() poistettu.
  • Sampling: Greedy argmax korvattu temperature + top-k + repetition penalty -samplingillä (sekä selain että natiivi).
  • Stop-sekvenssit: Generointi katkaistaan kun malli alkaa tuottaa selityksiä.
  • Codelab/Agents-reititys: llm_done ja llm_chunk reitittyy task_id:n perusteella oikeaan näkymään.
  • Broadcast Lag: RecvError::Lagged käsitellään gracefully sekä sender-taskissa että API-endpointissa — solmu ei enää tipu verkosta.
  • Busy-tila reititys: Hub seuraa solmujen busy-tilaa (node_busy). Tehtäviä ei enää reititetä varatuille solmuille.
  • Rate limiting: /api/v1/chat/completions rajoittaa max 10 pyyntöä/minuutti per IP.
  • Gamification-validointi: Kipinä-merkkejä jaetaan vain tehtävistä joiden task_id on hubin jakama (pending_task_ids).
  • Base64: Oma base64-dekooderi korvattu base64-cratella.
  • Atominen siivous: Solmun disconnect-siivouksessa kaikki lukot otetaan kerralla.
  • DOM-vuoto: Terminaalin trim ei enää poista aktiivista streaming-riviä.

Havaitut Bugaavat Ominaisuudet ja Arkkitehtuuriongelmat

Keskitaso (eivät estä käyttöä)

  • Origin-headerin validoinnin ohitus: Natiivisolmut eivät lähetä Origin-headeria, joten tarkistus ohitetaan. Hyökkääjä voi esiintyä natiivisolmuna. Korjaus: vaadi autentikaatio natiivisolmuilta (API-avain tai token).
  • Kovakoodattu oletussalasana: Admin-paneelin oletussalasana on "kipina" jos ADMIN_PASSWORD-ympäristömuuttujaa ei aseta. Tuotannossa pitää asettaa pakollisesti. Varoitus logitetaan.

Arkkitehtuuriparannukset (tulevaisuus)

  • E2E-salaus: Promptit ja vastaukset kulkevat selkokielisinä WebSocketin yli. Placeholder-kommentti koodissa, mutta ei toteutusta.
  • Proof of Work / konsensus: Solmu voi lähettää väärennettyjä tuloksia. Merkitty TODO:ksi, mutta ei toteutusta.
  • WebGPU-inferenssi Candle-mallille: Selainsolmu käyttää aina CPU:ta Candle-inferenssiin. Candle ei vielä tue WebGPU:ta.
  • Streaming yield -optimointi: Pitkillä generoinneilla (>128 tok) selaimen event loop voi jäätyä hetkeksi koska generointilooppi ajetaan synkronisessa closuressa. Korjaus: pilko generointilooppi eriin ja yield joka N:s token.