A page older than its script is loaded again, not run with it (#449)
Safari on a Mac threw at load on 2026-11-10: the script wired #sleep, which the page it ran in did not have. #sleep and its script came in together on 11-08, so the page was older than the script. The service worker answers a navigation it cannot fetch with the page it kept last, here one from before 11-08, and that page asked for its script by the old hash; by then the network answered, and Caddy, which ignores ?v=, sent today's app.js. The worker even kept it under the old name. Every ?v= is the first 12 hex digits of the file's SHA-256, so the worker now checks what it fetched against the name. On a mismatch it does not keep or give the file, and loads the page again from the network, at most once in 30 seconds so a page still unreachable is not reloaded round and round. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -33,6 +33,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
### Fixed
|
||||
|
||||
- A page kept for offline from before a deploy, shown on waking before the network was back, is loaded again rather than run with the new script, which left it dead until reloaded by hand (#449).
|
||||
- On a phone the totals along the bottom (All Subscriptions: N items, N unread) are text alone, centred just above the home indicator, instead of a band and rule that ran to the bottom edge and were cut off by the screen's rounded corners (#424).
|
||||
- The admin page's top bar clears the status bar in the iOS app, so its back button can be tapped; the page asked for no room under the clock as the app page does (#423).
|
||||
- Swiping, or j, through more than 50 items no longer stops at the 50th until a reload: the next ones are fetched as you near the end, and Load more on the Unread tab no longer skips as many unread items as you had read (#383).
|
||||
|
||||
Reference in New Issue
Block a user