Postinstall removes upstream guards that mark parseMetadata failed when stderr is non-empty after success; Docker dev image copies patches before npm ci.
Vite hot reload via src bind mount; starts after backend health check passes.