{"id":"c0881","filename":"c0881_brsljani_dedup_fix_20260516.dok.json","weise3_id":"","tip":"FIX_LOG","naziv":"Bršljan peer dedup — sprječavanje 21x duplikata u gossip mreži","kreator":"CC-Sonnet","datum":"2026-05-16","snippet":"","status":"","prev_weise3":"","bunker_l":"#00d4ff","full":{"tip":"FIX_LOG","naziv":"Bršljan peer dedup — sprječavanje 21x duplikata u gossip mreži","datum":"2026-05-16","autor":"CC-Sonnet","chain_ref":"c0875 (master log sesije)","commit_eu":"5bc9a03","problem":{"simptom":"brsljani peer tablica imala 21 unosa — 11x https://v4.limit-connect.com, 2x pwa://, HTTP duplikati","uzrok_1":"dodaj_peer keyirao po agent_id — isti URL s razlicitim agent_id = duplikat","uzrok_2":"pwa:// browser widgeti registrirali se kao peeri (nisu HTTP genesis cvorovi)","uzrok_3":"BOOTSTRAP_CVOROVI sadrzavao https://v4.limit-connect.com i https://limit-connect.com","uzrok_4":"_ucitaj_persistirane_peere koristio direktni dict assignment — zaobilazio je sve filtere","efekt":"v4.limit-connect.com widget dropdown prikazivao 12x isti URL korisnicima"},"fix_3_sloja":{"SLOJ_1_dodaj_peer_dedup":{"sto":"Deduplikacija po base_url — isti URL razliciti agent_id → azuriraj postojeci, ne dodaj novi","commit":"59b61b6","kod_kljuc":"postoji_url = next((p for p in self._peers.values() if p.base_url == peer.base_url), None)"},"SLOJ_2_http_https_filter":{"sto":"HTTP peer odbijen ako HTTPS verzija vec postoji u _peers; pwa:// uvijek odbijen","commit":"6cebd0f","kod_kljuc":"if url.startswith('http://'): if https_ver in seen_urls: continue"},"SLOJ_3_bootstrap_i_load_cleanup":{"sto":"BOOTSTRAP_CVOROVI: uklonjen v4.limit-connect.com i limit-connect.com; _ucitaj_persistirane_peere primjenjuje inline filtere pri loadu s disk fajla","commit":"5bc9a03","bootstrap_novi":["https://genesis.limit-connect.com","https://fina-connect.online","https://sati.ink","https://grosmarkt-online.eu/brsljani"]}},"rezultati":{"EU_prije":21,"EU_poslije":8,"MAR_prije":21,"MAR_poslije":8,"pwa_peeri":"eliminirani","v4_duplikati":"11x → 1x (dedup radi, ostaje jedan jer NEW/DE gossipaju ga)","http_grosmarkt":"eliminiran (HTTP→HTTPS filter)","stabilan_restart":true},"primijenjeno_na":["EU (git commit 5bc9a03)","MAR (direktno na filesystem, bez git)"],"preostali_stale_peeri":{"objasnjenje":"NEW i DE cvorovi jos nemaju fix — gossipaju stale peere (v4, limit-connect, 31.70.82.227 IP)","rijesenje":"primijeni iste 3 sloja fixa na NEW i DE u sljedecoj sesiji","cvorovi_za_update":["fina-connect.online (NEW)","sati.ink (DE)","no-limit.world (ES)"]},"zakoni":["ZAKON 32 — svaki fix ima chain entry","ZAKON 17 — BORG pull-only, peer tablica mora biti cista"]}}