{"id":"c0900","filename":"c0900_dokarh_zivi_organizam.dok.json","weise3_id":"","tip":"implementacija","naziv":"DOKARH-2026 v2.1 — Zivi Organizam + PDF Kamuflaza","kreator":"CC Agent (claude-sonnet-4-6)","datum":"2026-05-17","snippet":"","status":"","prev_weise3":"","bunker_l":"#00d4ff","full":{"tip":"implementacija","naziv":"DOKARH-2026 v2.1 — Zivi Organizam + PDF Kamuflaza","datum":"2026-05-17","autor":"CC Agent (claude-sonnet-4-6)","zakon":["ZAKON 2","ZAKON 3","ZAKON 26","ZAKON 27","ZAKON 32","ZAKON 37"],"sto_je_napravljeno":{"summary":"Kompletna implementacija .dokarh kao polyglot PDF+ZIP zivog organizma","faze":[{"naziv":"services/dokarh_html_viewer.py","status":"DONE","opis":"Self-contained HTML viewer ugraden unutar .dokarh ZIP-a kao index.html. Sav sadrzaj ugraden kao base64 data URI. Dark/light theme toggle (ZAKON). Prikazuje dokument (slika/PDF embed), OCR polja, ChainBlock, FenixVault seal, usteda bar, QR, manifest JSON debug panel. Bez ikakvih eksternih ovisnosti."},{"naziv":"services/dokarh_pdf_suit.py","status":"DONE","opis":"Generira PDF naslovnicu (reportlab) + polyglot konkatenacija. Funkcija zapakuj_polyglot() adjustira ZIP central directory offsets za PDF pomak — validan PDF + validan ZIP istovremeno. Fallback: minimalni PDF bez reportlab. PDF naslovnica: dark dizajn, WeisE3 ID, usteda bar, FenixVault seal, zakon uskladjenost chips, DOKARH-2026 branding."},{"naziv":"services/dokarh_bundle.py patch","status":"DONE","opis":"Dodano index.html i PDF suit u kreiraj_bundle(). Lazy import pattern (_html_viewer(), _pdf_suit()). zip_bytes -> PDF kamuflaza -> polyglot. Fallback na obicni ZIP ako PDF suit fail. Novi bundlevi odmah polyglot."},{"naziv":"api/archive.py — GET /{weise3_id}/bundle","status":"DONE","opis":"Novi endpoint koji servira pravi .dokarh polyglot fajl za download. media_type='application/pdf' (kamuflaza). Content-Disposition: attachment s originalnim imenom.dokarh. X-Dokarh-Format header. Cache-Control: private, max-age=3600."},{"naziv":"Frontend fix — page.tsx","status":"DONE","opis":"Per-doc .dokarh gumb sada linkuje na /api/v1/docs/{w3}/bundle (ne /manifest). Download filename: {stem}.dokarh (ne .dokarh.json). Next.js build uspjesan."},{"naziv":"Backfill 118 postojecih bundlea","status":"DONE","opis":"Sve 118 .dokarh datoteke nadogradjene sa index.html i PDF suit. 118/118 azurirano, 0 gresaka."}]},"tehnicke_specifikacije":{"polyglot_format":"PDF header (%PDF-1.4...%%EOF) + ZIP bytes s adjustiranim CD offsetima","index_html_velicina":"~15KB per bundle (varira ovisno o sadrzaju)","pdf_suit_library":"reportlab 4.5.0 (dostupno na EU serveru)","zip_offset_adjustment":"Iteracija kroz Central Directory, update LFH offset za len(pdf_bytes)","fallback":"Minimalni PDF bez reportlab + obicni ZIP bez offset adjustment","media_type":"application/pdf — dvoklik otvara PDF citac","dark_theme":"ZAKON memory — dark/light toggle obavezan, localStorage persistence"},"verifikacija":{"polyglot_test":"Je PDF: True, Ima EOCD: True — testom potvrdjen","index_html_test":"14807 B, dark theme prisutan","bundle_endpoint":"HTTP 404 za nepostojeci W3 (endpoint aktivan)","next_build":"Uspjesan — bez TypeScript gresaka","backfill":"118/118 bundlea azurirano"},"zip_sadrzaj_v2_1":["manifest.json — DokarhManifest ZAKON 26","content.{ext} — obradena slika ili PDF","original.proof — SHA3-256 originala","ocr.json — AI ekstrakcija polja","qr.png — offline verifikacija QR","quantum.seal — FenixVault Ed25519+SHA3-256","index.html — Zivi organizam: self-contained HTML viewer","device.witness.json — F2 ChainOfCustody (ako postoji)"],"sljedeci_koraci":["Testirati download na produkciji — dvoklik u PDF citacu","Testirati unzip — index.html u browseru","Promotivni materijal: GIF demonstracija","azuriraj_ocr() patch — index.html refresh pri OCR update"]}}