velxio/backend/app/api/routes
David Montero 3fe1766dc8 feat(P2.1h): no-manifest + scan-all-retry resolve from the content-addressed cache, not the global volume
The last paths that read the shared global /root/Arduino/libraries: a compile
with NO manifest (libraries=null — any from-scratch/anon sketch; the manifest is
never auto-derived from #includes) and the incomplete-manifest scan-all retry
(which re-enters compile unscoped). Both fell through to the global dir,
bypassing the cache entirely (a cached lib still failed when global was gone).

Now, when no scope is materialized, point the library search at the cache: the
cache root is itself a valid Arduino libraries dir (each <name@ver-sha> child is
a library), exposed via env (pro overlay sets them):
  - arduino-cli: ARDUINO_DIRECTORIES_USER = VELXIO_FALLBACK_SKETCHBOOK (whose
    libraries/ -> cache root) when scope_dir is None.
  - ESP-IDF: _find_arduino_libraries_dir() prefers VELXIO_FALLBACK_LIBRARIES_DIR.
Unset (OSS self-host) -> legacy global, unchanged.

Also strip a trailing @version from manifest names (_bare_lib_names): norm_name
fused 'ArduinoJson@6.21.5' -> 'arduinojson6215' (cache miss -> global scan-all);
the per-board boards_json manifest is the path that still carries @version.
2026-06-08 06:02:55 +02:00
..
__init__.py feat: Implement Arduino Simulator with component management and simulation features 2026-03-03 00:20:49 -03:00
compile.py feat(P2.1h): no-manifest + scan-all-retry resolve from the content-addressed cache, not the global volume 2026-06-08 06:02:55 +02:00
compile_chip.py refactor(oss-split): introduce extension hooks for auth, DB, metrics, auto-save 2026-05-14 13:24:51 -03:00
compile_rom.py feat(chips): C-to-Z80 compile via SDCC + LED chaser example 2026-05-19 00:31:10 -03:00
flash.py feat(flash): write compiled sketches to real USB boards (phases D1+D3) 2026-05-27 00:20:20 -03:00
iot_gateway.py feat(hooks): iot_gateway_gate extension point + content-negotiated 402 2026-05-29 19:44:30 +02:00
libraries.py feat(P2.1): install index libraries by WARMING the shared cache (not the global dir) 2026-06-07 22:33:05 +02:00
simulation.py feat: STM32 (Blue Pill / Black Pill) QEMU emulation + Pro board gating 2026-05-30 19:06:14 -03:00