shadcn (web devDependency) pulled a second peer copy of
@modelcontextprotocol/[email protected].1 (zod@3), so the server's zod@4 copy
lived in the npm cache as sdk/1.30.1_1. `deno compile --exclude-unused-npm`
embeds that _1 folder but the pruned snapshot resolves it as sdk/1.30.1,
so every SDK import failed at startup with ERR_MODULE_NOT_FOUND.
- drop the shadcn CLI dependency; vendor its tailwind.css (the only
runtime use) as apps/web/app/shadcn-tailwind.css, removing the duplicate
- scripts/check-compiled-binary.sh: run the compiled binary with an empty
env and `--role preflight`; it must load the full module graph and exit 2
on config validation. Wired into `deno task ci` (check:binary) and the
Dockerfile build stage.
Co-Authored-By: Claude Opus 5.5 <[email protected]>