puppeteer was declared in package.json but never imported anywhere in
the codebase -- PDF generation goes through @react-pdf/renderer. Its
postinstall step downloaded a ~150-200MB Chrome build on every clean
`npm ci`, which exhausted the disk on the deploy host and failed the
build with ENOSPC.
That download was wasted work even when it succeeded: the runner stage
never copies /root/.cache/puppeteer out of the builder, so the browser
was discarded when the builder stage ended.
Also drops 633 lines of transitive dependencies from the lockfile.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>