Bun workspace symlinks (apps/api/node_modules/*) pointed to root .bun cache but were never copied from deps→runner. Added bun.lock, apps/api/node_modules, and packages/shared/node_modules to the runner COPY chain so and resolve at runtime. Also added bun.lock to web Dockerfile for deterministic installs. Co-Authored-By: Claude <noreply@anthropic.com>