The hourly Cache tidy workflow fails (runs #17–#22 at least, e.g. run_01m5ga0hggefcr77c9432apvxw). It deletes the first replaced entry, then throws SyntaxError: Unexpected end of JSON input. The caches API answers a DELETE with 204 and no body, and scripts/deploy/ci-cache.mjs read every answer with response.json().
Now an answer with no body reads as null (answer()), and a test covers both a 204 delete and a listing.
Validation: node --test scripts/deploy/ci-cache.test.mjs (7 pass), prettier, git diff --check.