Commit graph

2 commits

Author SHA1 Message Date
Richard
2b0caa3a38 Stop telling caches the moving aliases never change
latest.apk and latest-linux.tar.gz are symlinks the release script
repoints, and latest.apk matched the `\.apk$` rule that serves
`immutable, max-age=1y`. So the one URL people are handed was the one URL
a browser or proxy could pin to an old release for a year.

Exact-match locations win over the regex in nginx, so the two aliases now
carry no-cache and the versioned artifacts — which genuinely never change,
because a release is a new filename — keep the immutable header. The
regex also covers .tar.gz now; it only ever mentioned .apk.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-06 19:04:20 +02:00
Richard
2fc0981195 Somewhere for the app to look for a newer version of itself
Two static files behind nginx and a script that writes them. No
authentication: there is no account to check against, and the APK carries
no secret — the credential in that app is the addon URL, which lives in
the device keystore.

The APKs are committed rather than stored elsewhere. At ~34MB and a few
releases a year that beats standing up artifact storage for one app, and
the history is disposable because only the newest artifact is ever
fetched.

release.py reads the version out of amber-adult's pubspec instead of
taking it as an argument. A manifest advertising a build number the APK
does not carry is an update the device installs and is then offered
again, every launch, forever.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-30 03:53:38 +02:00