What's New in v1.21.31
🐛 Bug Fixes
- Crash fix: Fixed \Reflect.get called on non-object\ crash caused by the lazy proxy system returning null/undefined when webpack modules hadn't loaded yet — all proxy traps (apply, construct, has, ownKeys, etc.) now gracefully handle null targets instead of throwing
- Child proxy safety: Destructuring lazy finds (e.g. \const { x } = findByPropsLazy(...)) no longer crash when the parent factory returns null
- Unhandled rejection: Added error handling to \webFrame.executeJavaScript()\ in preload so renderer script failures are logged instead of producing cryptic unhandled promise rejections
🏗️ Build & CI
- macOS builds: Fixed macOS release upload step (switched from bash -e to pwsh to prevent gh release upload failures from killing the entire job)
- Web build: Fixed ~pluginMeta\ resolution in \�uildWeb.mjs\ (added missing external and plugin registration)
- CI updates: Added macOS build targets (dmg, zip) to electron-builder config
- CI updates: Added macOS build jobs to build and release workflows
- Checksums: Added release checksums generation for integrity verification
⚡ Performance
- Fixed \key={index}\ anti-patterns, memory leaks, and inline style object creation across components
- Repaired UTF-8 double-mojibake corruption in 45 source files
📦 Dependencies
- Bumped electron from 41.10.1 to 43.2.0 (installer-src)
- Bumped pnpm/action-setup from 4 to 6
- Bumped actions/checkout from 4 to 7
- Bumped various other CI and dev dependencies
🧹 Other
- Updated plugin lists and metadata
- Added stats badges to README