velxio/frontend/src/utils
David Montero Crespo fd6829f645 merge: master (produccion) dentro de v3.2
Las dos ramas habian divergido: master llevaba el modo lenguaje ESP-IDF puro
(#139) y v3.2 la ruta de compilacion IDF v5.5 para toda la familia ESP32 mas
los arreglos de venv/toolchain. Ambas tocaban espidf_compiler.py.

Los dos lados son ejes ORTOGONALES y se conservan enteros:

  - use_idf5 / arduino_mode (v3.2): que arbol IDF usa el build (5.5 vs 4.4) y
    si cabe Arduino-como-componente.
  - pure_idf (master): el modo LENGUAJE que elige el usuario; sus ficheros son
    las fuentes del componente main con su propio app_main().

Resolucion:
  - _build_env acepta los tres. Un build IDF puro fuerza arduino_mode a falso:
    la plantilla CMake mete el componente arduino-esp32 en cuanto existe
    ARDUINO_ESP32_PATH, asi que dejarlo puesto compilaba el core de Arduino en
    un build que no tiene sketch. Lo cazaron los tests de master.
  - VELXIO_PURE_SKETCH solo con pure_idf, nunca con arduino_mode a falso a
    secas: un target sin core arduino-esp32 sigue entregando un SKETCH al
    traductor legacy y no debe tomar la rama del glob puro.
  - La identidad del build-dir suma los dos tokens (|idf:N|ard:N y |lang:pure):
    ningun par de esas combinaciones puede compartir un build/ configurado.
  - La cadena de escritura de fuentes queda pure_idf -> arduino_mode -> legacy.
  - sdkconfig: render de v3.2 (con target/use_idf5) mas el filtrado de simbolos
    CONFIG_ARDUINO* de master cuando el build es puro.

test/backend/unit/test_espidf_compiler.py: los 7 tests que ya estaban rotos en
v3.2 (AttributeError: idf5_path, fixture sin actualizar desde que se anadio la
seleccion de IDF) vuelven a pasar.

Verificado: backend 293 pasan / 0 fallan (v3.2 traia 7 rotos); frontend 2268
pasan / 0 fallan en los dos shards.
2026-07-25 21:52:00 +02:00
..
analytics.ts
…
boardPinMapping.ts fix(boards): isBoardComponent recognizes overlay-registered boards (CP3) 2026-07-24 01:43:15 +02:00
boardProtocols.ts fix(interconnect): classify Arduino Mega UART/I2C function-label pins 2026-06-12 08:29:03 +02:00
breadboardNets.ts feat: breadboard (full 830-point) + mini breadboard (170-point) parts 2026-07-15 21:50:36 +02:00
breadboardOccupancy.ts feat(breadboard): one-hole-one-wire selection rules + jumper colors 2026-07-21 05:49:23 +02:00
breadboardSnap.ts fix(breadboard): land agent-seated parts exactly under rotation 2026-07-19 22:01:41 +02:00
captureCanvasPreview.ts
…
compilationLogger.ts
…
countryFlag.ts
…
esp32ImageParser.ts
…
exampleToBuildNetlistInput.ts
…
fatImage.ts feat(microsd): SD-over-SPI card storage for AVR, RP2040 and ESP32 2026-06-11 03:59:53 +02:00
firmwareLoader.ts
…
generateExamplePreview.tsx
…
hexParser.ts
…
importProject.ts
…
keyButtonBindings.ts feat(simulator): map pushbuttons to keyboard keys 2026-07-18 04:02:01 +02:00
loadExample.ts feat(esp32): pure ESP-IDF language mode for the ESP32 family (#139) 2026-07-24 06:37:01 +02:00
pinPositionCalculator.ts feat(breadboard): green dots on pins plugged into a breadboard 2026-07-20 04:48:16 +02:00
projectPayload.ts feat(library-manifest): per-board manifests + autocomplete 2026-06-07 06:07:48 +02:00
reservedUsernames.ts
…
sdCardFiles.ts feat(microsd): SD-over-SPI card storage for AVR, RP2040 and ESP32 2026-06-11 03:59:53 +02:00
useSEO.ts seo: emit trailing-slash canonical + sitemap URLs 2026-06-15 06:10:32 +02:00
useTouchDevice.ts
…
uuid.ts
…
vlxFile.ts fix(editor): sync URL after New workspace + sever project identity on .vlx import 2026-07-18 08:24:06 +02:00
wireAutoRoute.ts fix(router): escape corridors for endpoint-in-obstacle + checked-elbow parity 2026-07-20 21:35:58 +02:00
wireColors.ts
…
wireHitDetection.ts feat(breadboard): Wokwi-style parts-on-breadboard — hole snapping + invisible seating wires 2026-07-18 08:47:25 +02:00
wireUtils.ts feat(breadboard): one-hole-one-wire selection rules + jumper colors 2026-07-21 05:49:23 +02:00
wokwiZip.ts feat(breadboard): Wokwi-style parts-on-breadboard — hole snapping + invisible seating wires 2026-07-18 08:47:25 +02:00
workspaceDraft.ts feat(editor): preserve in-progress workspace across a login redirect 2026-07-17 06:27:28 +02:00