Three-part fix for the library-contamination class of ESP32 compile failures (a user's project kept pulling unrelated libraries because 79% of projects compile with an empty manifest, forcing scan-all resolution over ~1000 shared libraries): 1. Name-affinity ranking in _find_library_for_header: the provider whose name matches the header stem wins (exact normalized match > esp32 arch declaration > contains-stem, alphabetical only as tie-break). Previously first-alphabetical won, so any stray library shipping a generic header (Servo.h has 6 providers) could hijack the build. 2. Manifest auto-migration: scan-all compiles now report the libraries the build really used (manifest_incomplete + manifest_suggested_libraries on the compile result); the editor folds single-candidate suggestions into the board's declared manifest after a green build, so the NEXT compile runs scoped. One green build = one migrated project; empty-manifest scan-all behaviour is untouched. 3. Install-declares: the Wokwi import library modal records successful installs in the active board's manifest, and .vlx export/import now round-trips board.libraries. Tests: test_espidf_library_ranking.py (9) + library-manifest.test.ts (19). |
||
|---|---|---|
| .. | ||
| api | ||
| core | ||
| database | ||
| mcp | ||
| models | ||
| schemas | ||
| services | ||
| utils | ||
| __init__.py | ||
| main.py | ||