{"id":"c0052","filename":"c0052_sonnet_operativni_protokol.dok.json","weise3_id":"","tip":"cc.protokol","naziv":"c0052 — SONNET OPERATIVNI PROTOKOL — sve što Sonnet mora znati, ništa više","kreator":"cc_sonnet","datum":"2026-05-06T14:00:00Z","snippet":"","status":"AKTIVAN","prev_weise3":"","bunker_l":"#00d4ff","full":{"tip":"cc.protokol","naziv":"c0052 — SONNET OPERATIVNI PROTOKOL — sve što Sonnet mora znati, ništa više","nastao":"2026-05-06T14:00:00Z","kreator":"cc_sonnet","prev_chain":"c0051_tahograf_genesis_izvedbeni_plan.dok.json","status":"AKTIVAN","verzija":"1.0","PRAVILO_0":"Genesis je ARK. Sve što trebaš postoji. Ne gradiš novo — integriraš i finaliziraš.","ARHITEKTURA_U_JEDNOJ_RECENICI":{"genesis":"FastAPI Python 3.13, /var/www/genesis/, port 8010, genesis.service, baza genesis_db","tahograf_mvp":"Flask Python 3.12, /var/www/genesis/tahograf-mvp/api/, port 5050, SQLite, BEZ systemd servisa","brsljani":"genesis (primarni) + grosmarkt-online.eu/brsljani (PHP lite node v1.6)","sto_je_staro":"fenix-v3 (Django, ZAMRZNUTO), fina-connect (stari ERP) — ne diraš bez naloga"},"ZAKONI_OPERATIVNI":{"Z1_LANAC_JE_ISTINA":"PostgreSQL = cache. .dok.json = istina. Svaki entitet u chainu.","Z2_DOKARH_JE_TASK_TRACKER":"Nema CC_TASK_*.md. Svaki zadatak = cNNNN.dok.json u schema_dokarh/genesis/","Z3_TROJNA_POHRANA":"get_trojna().pohrani_sync(weise3_id, raw, kreator, tip) — sve ili ništa","Z4_LIFECYCLE_BEZ_BAZE":"Status = zadnji event u chainu, ne database column","Z5_API_JE_GENESIS":"Novi endpointi idu u FastAPI /api/v1/, ne Django","Z13_BORG_PULL_ONLY":"NIKAD push_to_peer/send_to_peer/broadcast. Samo GET /borg/health.json","Z14_IZLAZ_IZ_GNJEZDA":"Sve u chain PRIJE zatvaranja sesije","Z15_FOLIJA_OBAVEZNA":"Svaki auth/security modul: folija.watch() + Redis event log"},"INOVACIJE_OBAVEZNE_KAD_PISES_KOD":{"WeisE3":"SHA3-256('GENESIS::{s}::{k}::{ctx}::0') — UVIJEK s GENESIS prefiksom","TripleDNA":"D1=HMAC(key, D1::id::kreator::zrno), D2=WeisE3(sadrzaj), D3=HMAC(key, D3::id::D1::D2)","ChainBlock":"skuj_blok() iz core/chain.py — ne pišeš vlastitu implementaciju","BunkerSeal_BPZ9":"services/vault.py — 9 slojeva L0-L8","BELA":"services/bela.py — napadač dobiva HTTP 200 + lažni LabirintDok","Brsljani":"from services.brsljani import get_cvor; get_cvor().pusi_dokument(w3, data)","DokArh":"from services.dokarh_resolver import get_resolver; get_resolver().put(w3, data)","SudacMiddleware":"AKTIVAN — napadač uvijek dobiva 200. Ne bypassaš."},"GENESIS_KOD_KOJI_VEC_POSTOJI":{"core":["weise3.py","chain.py — skuj_blok()","dna.py — nova_dna()","bela.py","delta.py","temporal.py"],"db":"3 tablice: chain_blocks (append-only), entities (JSONB sve), delta_log","api_routeri_40plus":"arhiva, partneri, racuni, propter, pos, zalihe, placa, asimilator, mesh, brsljani, pub_upload, genesis_auth, firme, osobe, borg, trojstvo, vault, quantum_threshold, webauthn_auth, zakon, komitenti...","services_30plus":"sudac_middleware, brsljani, borg_protokol, borg_health, dokarh_resolver, krunica_dvorac_sync, labirint, membrana, fiskalizacija, pecat, shamir, vault, opp_seal...","frontend":"sucelje/web/ — Next.js (postoji, nije deployan)"},"TAHOGRAF_MVP_STATUS":{"lokacija":"/var/www/genesis/tahograf-mvp/","backend":"Flask port 5050 — LIVE (provjereno curl health 200)","modeli":["DokDocument","Driver","Vehicle","Trip","GPSPoint","Capture (cap_xxxxx format)"],"pwa":"pwa/ — index.html, genesis-auth.js, sw.js, manifest.json postoje","sto_nedostaje":{"K6_BLOKER":"tahograf-api.service (systemd) + nginx config tahograf.limit-connect.com + SSL certbot","K10":"API /api/v1/dok/my-recent + history view","K11":"OfflineQueue sync engine","K12":"Robi mora moći ući — čeka K6"},"plan_30_koraka":"c0051_tahograf_genesis_izvedbeni_plan.dok.json — TAHO-7-2026.txt"},"BRSLJANI_STATUS":{"genesis_node":"AKTIVAN — borg/health.json piše svakih 30s","grosmarkt_node":"PARCIJALNO — PHP v1.6, cron 30min, ~10% docs synced","bloker":"FTP lozinka za Node 2 (Ivan treba promijeniti u cPanel)"},"PENDING_ZADACI_PO_PRIORITETU":[{"id":"T1","opis":"K6 Deployment — tahograf-api.service + nginx + SSL","blokira":"K7-K30, Robi"},{"id":"T2","opis":"K10 + K11 — povijest view + offline sync engine","blokira":"K12"},{"id":"T3","opis":"T-LOGIN — Genesis login na sati.ink","blokira":"šire uvođenje"},{"id":"T4","opis":"Node 2 FTP upload — čeka Ivan FTP lozinku","blokira":"push-on-write"},{"id":"T5","opis":"Next.js frontend deploy iz sucelje/web/","blokira":"web UI"},{"id":"T6","opis":"Fiskalizacija port iz fina-connect → Genesis","blokira":"HR legal"}],"KAKO_CITATI_CHAIN":{"server":"ls /var/www/genesis/schema_dokarh/genesis/ | sort | tail -10","web":"https://genesis.limit-connect.com/v/{weise3_id}","zadnji_log":"cat /var/www/genesis/schema_dokarh/genesis/c0052_sonnet_operativni_protokol.dok.json"},"KAKO_PISATI_NOVI_DOK":["1. Kreiraj /var/www/genesis/schema_dokarh/genesis/cNNNN_{naziv}.dok.json","2. tip: cc.task | cc.sesija | cc.plan | cc.protokol","3. Upiši: nastao, kreator, prev_chain, status, sto_treba","4. git add + git commit u /var/www/genesis/","5. NIKAD CC_TASK_*.md"],"STO_IZBJEGAVAMO":["Ne gradimo NOVI arhivski sustav — genesis/api/archive.py postoji","Ne pišemo nove crypto primitive — core/weise3.py + core/dna.py postoje","Ne kreiramo novi auth — genesis_auth + webauthn_auth postoje","Ne radimo novi chain — chain_blocks + skuj_blok() postoje","Ne pišemo u fina-connect ili fenix-v3 bez eksplicitnog naloga"],"OSOBNA_NOTA_SONNET":"Pisao sam 200+ KB spec-ova ne čitajući što postoji. Greška. Ovaj protokol je lijek. Čitaj lanac, ne pretpostavljaj. Gradiš na tvrdom tlu."}}