tipSESIJA_IMPLEMENTACIJA
sustavdigigraf.online / tahograf-mvp
sto_je_napravljeno{
"T1_qrcode": {
"opis": "qrcode[pil]==7.4.2 + Pillow>=10.0.0 instalirani na fenix-v3",
"problem": "attach_qr_to_receipt() tiho preskakao QR generaciju bez paketa",
"rjesenje": "pip install — downgrade s 8.2 na 7.4.2 (isti API), Pillow već bio instaliran",
"status": "DONE"
},
"T2_bunker_seal_js": {
"opis": "Novi centralni modul: /pwa/bunker-seal.js",
"velicina": "13KB, 270 linija",
"arhitektura": [
"compute(opts) — BPZ-9 L0-L8 SHA-256 hash lanac",
"L
pokrivenost_bpz9{
"direktno_bunker_seal": [
"bunker-seal.js",
"genesis-bridge.js",
"tahoseal.js",
"trip.js"
],
"automatski_kroz_bridge": [
"pretrip.js (PRE_TRIP_CHECK)",
"docs.js (BORDER_TEMPLATE, TAHOScan upload)",
"adr.js",
"ecmr.js",
"pod.js",
"routes.js",
"panic.js (ALARM docs)",
"dispatcher.js",
"chat.js (CHAT docs)",
"obd-sync.js",
"trajekt.js",
"plovni.js",
"fleet-brsljani.js",
"history.js",
"acoustic-beacon.js",
"compl
vivus_lifecycle{
"stanja": [
"pending",
"issued",
"sealed",
"archived"
],
"prijelazi": {
"pending→issued": "Na svakom uspješnom Genesis upload (auto-seal)",
"issued→sealed": "Kad TahoSeal sealTrip() potpise TRIP_SUMMARY",
"sealed→archived": "archiveOldSeals() > 90 dana (tahoseal clearOldSeals)"
},
"storage": "localStorage: tg_vivus_states_v1, tg_bpz9_seals_v1",
"badge_html": "BunkerSeal.renderVivusBadge(weise3Id) → inline HTML"
}
zakoni[
"ZAKON 1A — FENIX inovacije",
"ZAKON 3 — Trojna pohrana",
"ZAKON 17 — BORG pull-only",
"ZAKON 27 — Model trinity",
"ZAKON 32 — Fix ima chain entry"
]