···1515- **Bundler**: electron-vite / Vite
1616- **State**: Redux Toolkit + redux-observable (RxJS epics)
1717- **Language**: TypeScript (strict)
1818-- **Styling**: Semantic UI React + SCSS
1919-- **Testing**: Jest
1818+- **Styling**: Tailwind CSS + shadcn/ui (components in `src/renderer/components/ui/`)
1919+- **Testing**: Vitest
2020- **Linting**: ESLint + Prettier (single quotes, ES5 trailing commas)
21212222## Key Directories
···3030```bash
3131npm run dev # Start dev server (patches deps first)
3232npm run build # Build all processes
3333-npm test # Run Jest tests
3333+npm test # Run Vitest tests
3434npm run typecheck # TypeScript check (no emit)
3535npm run lint # ESLint
3636npm run lint-fix # ESLint + Prettier auto-fix
···4545- Keep Electron main/renderer separation strict — use preload IPC bridges
46464747## Out of Scope
4848-- Do not modify `src/renderer/utils/webworker/src/` directly; it is managed by `InstallPyodide.js`
4848+- Do not modify `src/renderer/utils/webworker/src/` directly; it is managed by `internals/scripts/InstallPyodide.mjs` (Pyodide runtime) and `internals/scripts/InstallMNE.mjs` (scientific packages)
4949- Do not alter `electron-builder` publish config without confirming release intent
50505151## LLM Context