Controller Software for the Brother PP-1 SKiTCH embroidery machine.
Find a file
Jan-Henrik Bruhn 0dfc8b731b feature: Implement Web Worker-based pattern conversion with progress tracking
Move Pyodide/PyStitch pattern conversion to a dedicated Web Worker for
non-blocking UI performance. Pyodide now loads in the background on app
startup with real-time progress indicator showing download and initialization
status.

Key changes:
- Create patternConverter.worker.ts with full PES to PEN conversion logic
- Add patternConverterClient.ts singleton for worker management
- Implement progress tracking (0-100%) with step descriptions
- Add inline progress bar in FileUpload component with contextual messaging
- Configure COEP headers for Electron to support Web Workers
- Pass dynamic asset URLs to worker for file:// protocol support
- Update UIStore with progress state management
- Simplify pystitchConverter.ts to delegate to worker client

Benefits:
- Truly non-blocking UI (heavy Python/WASM runs off main thread)
- Real progress feedback during 15MB Pyodide download
- Works in both browser and Electron (dev and production)
- Faster app startup perception with background loading
- Better UX with "waiting" state if user clicks before ready

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-13 13:34:13 +01:00
.claude Add Electron desktop application support with Electron Forge 2025-12-07 22:39:38 +01:00
.github Add enhancement label to minor 2025-12-12 21:48:27 +01:00
build Add Electron desktop application support with Electron Forge 2025-12-07 22:39:38 +01:00
docs Improve responsive design and simplify typography system 2025-12-10 16:56:43 +01:00
electron feature: Implement Web Worker-based pattern conversion with progress tracking 2025-12-13 13:34:13 +01:00
public Icons 2025-12-08 00:21:31 +01:00
src feature: Implement Web Worker-based pattern conversion with progress tracking 2025-12-13 13:34:13 +01:00
.gitignore Add Electron desktop application support with Electron Forge 2025-12-07 22:39:38 +01:00
.node-version feature: use proper node version for used electron version 2025-12-12 20:58:48 +01:00
CLAUDE.md feature: Add autolabeler configuration and commit guidelines 2025-12-12 20:31:44 +01:00
eslint.config.mjs feature: Implement Zustand state management 2025-12-12 21:28:52 +01:00
forge.config.js Fix auto-update structure and macOS manifest URL 2025-12-11 13:22:38 +01:00
index.html Icons 2025-12-08 00:21:31 +01:00
LICENSE.md add license 2025-12-07 22:58:02 +01:00
package-lock.json feature: Implement Zustand state management 2025-12-12 21:28:52 +01:00
package.json feature: Implement Zustand state management 2025-12-12 21:28:52 +01:00
tailwind.config.js Implement comprehensive dark mode support and improve pattern visibility 2025-12-06 20:12:46 +01:00
tsconfig.app.json Add Electron desktop application support with Electron Forge 2025-12-07 22:39:38 +01:00
tsconfig.electron.json Add Electron desktop application support with Electron Forge 2025-12-07 22:39:38 +01:00
tsconfig.json initial 2025-11-30 22:18:14 +01:00
tsconfig.node.json Add Electron desktop application support with Electron Forge 2025-12-07 22:39:38 +01:00
vite.config.electron.mts Add Electron desktop application support with Electron Forge 2025-12-07 22:39:38 +01:00
vite.config.mts feature: Implement Web Worker-based pattern conversion with progress tracking 2025-12-13 13:34:13 +01:00