SIGN IN SIGN UP

Decode a repository path once, not twice

The kit router decodes every captured parameter, `*path` included
(`kit/typescript/route.ts:117`), so the `decodeURIComponent` in the blob
lookup was a second pass. Probed against the fake rather than argued:

    /datasets/T/pct-ds/raw/main/100%25.txt      500 {"message":"URI malformed"}
    /datasets/T/pct-ds/raw/main/a%2520b.txt     200 "space"

The first is loud. The second is the one to fear: the repository holds both
`a b.txt` and a file literally named `a%20b.txt`, the request names the
latter, and the second decode turns it into the former -- a different file,
served with a 200 and no way for the caller to notice.

`raw` inherited this from `resolve`, which has carried it since it was
written, so removing it from the shared lookup fixes both. Four selftest
checks pin it, including the quiet half.

Found by Codex review on this PR.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Z
Zecheng Zhang committed
5fb67d46e30e2fa03ce95202e521cdaf774e1412
Parent: 59627ca