Monorepo for Aesthetic.Computer aesthetic.computer

oven: crunch a private paper on demand — upload, xelatex, get the pdf back master

the oven is the only box with the toolchain, but every path into it built `origin/main` and published to papers.aesthetic.computer. so a document that isn't in the repo — and mustn't be — had nowhere to go. `paper-crunch.mjs` takes an uploaded .tar.gz, builds it, hands the pdf back, and shreds the sources. it never writes to the site dir, never runs `cli.mjs publish|deploy`, never touches the git clone. it only *reads* the house .sty + webfonts out of the clone, because `ac-paper-essay.sty` loads fonts at `../../system/public/type/webfonts/` — so the builder pitches a sandbox two levels deep and links them in, and a bundle using the house styles just works. a run that fell back to nullfont is a failure, not a success (same sniff as `cli.mjs`). the bundle is untrusted: `..`/absolute/link entries refused before extraction, the gzip stream capped mid-flight against a bomb, shell-escape off, and a deadline that kills the process group. `papers/bin/crunch.mjs <dir>` drives it from a laptop with no TeX. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>