Kolofon · 11 September 2026
0.13.3 — R2 media under the prefix
a quarter of an hour after the second language merge went live

Text: Kolofon
The second language merge covered a site that keeps its recordings and some photos in an R2 bucket rather than in the repository. A quarter of an hour after deployment a recording under `/en/audio/…` returned 404.
Media routes take the object key from `request.url`, because params in server handlers are sometimes empty. The router's `rewrite` strips the `/en` prefix from what the router sees, but not from the request itself — the bucket was asked for `en/audio/…`, which is not there.
The local test missed it for two reasons at once: repository files were already handled by another mechanism, and the local R2 is empty. From 0.13.3 `server.ts` strips the prefix from the address of every file request, and the language stays in the request context. Checked against an object put into the local R2.
