velxio/frontend/src/desktop
David Montero Crespo ca8dcedcc7 feat: STM32 (Blue Pill / Black Pill) QEMU emulation + Pro board gating
STM32 emulation (open-core, runs via libqemu-arm in the backend worker):
- backend: stm32_lib_manager + stm32_worker (GPIO, USART, I2C/SPI device models
  reusing the ESP32 slaves, live sensor updates), arduino_cli STM32 branch,
  start_stm32 simulation route.
- frontend: Stm32Bridge + Stm32BluePill(/BlackPill) web components (Wokwi SVGs),
  board kinds, Interconnect/boardPinMapping/boardProtocols wiring, example
  projects (blink, serial, I2C BMP280/MPU6050/DS1307/SSD1306/weather, 7-seg,
  RGB, button, switch, stepper, cross-board interconnect).
- Raspberry Pi 4/5 board elements + thumbnails.

Pro board gating (generic OSS->Pro seam; entitlement logic lives in the overlay):
- lib/proBoardGate.ts: isProBoardKind (STM32 + every QEMU Raspberry Pi),
  installBoardGateImpl/boardGateDecision, triggerProUpgradePrompt.
- PRO badge on those boards in the component picker; gate at the picker add +
  the run backstop (startBoard).
- backend/app/services/board_access.py: server-side enforcement seam for the
  simulation WebSocket; STM32/Pi unavailable -> Pro-framed message.
- desktop: generic QemuDownloadPrompt + Stm32QemuPrompt (download-behind-license,
  mirrors the ESP32 prompt).
- .gitignore: never ship libqemu-* binaries in the public image.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 19:06:14 -03:00
..
__tests__ test(desktop): unit tests for bannerFor + suppress redundant banner in lockout 2026-05-25 12:05:39 -03:00
DesktopWelcomePage.tsx feat(desktop): paywall v0.3.0 - LockoutOverlay + staged expiry banners 2026-05-24 21:16:48 -03:00
Esp32QemuPrompt.tsx fix: 5 user-reported issues (#208 #209 #210 #211 #212) 2026-05-26 22:06:58 -03:00
GraceBanner.tsx test(desktop): unit tests for bannerFor + suppress redundant banner in lockout 2026-05-25 12:05:39 -03:00
LockoutOverlay.tsx feat(desktop): paywall v0.3.0 - LockoutOverlay + staged expiry banners 2026-05-24 21:16:48 -03:00
QemuDownloadPrompt.tsx feat: STM32 (Blue Pill / Black Pill) QEMU emulation + Pro board gating 2026-05-30 19:06:14 -03:00
Stm32QemuPrompt.tsx feat: STM32 (Blue Pill / Black Pill) QEMU emulation + Pro board gating 2026-05-30 19:06:14 -03:00
UpdateAvailableToast.tsx feat(desktop): in-app update toast with auto-check at startup (v0.4.0) 2026-05-26 15:46:58 -03:00
desktop.css feat(desktop): in-app update toast with auto-check at startup (v0.4.0) 2026-05-26 15:46:58 -03:00
index.ts feat: STM32 (Blue Pill / Black Pill) QEMU emulation + Pro board gating 2026-05-30 19:06:14 -03:00
log.ts feat(desktop): native menubar bridge + best-effort file logger 2026-05-22 18:08:46 -03:00
menu.ts fix: 5 user-reported issues (#208 #209 #210 #211 #212) 2026-05-26 22:06:58 -03:00
tauriBridge.ts feat(flash): write compiled sketches to real USB boards (phases D1+D3) 2026-05-27 00:20:20 -03:00