4.3 KiB
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):
LlmEnginepitää 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_donejallm_chunkreitittyytask_id:n perusteella oikeaan näkymään. - Broadcast Lag:
RecvError::Laggedkä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/completionsrajoittaa max 10 pyyntöä/minuutti per IP. - Gamification-validointi: Kipinä-merkkejä jaetaan vain tehtävistä joiden
task_idon 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"josADMIN_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.