{"id":"c0182","filename":"c0182_arhiva2030_sprint2_plan.dok.json","weise3_id":"","tip":"plan","naziv":"ARHIVA 2030™ Sprint 2 — Trojstvo AI + OCR + Trojna pohrana","kreator":"genesis","datum":"2026-05-09","snippet":"","status":"DONE","prev_weise3":"","bunker_l":"#00d4ff","full":{"tip":"plan","naziv":"ARHIVA 2030™ Sprint 2 — Trojstvo AI + OCR + Trojna pohrana","c_id":"c0182","datum":"2026-05-09","status":"DONE","faze":{"S2-1":{"naziv":"services/arhiva_ai.py — OCR + Haiku klasifikacija async service","status":"DONE"},"S2-2":{"naziv":"api/archive.py — /analiziraj endpoint + BackgroundTask na upload","status":"DONE"},"S2-3":{"naziv":"services/dokarh_bundle.py — azuriraj_ocr() patch manifest u ZIP-u","status":"DONE"},"S2-4":{"naziv":"services/arhiva.py — ZAKON 3 Brsljani pusi_dokument na upload","status":"DONE"},"S2-5":{"naziv":"Frontend — OcrKartica, ClassBadge, polja (datum/iznos/OIB)","status":"DONE"}},"arhitektura":{"ocr_flow":"original_bytes → ocr_iz_bajtova() → hrv+eng tekst","ai_flow":"ocr_tekst → Haiku prompt → JSON (tip_dokumenta, datum, iznos, OIB, dobavljac, broj) + pouzdanost","bundle_update":"citaj ZIP → novi manifest s OcrInfo popunjenim → novi ZIP (atomic replace)","trojna_pohrana":"1. Krunica ChainBlock (vec) | 2. .dokarh na disku (vec) | 3. Brsljani gossip (dodajemo)","async":"upload vraca odmah, analiziraj se pokrece kao BackgroundTask (ne blokira korisnika)"},"haiku_prompt":{"model":"claude-haiku-4-5-20251001","max_tokens":512,"zadatak":"klasificirati dokument i izvuci kljucna polja u JSON formatu","polja":["tip_dokumenta","datum","iznos_ukupno","pdv_iznos","valuta","dobavljac","broj_dokumenta","oib","pouzdanost","napomene"]},"zakon":["ZAKON 2 — Brsljani","ZAKON 3 — Trojna pohrana","ZAKON 26 — Schema Contract","ZAKON 32 — chain entry"],"zavrsen":"2026-05-09","napomene":"Sve faze implementirane i commit 34d3d95 + 8513fb2. OCR+Haiku radi. Lista vraca OCR polja."}}