{"id":"c1222","filename":"c1222_dug2_krunica_hash_unifikacija.dok.json","weise3_id":"","tip":"FIX","naziv":"DUG2 — krunica_hash unifikacija (7 formata → 1 kanonski)","kreator":"Ivan Seki + CC","datum":"2026-06-01","snippet":"","status":"","prev_weise3":"","bunker_l":"#00d4ff","full":{"tip":"FIX","naziv":"DUG2 — krunica_hash unifikacija (7 formata → 1 kanonski)","redni":"c1222","datum":"2026-06-01","autor":"Ivan Seki + CC","prioritet":"TEMELJ — bez ovoga svaka nova značajka može hashirati u krivom formatu","problem":{"opis":"7 nekompatibilnih implementacija krunica_hash pod istim imenom","formati":[{"lokacija":"dokarh9d_quantum.py + 9d_dokarh_v3_arhiva_quantum.py","algoritam":"SHA256(json_atom)","prefiks":"nema"},{"lokacija":"eho_api.py","algoritam":"SHA3-256","prefiks":"KRUNICA::{hash}::EHO::FENIX2026"},{"lokacija":"llama_shadow.py","algoritam":"NIJEDAN — bio f-string, nije hashiran!","prefiks":"KRUNICA::{wid}::FENIX2026"},{"lokacija":"fenix_dsa.py","algoritam":"SHA3-256","prefiks":"KRUNICA::FENIXA-DSA::{wid}::{hash}::{ts}"},{"lokacija":"threshold_potpis.py","algoritam":"SHA3-256","prefiks":"KRUNICA::THRESHOLD::{potpis}::{wid}::{ts}"},{"lokacija":"9d_chat_globalni.py","algoritam":"SHA256","prefiks":"WEISE3::{wid}::{hash}::CHAT::{ts}::FENIX2026 (krivi prefiks!)"},{"lokacija":"tmp_qr_holo.py + kanal.py","algoritam":"SHA3-256 omotan u string","prefiks":"KRUNICA::SHA3[:32]::FENIX2026"},{"lokacija":"dok_korpus.py","algoritam":"dual_pi_hash (EHO4 specifičan)","prefiks":"nema"}]},"rjesenje":{"novi_fajl":"services/krunica_hash.py","kanon":"SHA3-256( KH1::KRUNICA::{kontekst}::{sadrzaj}::{wid16}::{ts_int}::FENIX2026 )","verzija":"KH1","konteksti":["ATOM","EHO","CHAT","DSA","THRESHOLD","KANAL","LLAMA","KORPUS"],"backward_compat":"krunica_hash_atom_verify() prihvaca i stari SHA256 format za postojece atome","funkcije":["krunica_hash(kontekst, sadrzaj, *, wid, ts)","krunica_hash_atom(atom)","krunica_hash_atom_verify(atom, stored)","krunica_hash_header(wid)"]},"mobilni_fix":{"greska":"Nevažeći weise3_id format — mobile redirect nije slao weise3_id","uzrok":"index.html redirect URL imao samo genesis_token, bez weise3_id","fix_index_html":"3 mjesta: notifyLogin redirect, onLoginSuccess redirect, BroadcastChannel redirect","fix_router_py":"Fallback validacija: weise3_id neobavezan ako token validan (genesis vrati wid kad je dostupan)","fix_login_v4":"Boot handler cita i display_name iz URL params (dn param)"},"testovi":[{"opis":"Konzistentnost: isti input = isti output","ok":true},{"opis":"Izolacija: razliciti konteksti = razliciti hashevi","ok":true},{"opis":"Backward compat: stari SHA256 atom hash verificiran","ok":true},{"opis":"dok_korpus import OK","ok":true},{"opis":"fenix_dsa import OK","ok":true},{"opis":"threshold_potpis import OK","ok":true},{"opis":"genesis servis aktivan nakon restarta","ok":true},{"opis":"limit-connect.com/genesis-login HTTP 200","ok":true}],"sljedeci":"SPORE-1 (destilacija na serveru) — temelj je sad cist"}}