Skip to content

v0.17.9 — upgrades now reach the browser

Choose a tag to compare

@slimatic slimatic released this 28 Sep 17:00
· 233 commits to main since this release
b0ac8dd

If your app shows an old version, this is why

A phone with ZakApp open kept showing the previous release's build string after an upgrade, while the server was already serving the new assets. That was a caching defect in how the app is served, not a rollback.

Two service workers (sw.js, push-sw.js) and the app shell (index.html) are published from unhashed filenames, but the server config set no cache policy for any of them. A browser holding a stale sw.js keeps running the old worker, which serves its own precached copy of the app and never notices a new release.

Fixed

sw.js, push-sw.js, and /index.html now return Cache-Control: no-cache, so the browser revalidates each load and picks up the new build. Hashed assets under /assets/ are unchanged.

These use expires -1 rather than add_header Cache-Control because in nginx a nested add_header replaces the inherited header set — using it here would have silently dropped the Content-Security-Policy and HSTS headers. Verified against a real nginx:alpine: no-cache on all three paths with the security headers still present.

What to do

Clear site data once if your browser or installed app is still showing an older version. After this release it will not recur.

Included from earlier today

  • v0.17.8 — the v0.17.7 backend image could not start; do not use slimatic/zakapp-backend:0.17.7.
  • v0.17.7 — the data export was silently omitting asset values, calculation zakatAmount, and payment recipients. If you exported your data on a version between the value rename and v0.17.7, re-export now. Those files parsed cleanly but were missing the money.