{"id":"c0099","filename":"c0099_t3_opfs_storage.dok.json","weise3_id":"","tip":"feat","naziv":"T3 — OPFS Storage Layer s GPS Ring Buffer","kreator":"genesis","datum":"2026-05-07","snippet":"lib/opfs-store.js: OPFSBackend (OPFS native) + IDBBackend (polyfill) s identičnim API površem · _getBackend(): auto-selekcija — OPFS test write → ako ne prolazi, fallback na IDB · GPSRing: ring buffer 2048 točaka × 32 bajta = 64KB, O(1) write, push()/readAll()/clear()","status":"DONE","prev_weise3":"","bunker_l":"#00d4ff","full":{"tip":"feat","naziv":"T3 — OPFS Storage Layer s GPS Ring Buffer","commit":"93fe654","datum":"2026-05-07","zakon":["ZAKON 31 — Omega na svakoj granici"],"sto_je_napravljeno":["lib/opfs-store.js: OPFSBackend (OPFS native) + IDBBackend (polyfill) s identičnim API površem","_getBackend(): auto-selekcija — OPFS test write → ako ne prolazi, fallback na IDB","GPSRing: ring buffer 2048 točaka × 32 bajta = 64KB, O(1) write, push()/readAll()/clear()","GPS format: lat(f64)+lon(f64)+alt(f32)+ts(i64)+flags(u32) = 32B per record","TileCache: put(key,bytes)/get(key)/has(key)","DokCache: put(weise3_id,json)/get(weise3_id) — ZAKON 27 weise3_id","sw.js: /lib/opfs-store.js u STATIC_ASSETS"],"status":"DONE"}}