Support SVG sources (closes #68)
check / check (push) Canceled after 0s

The fetcher accepts image/svg+xml again and internal/magic detects SVG.
A raster format renders the SVG with librsvg at the density that makes
it cover the output size, so an enlarged SVG stays sharp; the rendered
size is held to MaxInputDimension. orig of an SVG at the orig size is
the SVG unchanged, cached as a variant; at any other size it is
ErrSVGNotOriginalSize, answered 400. The cache reads up to 1024 first
bytes of a file to find its format, as an SVG's root element can come
after a prolog. Tests that pinned SVG as refused now expect it to be
read.

Model: opus-5-5
This commit is contained in:
sneak committed 2026-11-11 00:38:16 +00:00
1 parent 9f1e9f5253
commit 632fe0bd36
20 files changed
+669 -76

No files matched your search

+6
View File
@@ -30,6 +30,12 @@ P2: security: per-origin rate limiting
# Completed Steps
- 2026-11-11 SVG is a source format again (closes #68), by the owner's ruling.
- The fetcher accepts `image/svg+xml`, and `internal/magic` detects SVG.
- A raster format renders the SVG at the output size, so it stays sharp.
- `orig` of an SVG at the `orig` size is the SVG unchanged, cached as a
variant. At any other size it is `ErrSVGNotOriginalSize`, answered 400.
- The cache reads up to 1024 first bytes of a file to find its format.
- 2026-10-27 the reconciliation pass skips a directory it cannot list and a file
whose info it cannot read, and goes on (closes #343). It stopped before its
later checks at a directory it could not list, or at a source or variant file