{"id":"c1452","filename":"c1452_sesija_20260622.dok.json","weise3_id":"WEISE3::c1452_sesija_20260622::genesis::CC::FENIX2026","tip":"sesija_summary","naziv":"(bez naziva)","kreator":"genesis","datum":"2026-06-22","snippet":"","status":"SEALED","prev_weise3":"","bunker_l":"#00d4ff","full":{"weise3_id":"WEISE3::c1452_sesija_20260622::genesis::CC::FENIX2026","tip":"sesija_summary","sustav":"genesis","naslov":"Sesija 2026-06-22 — GMRP + X96 samoregistracija + sigurnosna analiza","verzija":"c1452","datum":"2026-06-22","status":"SEALED","sadrzaj":{"napravljeno":[{"id":"c1451","opis":"GMRP — Genesis Mesh Rendezvous Protocol implementiran i dokazan","detalji":["EU: POST /api/v1/borg/register + GET /api/v1/borg/rubni u services/borg_protokol.py","EU: nginx port 80 — GMRP endpointi proxirani (SSL broken na Android ARM Termux)","EU: sudac_middleware.py — /api/v1/borg/register i /api/v1/borg/rubni dodani u _JAVNI_TOCNO","X96: gmrp_prijavi() u x96_mini_genesis.py — POST pri startu + svakih 10 ciklusa (~5 min)","EU_REGISTER_URL = http://217.160.71.124/api/v1/borg/register (port 80, ne 8010)"]},{"id":"verifikacija_heartbeat","opis":"GMRP heartbeat izmjeren — ritam 5m 11-14s","detalji":["05:40:55 startup","05:46:06 +5m 11s","05:51:17 +5m 11s","05:56:29 +5m 12s","06:01:43 +5m 14s","EU /borg/rubni/ vraca _aktivan=true (granica 600s, X96 svaki ~310s)"]},{"id":"sigurnosna_analiza_x96","opis":"Sigurnosna pokrivenost X96 po našim standardima izmjerena","ima":["ZAKON 43 Krunica hash SHA3-256 + prev_hash","ZAKON 48 readback","ZAKON 17 pull-only (NAT-safe)"],"nema":["BunkerSeal/Ed25519/Folija — stdlib-only, OpenSSL broken na ARM"],"zakljucak":"Odgovara cilju: rubni čvor iza NAT-a, nema inbound — kompromis ne može zagaditi EU chain"}],"problemi_rijeseni":[{"problem":"SudacMiddleware blokira POST /api/v1/borg/register bez API ključa","uzrok":"_JAVNI_TOCNO nije sadrzavao GMRP endpointe — Sudac šalje u labirint (HTTP 200 + lažni dok)","fix":"Dodano u _JAVNI_TOCNO u services/sudac_middleware.py","dokaz":"curl POST → {\"ok\": true, \"agent_id\": \"x96mini_ap201809\"}"},{"problem":"Folija TAMPER alarm — sve POST zahtjeve šalje u labirint","uzrok":"Modifikacija sudac_middleware.py bez restarta — Folija drži stari baseline hash u memoriji","fix":"systemctl restart genesis — startup_seal() reračuna baseline od novog fajla","provjera":"redis-cli -n 4 hget genesis:folija:modul:sudac status → ok","lekcija":"Svaka izmjena kritičnog fajla (bunker_global.py lista) MORA biti pracena restartom"},{"problem":"SSH restart genesis prekida konekciju (Connection reset)","uzrok":"systemctl restart ubija SSH sesiju kad se u istoj sesiji pokrece","fix":"Pokrenuti restart u backgroundu (& na kraju) ili pričekati reconnect"}],"chain_prev":"c1451_gmrp_registracija_dokazana","zakoni":["ZAKON 17","ZAKON 43","ZAKON 48","ZAKON 49"],"rubni_cvorovi_poznati":{"x96mini_ap201809":{"ip":"172.24.93.180","port":8091,"tip":"medijapos_box","chain_height":2,"dok_count":1534,"disk_free_pct":58,"memory_free_mb":718,"heartbeat_interval_s":311}}},"prev_hash":"c1451_gmrp_registracija_dokazana","chain":"genesis"}}