Files
Raúl MarínandClaude Opus 4.8 11c4f4b44a CI tools: transparently handle zstd/gzip-compressed artifacts
CI compresses uploaded text artifacts larger than a threshold with zstd
(ci/praktika/s3.py, COMPRESS_THRESHOLD_MB), so the same object (e.g. a
perf shard's all-query-metrics.tsv) can be served either plain or as a
`.zst` sibling. The report tools decoded the bytes as UTF-8 and failed on
the zstd magic byte, silently dropping the larger shards.

Make every artifact reader handle plain, zstd, and gzip transparently:
detect by magic bytes and, for downloads, fall back to the `.zst` sibling
when the plain object is 403/404.

- fetch_perf_report.py: maybe_decompress + `.zst` fallback in the fetch
  and download paths.
- fetch_ci_report.js: decompress the response body by magic; retry `.zst`
  on 403/404 (zlib.zstdDecompressSync, with a zstd-CLI fallback).
- perf_api.py: read local `.zst`/`.gz` TSVs transparently.
- Regression tests: plain vs gzip vs zstd parse identically.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-07-10 16:08:27 +02:00
..
…