velxio/backend
David Montero 9a21df7a98 fix(esp32): resolve libqemu path on every call + read VELXIO_QEMU_PATH
The desktop Tauri wrapper drops the downloaded libqemu-xtensa.<ext>
inside the directory it exports as VELXIO_QEMU_PATH. The sidecar
previously only checked the dedicated QEMU_ESP32_LIB env var (full
path) plus a fixed file beside the module, so the in-app installer's
output was invisible — adding an ESP32 to the canvas right after
install reported "unavailable" until the sidecar was restarted.

Two changes:

1. New _resolve_lib() helper checks QEMU_ESP32_LIB first, then
   VELXIO_QEMU_PATH/<lib_name>, then the legacy module-adjacent path.
   Both Xtensa and RISC-V flow through the same resolver.

2. lib_xtensa_path() / lib_riscv_path() functions replace the module
   constants for all internal call sites (is_available,
   is_riscv_available, start_instance). Resolution happens per call,
   so a post-boot install is picked up without restarting the
   sidecar. The LIB_PATH / LIB_RISCV_PATH constants stay for any
   external readers but reflect import-time state only.

Pairs with the Tauri-side change that writes libqemu-xtensa.<ext>
directly to VELXIO_QEMU_PATH (no archive extraction).
2026-05-27 03:44:09 +02:00
..
app fix(esp32): resolve libqemu path on every call + read VELXIO_QEMU_PATH 2026-05-27 03:44:09 +02:00
scripts
sdk feat(chips): programmable retro CPU chips with external ROM 2026-05-18 23:38:18 -03:00
tests feat(compile): ESP-IDF compile options + request dedup 2026-05-18 21:50:45 -03:00
.env.example chore(oss): drop dead auth/DB dependencies from OSS image 2026-05-14 17:06:27 -03:00
Dockerfile fix(arduino-cli): pin ATTinyCore to 1.4.1 (azduino.com micronucleus host unreachable) 2026-05-22 15:15:53 +02:00
debug_qemu.py
mcp_server.py
mcp_sse_server.py
requirements.txt feat(sim): boot_images module + Pi 3 emulation restored 2026-05-16 05:41:46 +02:00