check / check (push) Waiting to run
The signed data and the cache key joined host, path and query with ":" and no escaping, so path /a:b with no query and path /a with query b: gave the same string: a URL signed for one verified for the other, and whichever was fetched first was served for both. Both now write each "%" in the path and query as "%25" and each ":" as "%3A" before joining them. A path and query holding neither are signed and keyed as before. "Signature Specification" in README.md states the escaping. Model: opus-5-5