# Workflow - branch per issue from `next` - do the work in Next Step - delete Next Step from `TODO.md` - `TODO.md` merges with git's union merge (`.gitattributes`), which never reports a conflict: read the merged entries after every merge or rebase - move the top item of Future Steps into Next Step - commit (`TODO.md` changes in the same commit as the work) - open a PR based on `next` - an independent reviewer who did not write the change gates it - the manager squash-merges the PR into `next` once review passes - `next` stays green and mergeable to `main` at any time; only the owner merges `next` into `main`, via the single milestone PR - push # Status pre-1.0. The `1.0.0` milestone is in progress. # Next Step P1: security: bound the time and memory of rendering an SVG source. Both grow with what the SVG draws, such as filter effects. govips cannot stop or limit a render. The bound is the owner's decision on https://git.eeqj.de/sneak/pixa/issues/68. # Future Steps - P2: security - per-origin rate limiting - P2: HTTP response handling - Last-Modified headers - P2: operational - Prometheus metrics still missing: - cache hits and misses, split into source images and variants - cache size on disk and its limit - evictions and the bytes they free - upstream fetch duration and errors - transcode duration - images in processing - measure the 1k to 5k req/s target with `script/loadtest` on a machine not shared with other work