Document that pixa serves the first frame of an animated image #369

Merged
clawbot merged 1 commits from issue-361-document-first-frame into next 2026-11-13 20:39:40 +01:00
Collaborator

README now says, under Image URLs, that pixa serves only the first frame of an animated GIF, WebP, PNG or JPEG XL source, in every output format, orig included.

sneak ruled against keeping animation on #361: too much scope and attack surface. No code change.

closes #361

Model: opus-5-5

README now says, under Image URLs, that pixa serves only the first frame of an animated GIF, WebP, PNG or JPEG XL source, in every output format, `orig` included. sneak ruled against keeping animation on https://git.eeqj.de/sneak/pixa/issues/361: too much scope and attack surface. No code change. closes #361 Model: opus-5-5
clawbot self-assigned this 2026-11-13 19:42:07 +01:00
clawbot added the needs-review label 2026-11-13 19:42:15 +01:00
Author
Collaborator

Verdict: FAIL
Head: d15991ad21

needs-rework

  1. README.md line 548, the new Animated images paragraph, names only GIF and WebP. pixa also serves an animated PNG or animated JPEG XL source as a still image, in every output format, orig included, since libvips decodes only one frame of any source. The definition of done on #361 is that the README says pixa serves the first frame of an animated image. As written, a reader with an animated PNG or JPEG XL is told nothing, and the two-format list suggests those stay animated. Acceptable: the first sentence names all four, for example "pixa serves only the first frame of an animated GIF, WebP, PNG or JPEG XL source." Leave AVIF out of that list (next line).
  • Outside this PR, for its own issue: an animated AVIF whose ftyp brand is avis is refused with 415, because the libvips in the image does not read that brand, though pixa's own format check accepts it.

Model: opus-5-5

Verdict: FAIL Head: d15991ad217ec2fc8036fe603380d9c2d4d3352e `needs-rework` 1. `README.md` line 548, the new **Animated images** paragraph, names only GIF and WebP. pixa also serves an animated PNG or animated JPEG XL source as a still image, in every output format, `orig` included, since libvips decodes only one frame of any source. The definition of done on https://git.eeqj.de/sneak/pixa/issues/361 is that the README says pixa serves the first frame of an animated image. As written, a reader with an animated PNG or JPEG XL is told nothing, and the two-format list suggests those stay animated. Acceptable: the first sentence names all four, for example "pixa serves only the first frame of an animated GIF, WebP, PNG or JPEG XL source." Leave AVIF out of that list (next line). - Outside this PR, for its own issue: an animated AVIF whose `ftyp` brand is `avis` is refused with 415, because the libvips in the image does not read that brand, though pixa's own format check accepts it. Model: opus-5-5
clawbot added 1 commit 2026-11-13 20:09:44 +01:00
sneak ruled against keeping animation: too much scope and attack surface.

Model: opus-5-5
clawbot force-pushed issue-361-document-first-frame from d15991ad21 to bc8bddd8bb 2026-11-13 20:09:44 +01:00 Compare
Author
Collaborator
  1. Fixed in bc8bddd: the first sentence names GIF, WebP, PNG and JPEG XL; AVIF left out.
  2. Outside this PR, not changed; no issue tracks it yet.

Model: opus-5-5

1. Fixed in `bc8bddd`: the first sentence names GIF, WebP, PNG and JPEG XL; AVIF left out. 2. Outside this PR, not changed; no issue tracks it yet. Model: opus-5-5
Author
Collaborator

Verdict: PASS
Head: bc8bddd8bb

The new Animated images paragraph in README.md is accurate, names all four formats, and meets the definition of done on #361.

Model: opus-5-5

Verdict: PASS Head: bc8bddd8bba898914e521c9eff2c35cf77f19302 The new **Animated images** paragraph in `README.md` is accurate, names all four formats, and meets the definition of done on https://git.eeqj.de/sneak/pixa/issues/361. Model: opus-5-5
clawbot merged commit cf6f8172e3 into next 2026-11-13 20:39:40 +01:00
clawbot deleted branch issue-361-document-first-frame 2026-11-13 20:39:40 +01:00
Sign in to join this conversation.