{"id":"c1234","filename":"c1234_arhiva_bugfix_5_kritichnih.dok.json","weise3_id":"","tip":"bugfix","naziv":"Arhiva modul — 5 kritičnih bugova popravljeni","kreator":"genesis","datum":"2026-06-02","snippet":"","status":"","prev_weise3":"","bunker_l":"#00d4ff","full":{"tip":"bugfix","naziv":"Arhiva modul — 5 kritičnih bugova popravljeni","sto_treba":"Analiza arhiva modula otkrila 5 P1/P2/P3 bugova. Svi popravljeni u jednoj sesiji.","faze":[{"id":"P1_media_path_fenixscan","status":"DONE","opis":"fenixscan_ocr_task: hardcoded /var/www/fenix-v3/media/ zamijenjeno s entry.original_file.path + settings.MEDIA_ROOT fallback","fajl":"arhiva/tasks.py"},{"id":"P1_media_path_temp_arhiva","status":"DONE","opis":"temp_arhiva_ocr_task: isti hardcoded path bug — isti fix. Fajlovi na v4/media nikad nisu bili pronađeni.","fajl":"arhiva/tasks.py"},{"id":"P2_zakon38_fenixscan","status":"DONE","opis":"fenixscan_ocr_task direktno zvao _gw.complete() bez TokenPlan — kršenje ZAKON 38. Zamijenjeno s get_token_router().complete(plan38, ...).","fajl":"arhiva/tasks.py"},{"id":"P2_zakon3_trojka_fenixscan_temp","status":"DONE","opis":"Trojna pohrana (ZAKON 3) bila samo u run_beta_ocr. Dodana i u fenixscan_ocr_task i temp_arhiva_ocr_task (non-blocking try/except).","fajl":"arhiva/tasks.py"},{"id":"P3_savings_pct_size_only","status":"DONE","opis":"smart_compress_v2: kad jbig2enc pdf.py nedostupan (assembly=size_only), savings_pct se pogrešno zapisivao kao da je fajl zamijenjen. Fix: savings_pct=0.0, savings_pct_estimated=X, compressed_size_bytes se ne mijenja.","fajl":"arhiva/smart_compress_v2.py"},{"id":"P3_resolve_file_path_dedup","status":"DONE","opis":"_resolve_file_path() bila duplikat u smart_compress_v2.py i compress_mrc.py. smart_compress_v2 sada importa iz limit_arhiva_1000_stranica (jedina definicija).","fajl":"arhiva/smart_compress_v2.py"}],"zakon":["ZAKON_3","ZAKON_38","ZAKON_32"],"promatrac":"CC-sesija-2026-06-02","datum":"2026-06-02"}}