tipcc.task
statusDONE
zakon[
"ZAKON 33 — Offline is Default",
"ZAKON 17 — BORG pull-only",
"ZAKON 41 — browser-native W3C only",
"ZAKON 43 — krunica_hash u svakom atomu"
]
kontekstK3 korak DNK cjeline. Sprint 1 (c1326) = bootstrap + health. Sprint 2 = offline sposobnost. ZAKON 33 kaže: offline BEFORE online — SW mora raditi savršeno bez interneta.
sprint2_scope[
"brsljani-sw.js — Service Worker (CacheFirst/NetworkFirst strategije)",
"GET /brsljani-sw.js endpoint (root path, Service-Worker-Allowed: /)",
"GET /api/v4/brsljani/browser-pull endpoint (dokumenti za pre-cache)",
"Ažuriran brsljani-node.js v2.0.0 — SW registracija + _pullMissingDocs()",
"Offline queue za health POST (Background Sync API)",
"Smoke test: offline load /view/, SW intercepta, cache popunjen"
]
cache_strategije{
"/view/*": "NetworkFirst — cache na success, serve iz cache offline",
"/static/*": "CacheFirst — statički resursi, install-time cache",
"/api/v4/brsljani/browser-stats": "StaleWhileRevalidate",
"/api/v4/archive/list*": "NetworkFirst + cache za offline",
"health_POST": "Queue — Background Sync kad online"
}
sw_scope/ (cijela domena — Service-Worker-Allowed header obavezan)
commitd032765
napomenaSprint 2 DONE: /brsljani-sw.js serve (service-worker-allowed:/), /api/v4/brsljani/browser-pull, brsljani-node.js v2.0.0 (_registerSW+_pullMissingDocs). Smoke: 200/401/200. ZAKON 17/33/40/41/43.