`/v1/probe` is ffprobe, which is the wrong tool for a still and fails at it
loudly: a HEIC out of an iPhone is not a container it understands, so it rejects
the file outright with "moov atom not found" rather than reporting no
dimensions.
So anything needing a photograph's size had nowhere to ask — and a caller
building a width ladder needs exactly that, to know which rungs would be an
upscale.
sharp reads it, HEIC included, because `metadata()` only parses the header. That
is precisely the part of a HEIC that works; the pixels are what its bundled
libheif cannot reach, which is what decodable.ts routes around. No decode
happens, so this needs no job slot.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>