Pulling master with new dependencies left the dev server failing on
unresolvable imports (motion/react, @sentry/browser) until someone manually
ran pnpm install and cleared Vite's optimizer cache. The dev runner now
detects a pnpm-lock.yaml newer than node_modules/.modules.yaml and runs
pnpm install itself, then drops the stale Vite caches that otherwise keep
serving 504 "Outdated Optimize Dep" responses.
- boot (dev and watch modes): install before the migration preflight
- dev mode: pnpm-lock.yaml joins the watched files; auto-restart installs
first, and skips the restart instead of exiting if the install fails so
the running server is never orphaned
- watch mode: a lockfile watcher installs on change and nudges the server
entry's mtime so tsx watch respawns onto the fresh node_modules
- the manifest mtime is bumped after each install so a touched-but-unchanged
lockfile cannot re-trigger installs forever
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>