Genesis · RAČVA-013 · chain c2041 / c2044 · 2026-07-25/26

Arhiva svih arhiva: ocjena 7,1/10 — i puž koji je mjesecima skrivao da EU nije backupiran

Retest nakon VAL A–F, mjeren izvršenim tokom na živom sustavu. Usput nađen i popravljen P0 koji nije bio na nijednoj listi.

7,1 /10  ·  prije: 5,75 10 kategorija · sve mjereno, ništa čitano

1Kako je mjereno

Ništa nije preuzeto iz prethodnog izvještaja — on je snimljen prije nego što su VAL A–F ušli u kod. Sve je premjereno na živom EU čvoru:

2Scorecard

KategorijaPrijeSadaΔ
Sigurnost6,58,5+2,0
Arhitektura7,58,0+0,5
Kvaliteta koda7,07,5+0,5
Kanon-usklađenost7,07,5+0,5
GDPR4,07,0+3,0
AI pipeline6,07,0+1,0
Testovi1,06,5+5,5
UI/UX6,56,50
Podatkovni model7,06,5−0,5
Pogon5,06,0+1,0
Prosjek5,757,1+1,35

Dokazano popravljeno — izmjereno, ne tvrđeno

TvrdnjaŽivi dokaz
Europski parser brojeva1.000,00 / 250,00 / 1.250,00 → net=1000.0 pdv=250.0 gross=1250.0
Cross-tenant glas BTuđa firma na nov zapis: detalj 404, original 404, obje rute spaljivanja 404, lista 0
PII u mirovanjuSQL: ocr_text=ENKRIPTIRANO, ai_summary=ENKRIPTIRANO, ključ 600 izvan baze
Rok čuvanja (Z28)Nov dokument → retain_until=2037-07-25 (11 g.) automatski
Kanonski byte-pečat (Z54)/pecat-provjera → stanje=OK, sadrzaj_ok=true — offline sha3 nad stvarnim bajtovima
Deterministička validacija"net+pdv=gross OK (1000.00+250.00=1250.00)", pouzdanost 0,6 izvedena
Pošten AI failover (Z53)Anthropic kvota mrtva → Groq shadow OK; vizualni AI pao → vizualno=False, nije lažirao uspjeh

3Puž: EU nije imao backup, a izgledalo je da ima

P0 Sudar hostnameova

EU i NEW imaju isti hostname: ubuntu. Skripta genesis_local_backup.sh (živa na NEW i MAR) imenuje dump po $(hostname) i rsynca ga na EU. Zato je na EU stajao svjež genesis_ubuntu_*.sql.gz koji izgleda točno kao EU-ov backup — a to je NEW-ova baza, koja arhiva-tablicu nema uopće. EU nije imao backup skriptu uopće.

Sudar imena = savršena kamuflaža. Svaka provjera „je li EU backupiran?" vraćala je DA. Zakon 53 (izgled nije dokaz) povrh Zakona 48 (Schrödingerov backup: signal na razini mehanizma, ne cilja). Ista klasa peti put.

Izloženost: EU je jedini čvor sa stvarnim dokumentima (5 redaka, 59 stupaca; MAR/DE: 0 redaka, 49). Gubio se cijeli Sloj-2 metasloj — tenant, faza, pečat, JIR/ZKI, rok čuvanja, validacija: tko čemu smije pristupiti i što je zapečaćeno. Sloj-1 bajtovi su bili sigurni (dokarh rsync EU→ES/NEW, 1,2 G = 1,2 G).

dokazano Popravljeno — i dokazano restoreom, ne izlazom naredbe

dump OK:   genesis_eu_20260725_2137.sql.gz  17 619 744 B   (lažni NEW-ov: 1 584 522 B)
rsync OK -> NEW (31.70.90.84)
rsync OK -> MAR (212.227.181.201)
VERIFY OK: entities=169  chain_blocks=728  arhiva_core=5  (= živo stanje)
health:    {"node":"eu","stanje":"ok","arhiva_core":5,"udaljene_kopije":2}

Trostruka pohrana provjerena na odredištu, ne po izlazu rsynca: MD5 108ed296c0b62933831665f80992e5a7 identičan na EU + NEW + MAR.

Tri namjerne razlike od NEW/MAR izdanja: NODE="eu" eksplicitno (ubija sudar imena i sprječava da EU-ova retencija briše NEW-ove backupe iz dijeljenog direktorija) · samoverifikacija broji i arhiva_core_dokumenti (Zakon 48 §2 — signal na razini cilja) · odredišta NEW + MAR = tri neovisne domene (Zakon 49).

dokazano oba smjera Detektor protiv stvarnog kvara (Z53 §3)

Izazvani kvarIshod
zdravo stanjetišina, exit 0
health ne postojiALARM „nikad nije potvrdio ishod (NEPOZNATO, ne 0)"
health node="ubuntu"ALARM „točno ovaj sudar imena je i bio puž"
health pokazuje na pravi NEW dump bez arhiveALARM — čita sadržaj gzipa, ne ime datoteke
backup star 20 h (stvarno pomaknut mtime, prag 8 h)ALARM „cron stao?"

Detekcijska logika u testu bajt-identična produkcijskoj; zamijenjen je samo ponor alarma da test ne pošalje lažni alarm Ivanu. Cron: backup 45 */6, stražar 20 7. Tišina = zdravo.

4Ostalo nađeno

P0 Raskol flote

validacija.py / kripto.py / rag_prior.py postoje samo na EU. MAR (produkcija) i DE vrte kod od 23.7. (MD5 e9f5f3… vs EU 8949da…, alembic dva koraka iza, 49 vs 59 stupaca) — dakle i dalje nose cross-tenant glas B rupu i nemaju enkripciju PII-ja. Rizik danas nizak (0 redaka, rute 401), ali stanje „živa ruta + stari kod + nedefiniran status" je najgore od oboje.

Jedan uzak regex ubija tri deklarirane značajke

Test-QR nosio &izn=1250.00; parser čita samo iznos ili i. Rezultat: fiskalni_izvor=qr ✓, fiskalni_iznos=NULL ✗. Posljedično:

  1. konsenzus_izvor="jedini" → „fiskal = veto" nikad ne opali (Ivanov ključni uvid)
  2. mjerilo točnosti po provideru ima uvjet if fiskalno.get("iznos") → Redis nema nijedan zapis, nikad ništa nije izmjerilo
  3. iznos ostaje na AI-ju i kad fiskalni dokument postoji

Popravak ~5 linija. Uz to: validacija_json, ai_verified, konsenzus_izvor, layer1_sha256 nisu u API serializeru (model 59 stupaca, API 33 polja) — 501 linija detektora halucinacija piše u bazu i tamo umire, korisnik je ne vidi. I OIB/IBAN checksum detektori nikad ne opale jer se validacija zove bez tih argumenata, iako ih RAG u istoj funkciji točno izvuče.

5Presuda-memo: trojna pohrana (Zakon 3)

čeka AMEN Definirana da, ožičena ne

Pitanje (Ivan): „popravi backup — u stvari trebamo trostruku pohranu — jesmo li to definirali, kako to da radimo?"

Obavezna preporuka: pozvati get_trojna().pohrani_async() + assert sve_ok na prijelazu faza=zapecaceno — jedino mjesto koje već drži bajtove i već izvodi kanonski byte-seal, pa ne uvodi novi put pisanja nego dopunjuje postojeći.

Posljedica ako se ne uradi: dokument ima pečat u bazi i bajtove u DokArhu, ali nema dokaz postojanja u lancu — po Zakonu 46 (lanac → izraz) tvrdnja „zapečaćeno" tada nema kotvu u lancu, nego samo u bazi koja je do danas bila i nebackupirana.

Protu-dokaz (M6), prije trećeg glasa: ako pohrani_async sinkrono piše ChainBlock + Dvorac, pečaćenje prestaje biti operacija od ~40 ms. Izmjeriti p95 POST /{wid}/faza {zapecati} prije/poslije na 20 uzoraka; preraste li ~500 ms, noge idu u pozadinu s obveznim readback-detektorom (ne „fire and forget"), a sve_ok postaje uvjet za faza=zapecaceno, ne za HTTP odgovor.

Zakon 47 kategorija (mijenja put pisanja dokumenta) → čeka Ivanov AMEN. Backup popravak nije čekao jer je bio čisto aditivan i P0.

6Redoslijed

  1. backup + restore-test — urađeno (c2041)
  2. flota — sinkronizirati sva tri čvora punim Z47 postupkom ili službeno proglasiti arhiva_core EU-only i ugasiti rutu na DE/MAR
  3. izn u QR parseru — oživljava fiskal-veto i mjerilo točnosti odjednom
  4. OIB/IBAN u validaciju — dva besplatna detektora halucinacija
  5. proširiti serializer + prikazati validaciju/fazu/pečat u dashboardu — tek tada UI/UX može preko 8
  6. Z3 trojstvo po §5, nakon AMEN-a
  7. spaljivanje UI + test s injektiranim vremenom · čišćenje mrtvih stupaca

Točke 2–7 realno nose modul na 8,5–9. Preko 9 traži ono što se kodom ne zamjenjuje: ground-truth skup stvarnih računa kao CI-gate za AI, i prvi stvarni klijentski dokument. Do tada: vrlo discipliniran prototip, ne produkcijski sustav.

Provjeri sam — na pet nezavisnih čvorova

Ovaj zapis nije samo tvrdnja na stranici. Zapečaćen je i stoji na pet čvorova u različitim mrežama i kod različitih pružatelja — nijedan od njih nije nužan da bi se provjerio.

čvorpoveznica za provjerupravi atomizmišljen ID
EUgenesis.limit-connect.com/v/dd4e307174…200 autentično404
ESno-limit.world/v/dd4e307174…200 autentično404
DEsati.ink/v/dd4e307174…200 autentično404
NEWfina-connect.online/v/dd4e307174…200 autentično404
MARlimit-connect.com/v/dd4e307174…200 autentično404

Stupac „izmišljen ID“ nije ukras. Da svih pet čvorova vraća „autentično“ na bilo što, poveznica ne bi ništa značila. Zato se svaki provjerava i s izmišljenim brojem — i svaki mora reći ne.

Puni otisak: dd4e307174bc20716aaf39b957aca00b39d79341a144e84533d917e50304c283

Pošteno o vremenu: novi atom ne osvane na svih pet istog trenutka — izmjereno kašnjenje od pečaćenja do prvog udaljenog čvora bilo je oko 6 minuta. Prije toga udaljeni čvor odgovara 404, i to je točan odgovor, ne kvar.