tipfaza
zakonZAKON 2 — Sve ide kroz DokArh
datum_kreiranja2026-05-06T06:15:00Z
faza_brojG
milestoneFIRST PRODUCTION ARK USER — Robi slika gumu
status{
"stanje": "DEPLOYMENT IN PROGRESS",
"target_completion": "2026-05-06 midnight",
"success_metric": "Robi slika → cap_xxxxx toast → razlika vidljiva"
}
arhitektura_pre_faze_g{
"lokacija": "/var/www/genesis/tahograf-mvp",
"backend": "Flask (Python)",
"baza": "SQLite (tahograf.db, 84K)",
"frontend": "PWA (offline-first)",
"git_commits": [
"49492f6 — step-006: backup + health monitor"
],
"modeli": [
"DokDocument (lanac dokumenta)",
"Driver (vozač s WeisE3 ID)",
"Vehicle (vozilo)",
"Trip (putovanje)",
"GPSPoint (GPS putanja)"
],
"MISSING": "Capture model za ARK foto — TREBAM DODATI"
}
ark_integracija{
"faza_a_b": "✅ GOTOVE (ark-core, ark-capture u /tmp/ark/)",
"plan": [
"M1 — libark_core.so build (cargo build --release)",
"M1 — Python SDK install (maturin develop)",
"M2 — WeisE3 9D ID migracija (legacy → novo)",
"M3 — .dok v2 format integracija",
"M4 — ark-capture za pre-trip check (foto)",
"M5 — sati.ink kao opcionalni backend",
"M6 — deprecation stare crypto path"
],
"trenutna_faza": "M1 build + M4 Capture model"
}
capture_model_specifikacija{
"tablica": "captures",
"polja": [
"capture_id: String(16) PRIMARY KEY — format cap_<12hex>, UNIQUE, INDEX",
"trip_weise3_id: String(64) FOREIGN KEY (trips)",
"driver_weise3_id: String(64) INDEX",
"vehicle_weise3_id: String(64) INDEX",
"purpose: String(128) — 'pre_trip_tire_front_left' itd.",
"photo_bytes: BLOB — raw JPEG (kompresija u ARK)",
"photo_hash_sha256: String(64) — original sadržaja, bez kompresije",
"weise3_id: String(64) — permanentna adresa dokum
robi_test_workflow{
"korak_1": "Robi se logira u tahograf PWA",
"korak_2": "Klikne 'Slika gumu' → kamera se otvori",
"korak_3": "Slika se hvata s ARK PhotoCapture",
"korak_4": "Backend sprema u captures tablica s cap_xxxxx ID-om",
"korak_5": "Toast prikazuje: '✅ Captured: cap_ab12cd34ef56'",
"korak_6": "Robi ide u 'Moji dokumenti' i vidi capture listu",
"korak_7": "Klikne na cap_xxxxx → vidi foto + metadata",
"success": "Robi osjeća brzinu (9D WeisE3) i sigurnost (Ed25519 + ChainBlock)"
}
backup_strategie{
"pre_faze_g": "/var/backups/tahograf/pre-faza-g-20260506-061350/",
"sadrzaj": [
"tahograf-mvp.tar.gz (24M)",
"data-snapshot (88K SQLite backup)"
],
"pravilo": "NIKAD TRUNCATE captures bez backupa + Sonnet ✅"
}
deployment_checklist[
"☐ cargo build --release za libark_core.so",
"☐ pip install -e . za Python SDK",
"☐ Capture model dodati u models.py",
"☐ Migracija: alembic upgrade head",
"☐ app.py prilagoditi: PhotoCapture import",
"☐ /photo/capture endpoint kreirati",
"☐ toast notifikacija za capture_id",
"☐ Robi test: slika gume",
"☐ DokArh entry: c0051_robi_first_capture.dok.json"
]
zakon_17_borgPull-based arhitektura — Robi je klijent, tahograf je server. Nema push/broadcast.
zakon_2_dokarhSvi eventi u DokArh lancu — c0050 (start), c0051 (Robi test), c0052 (production go-live)
zakon_11_trojneSvaki capture u captures tablici → pohrani_trojno(ARK envelope) → ChainBlock + .dokarh + Bršljan gossip