tipSESIJA_LOG
chain_refc0875 (master sesija log za DIO 1-3), c0881 (EU+MAR fix), c0882 (NEW+DE fix)
kontekstNastavak sesije 2026-05-16. Identificiran i riješen sistemski bug u gossip protokolu Bršljan mreže: peer tablica imala 21 unos umjesto 4 zbog nedostajuće deduplikacije po base_url. Fix primijenjen na sve aktivne genesis čvorove: EU, NEW, DE, MAR, ES. HEL preskočen (gasi se 2026-05-20).
problem_i_uzrok{
"simptom": "Svaki čvor imao 21 peer (11x v4.limit-connect.com browser widgeti, 2x pwa://, HTTP duplikati, stale IP-based čvorovi)",
"uzroci": [
"BUG-1 (KRITIČAN): dodaj_peer keyirao isključivo po agent_id — browser widget svaki put dobija novi agent_id → 11 unosa za isti URL",
"BUG-2 (VISOK): pwa:// browser-only čvorovi upisivani u P2P gossip tablicu (nisu HTTP genesis čvorovi)",
"BUG-3 (VISOK): BOOTSTRAP_CVOROVI sadržavao https://v4.limit-connect.com i https://limit-connect.co
fix_3_sloja{
"SLOJ_1": {
"naziv": "dodaj_peer dedup po base_url",
"sto": "Ako peer s istim base_url postoji (ali različit agent_id) → ažuriraj postojeći, ne dodaj novi",
"fajl": "services/brsljani.py",
"skripta": "/tmp/fix_brsljani_dedup.py"
},
"SLOJ_2": {
"naziv": "pwa:// i HTTP→HTTPS filteri",
"sto": "pwa:// odbijen odmah; HTTP peer odbijen ako HTTPS verzija već postoji u _peers",
"fajl": "services/brsljani.py",
"skripta": "/tmp/add_http_filter.py"
},
"SLOJ_3_boo
primijenjeno_na_cvorovima{
"EU": {
"ip": "217.160.71.124",
"commits": [
"59b61b6",
"6cebd0f",
"5bc9a03",
"f1e2933"
],
"peers_prije": 21,
"peers_poslije": 4,
"metoda": "git commit (kanonski repozitorij)"
},
"NEW": {
"ip": "31.70.90.84",
"peers_prije": 21,
"peers_poslije": 4,
"metoda": "direktno na filesystem (nema git na čvoru)"
},
"DE": {
"ip": "31.70.82.227",
"peers_prije": 21,
"peers_poslije": 4,
"metoda": "direktno na filesystem
finalno_stanje_mreze{
"EU": {
"peers": 4,
"ok": true
},
"NEW": {
"peers": 4,
"ok": true
},
"DE": {
"peers": 4,
"ok": true
},
"MAR": {
"peers": 4,
"ok": true
},
"ES": {
"peers": 4,
"ok": true
},
"legitimni_peeri_svi_cvorovi": [
"https://grosmarkt-online.eu/brsljani",
"https://fina-connect.online",
"https://genesis.limit-connect.com",
"https://sati.ink"
]
}
memorija_spasena[
"memory/project_brsljani_dedup_2026_05_16.md — fix log + arhitekturalna lekcija",
"memory/project_brsljani_ideje_2026_05_16.md — 6 ideja za gossip protokol",
"memory/reference_server_architecture.md — azuriran s brsljani peer status + ES pristup potvrđen"
]
istaknute_ideje[
"IDEJA-1: BORG Health Map na no-limit.world — živa karta mreže, wow 10/10",
"IDEJA-2: PWA peers → zasebni _browser_peers registar",
"IDEJA-3: Auto-healing Celery Beat task (svakih 6h)",
"IDEJA-4: Peer reputacija score (rolling 7d, auto-uklanjanje ispod 0.3)",
"IDEJA-5: Gossip protocol versioning"
]
arhitekturalna_lekcijaGossip protokoli MORAJU imati 3 sloja čišćenja: (1) pri primitku — dodaj_peer(), (2) pri loadu s diska — _ucitaj_persistirane_peere(), (3) periodički — Beat task. Direktni dict assignment u load funkciji zaobilazi sve filtere i perpetuira smeće kroz restartove zauvijek.
chain_entries_sesije_DIO_4_5[
"c0881 — EU+MAR brsljani dedup fix (3 sloja)",
"c0882 — NEW+DE brsljani dedup + ideje + memorija",
"c0883 — master log DIO 4+5 + ES fix (ovaj)"
]
open_threads[
"ES: genesis_master ključ radi — ažurirati CLAUDE.md (stajalo 'nema ključa s EU servera')",
"BORG Health Map (IDEJA-1) — implementirati na no-limit.world",
"PWA peers zasebni registar (IDEJA-2)",
"Auto-healing Beat task (IDEJA-3)",
"MAR: /borg/health.json → 404 — ZAKON 17 compliance gap (stari open thread)"
]
zakoni[
"ZAKON 17 — BORG pull-only, peer tablica čista na svim čvorovima — SADA ISPUNJENO (5/5)",
"ZAKON 32 — svaki fix ima chain entry"
]