tipIMPLEMENTACIJA
sesijac1323
FAZA_A_DIJAGNOZA{
"zakljucak": "genesis-mesh.js NIJE spajan na blagajnu — razlog: gradjen za Kvantni Dzep (/public/quantum/), nikad integriran u genesispos PWA. eho_pos.js gradi lokalnu Krunica verigu ali je NE salje — zatvara se u zatvori() koje vraca summary bez server push-a. confirmPay() ide direktno na apiPost('/racun') bez offline fallback-a.",
"sto_fali_do_p2p": "RTC signaling ziv (/api/v4/kanal/p2p/signal), genesis-mesh.js kompletan. Sto fali: (1) import genesis-mesh.js u blagajna/index.html, (2) P2
FAZA_B_IMPLEMENTACIJA{
"sto_je_napravljeno": [
"IndexedDB baza 'gpos_offline', store 'racuni' s autoIncrement kljucem",
"oqOtvori() — otvara IDB, kreira store na prvom pokretanju",
"oqDodaj(payload) — dodaje transakciju u lokalni red",
"oqSinkroniziraj() — cursor prolaz kroz sve nesihronizirane, DELETE po uspjehu",
"confirmPay() prosiren: (1) provjera navigator.onLine PRIJE API poziva, (2) offline → oqDodaj + toast, (3) online ali API fail → oqDodaj + toast",
"window.addEventListener('onlin
CONFLICT_RESOLUTION{
"implementirano": "offline_ts timestamp (Date.now()) se salje na server uz svaki offline racun. Server moze koristiti taj timestamp za detektiranje duplikata (isti smjena_id + isti stavke + timestamp < 30s = potencijalni duplikat). Krunica anti-double-spend: eho_pos.js vec gradi lokalnu verigu po sessionu — chain hash sprjecava duplikate unutar jednog sessiona.",
"nije_implementirano": "Conflict resolution izmedju DVA razlicita telefona koji su oba offline i rade iste promjene (npr. isti a
DOKAZ_OFFLINE_FLOW{
"test_procedure": [
"1. Otvori https://genesispos.online/blagajna/ na telefonu",
"2. Logiraj se (online)",
"3. Ukljuci avionski mod (Flight mode)",
"4. Dodaj artikle u kosaru i klikni Naplati",
"5. Provjeri toast: 'Offline — transakcija sacuvana lokalno'",
"6. Provjeri header: narancasti badge 'Offline: 1'",
"7. Iskljuci avionski mod",
"8. Provjeri: auto-sync se aktivira (window.addEventListener online)",
"9. Toast: 'Offline red: 1 racun sinkroniziran'",
STO_JE_OSTALO{
"p2p_integracija": "genesis-mesh.js → blagajna direktno (telefon-telefon bez servera) — DOKUMENTIRANO, sljedeca razina",
"offline_smjena": "Ako nema smjene (smjena_id=null) pri offline naplati — server moze odbiti. Rijesi: otvorena smjena se kesi lokalno.",
"ios_pwa_limitacija": "Safari/iOS ima ogranicen IndexedDB quota u standalone PWA modu. Test na iPhoneu preporucen.",
"new_hook": "NEW server nema post-receive hook za auto-deploy — rucno kopiranje pri svakom pushu (c1319 todo)."
}
zakonZAKON NAD ZAKONIMA — offline radi = pokazano da radi. Afriska prednost: telefon radi bez veze, sinkronizira kad dodje, P2P sljedeci.