Vite resolves .tsx before .jsx (per extensions order in vite.config.ts), so .jsx files were never loaded at runtime. Switching to TSX-only source. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>