tipsesija_odluke
sto_trebaDokumentirati arhitekturalne odluke i implementaciju sesije 2026-05-16
verzija1.0
statusDONE
zakon[
"ZAKON_17",
"ZAKON_26",
"ZAKON_38"
]
faze[
{
"naziv": "MAR aktivacija",
"status": "DONE",
"opis": "Marija server (212.227.181.201) potpuno integriran u Brsljani mesh",
"akcije": [
"Ollama 0.24.0 instaliran",
"llama3.1:8b (4.92 GB) i qwen2.5:7b (4.68 GB) pullani",
"genesis-borg-health.service pokrenut kao systemd",
"agent_id 3ae28b4ca5d72fcb dodijeljen",
"nginx port 80 /borg/ otvoren za ZAKON 17 PULL",
"api/ollama.py proxy endpoint napisan",
"MeshRouter azuriran: genesis-mar im
kapacitet_mreze_poslije{
"ollama_cvorovi": 2,
"ollama_cvorovi_lista": [
"genesis-primary-eu (EU)",
"genesis-mar (MAR)"
],
"ukupno_ollama_ram_gb": 34.5,
"modeli_dostupni": [
"llama3.1:8b",
"qwen2.5:7b"
],
"inference_kapacitet": "~6 paralelnih inference-a (3 EU + 3 MAR)",
"compute_cvorovi": 4,
"ukupno_cpu_jezgri": 38,
"ukupno_slobodan_ram_gb": 72.5
}
kapacitet_s_korisnickim_uredajima{
"napomena": "ZUTI KARTON — nedostajalo iz prethodnog odgovora",
"model": "Service Worker + WebAssembly + WebRTC = svaki korisnik je compute node",
"vozac_smartphone_avg": {
"cpu": "4c ARM",
"ram_mb": 512,
"doprinos": "hash/verify lokalno, offline-first"
},
"racunovodja_laptop_avg": {
"cpu": "8c x86",
"ram_mb": 2048,
"doprinos": "PDF render, OCR preview, lokalni cache"
},
"sustav_device_nodes": {
"100_korisnika": {
"ukupno_cpu": "800c",
"uku
revizija_kapaciteta_kompletna{
"serveri_izolirani": {
"istovremenih_korisnika_konzervativno": 5000,
"registriranih_korisnika_max": 170000,
"ollama_inference_paralelnih": 6,
"bottleneck": "AI/OCR zadaci — max 800 korisnika koji scan+AI simultano"
},
"sa_korisnickim_uredajima": {
"hash_verify_kapacitet": "NEOGRANICEN — uredaj radi lokalno",
"offline_kapacitet": "100% za citanje, 60% za unos (Brsljani lite)",
"registriranih_korisnika_max_s_PWA_offload": 500000,
"komentar": "PWA offload ska
odluke_koje_smo_odbili[
{
"odluka": "FenixFolija na AI kod (mesh_router, token_economy)",
"razlog_odbijanja": "Marginalni sigurnosni gain. Serveri su vec hardenirani. Real napadac ne editira Python fajlove rucno.",
"umjesto": "BunkerSeal na output — treba auditabilnost, ne jos jedan file watcher"
}
]
scenariji_koje_smo_predvidjeli[
{
"scenarij": "MAR Ollama zauzet (load > 3.0)",
"sto_se_dogada": "MeshRouter automatski ruta na EU Ollama — fallback u _najslobodniji()",
"status": "HANDLED"
},
{
"scenarij": "EU pada (primarni cvor down)",
"sto_se_dogada": "MeshRouter vidi degraded, MAR preuzima sve AI zadatke (19GB RAM, 12c CPU slobodno)",
"status": "HANDLED"
},
{
"scenarij": "Oba Ollama cvora zauzeta",
"sto_se_dogada": "route_ollama_async() fallback na lokalni 127.0.0.1:11434, loggi
sljedeci_koraci[
"Service Worker node implementacija (browser_cvorovi > 0)",
"ES server Brsljani patch (SSH pristup potreban)",
"GPU node za AI inference (RTX 4090 ili Hetzner GPU)",
"Startup model integrity check u genesis lifespan",
"MAR IONOS firewall — otvoriti port 80 za /borg/ pristup"
]
timestamp1778914108