velxio/backend/app/api/routes
David Montero 1a112324ab feat(intellisense): GET /api/intellisense/type/{name} — members of one class
The completion-safe long-tail path. Feeding whole library symbol sets into
the editor's candidate pool was measured to make ranking worse (U8g2 alone
injects ~250 module-level class names; ArduinoJson dozens of ARDUINOJSON_*
macros). What does help is answering `client.` once tree-sitter has resolved
`client` to a declared type the embedded catalog does not know -- and for
that the engine needs "the members of type T", not "the symbols of library
L". This endpoint returns exactly that: symbols whose owner is the requested
class, from whichever cached library declares it, in the same payload shape
as /symbols/ so the engine's RemoteSymbolCache stores it unchanged.

Resolution: a class-name -> cache-entry index built once over the library
cache (each per-entry scan is already disk-cached), persisted under
.symbols/_types.json (3,818 classes / 199 KB over the 1,125-entry
production cache; ~1 s to rebuild from cached scans, ~60 s cold), refreshed
after a few hours or when the cache grows. Many classes are declared by more
than one library -- the real one plus forks and bundles vendoring a copy
(PubSubClient inside "ESP8266 Microgear", NTPClient inside "ESP8266 Weather
Station", AccelStepper inside "Arduino Learning Board") -- so the pick is:
the library named after the class, else the one declaring the most members
of it (vendored copies are trimmed), else alphabetical.

Generic, not pro-specific: any host with a library cache can use it.
2026-08-17 18:51:08 +02:00
..
__init__.py
…
compile.py fix(compile): lock the build DIRECTORY, not the FQBN — concurrent compiles swapped binaries 2026-08-17 09:12:26 +02:00
compile_chip.py
…
compile_rom.py
…
flash.py
…
intellisense.py feat(intellisense): GET /api/intellisense/type/{name} — members of one class 2026-08-17 18:51:08 +02:00
iot_gateway.py fix(gateway): keep in-browser WiFi boards reachable through the IoT gateway 2026-08-14 19:45:39 +02:00
libraries.py
…
news.py feat(news): rich media in posts - inline images/GIFs + YouTube click-to-play previews 2026-08-05 16:25:08 +02:00
simulation.py feat(pi): techo de capacidad para los guests QEMU (multiusuario) 2026-07-29 21:15:04 +02:00