Files
paliad/frontend
m ccbb7e9e33 fix(build, handlers): version-stamp /assets URLs + no-cache HTML pages (t-paliad-043 step 4)
Cache-Control: no-cache on /assets/* (step 3) only applies to NEW
responses — cached entries from before the deploy are still served
without revalidation under heuristic freshness, which is exactly the
window that kept users stuck on the broken bundle.

The robust fix is to change the cache key on every deploy:

  - frontend/build.ts now post-processes every dist/*.html and appends
    `?v=<buildVersion>` to every /assets/*.js and /assets/*.css URL.
    Same buildVersion the SW already uses, so the SW cache, the asset
    URL, and the HTML reference all rotate together.

  - internal/handlers/handlers.go wraps the protected mux (and the
    public /login, /logout, /{$} pages) in a noCachePages middleware.
    HTML pages now revalidate on every navigation; combined with the
    versioned asset URLs, a deploy reaches users on their next request:
    new HTML → new ?v= → fresh script load, every time.
2026-04-26 14:41:47 +02:00
..