Git doesn't track empty directories, so public/ never made it into
the CI checkout - the Dockerfile's COPY --from=build /app/public step
failed with "not found" on a clean clone even though it worked
locally (where the directory existed on disk but was never committed).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W8WkFF5ppURBAB918593Eb