Per-package onlyBuiltDependencies so pnpm 10 actually compiles native modules (isolated-vm, argon2, sqlite3, sharp) — root workspace config isn't visible when compose mounts a single package into /app. Frontend container now installs with devDeps (so tsc/vite exist), prunes after build, and gains a `start` script that serves the build via vite preview on 0.0.0.0:3000. Drop obsolete compose `version` key.