From 2be3c2cb1a4de54ed8fd5638fb74505c6005cce4 Mon Sep 17 00:00:00 2001 From: Aayush Pratap Singh Date: Sat, 2 May 2026 03:53:25 +0530 Subject: [PATCH] fix(mcp): always register self.assets.set_download_url tool for 32MB flash devices (#1971) * fix(m5stack-tab5): remove stale esp_video==0.7.0 dependency instructions The README previously instructed users to override esp_video to 0.7.0 and esp_ipa to 0.1.0, but this causes build failures because: - esp_video 0.7.0 does not export esp_video_deinit(), resulting in linker errors ('MAP_FAILED' and 'esp_video_deinit' not declared) - The project's main/idf_component.yml already pins the correct version (esp_video==1.3.1) that the source code expects Users should now use the default dependency versions from idf_component.yml without modification. Fixes #1957 * fix(mcp): always register self.assets.set_download_url tool On 32MB flash devices the assets partition layout differs from the default, causing partition_valid() to return false and silently skipping registration of the self.assets.set_download_url MCP tool. Users see 'Unknown tool: self.assets.set_download_url' from their MCP client. The tool writes to Settings storage which works regardless of the partition map, so the partition_valid() guard is unnecessary. Move the AddUserOnlyTool call outside the guard so the tool is always available for explicit configuration via MCP. Fixes #1962 --------- Co-authored-by: Aayush Pratap Singh --- main/boards/m5stack-tab5/README.md | 28 ++++------------------------ main/mcp_server.cc | 6 ++---- 2 files changed, 6 insertions(+), 28 deletions(-) diff --git a/main/boards/m5stack-tab5/README.md b/main/boards/m5stack-tab5/README.md index e2bf77e..a0cd891 100644 --- a/main/boards/m5stack-tab5/README.md +++ b/main/boards/m5stack-tab5/README.md @@ -8,27 +8,9 @@ ## 基础使用 -* idf version: v6.0-dev +* idf version: v5.5.2 or above (recommended: v6.0-dev) -1. 调整 idf_component.yml - -将 -```yaml - espressif/esp_video: - version: ==1.3.1 # for compatibility. update version may need to modify this project code. - rules: - - if: target not in [esp32] -``` -修改为 -```yaml - espressif/esp_video: - version: '==0.7.0' - rules: - - if: target not in [esp32] - espressif/esp_ipa: '==0.1.0' -``` - -* idf version: v5.5.3 +* No dependency override needed — the project already specifies the correct `esp_video` and `esp_ipa` versions in `main/idf_component.yml`. Do NOT change the dependency versions unless you are also modifying the source code to match the older API. 针对 ESP32-P4 Rev <3.0 用户: 确保你的 sdkconfig.defaults 包含: @@ -37,7 +19,7 @@ CONFIG_ESP32P4_SELECTS_REV_LESS_V3=y 否则烧写的时候会出现:'bootloader/bootloader.bin' requires chip revision in range [v3.0 - v3.99] (this chip is revision v1.x) -2. 使用 release.py 编译 +1. 使用 release.py 编译 ```shell python ./scripts/release.py m5stack-tab5 @@ -45,7 +27,7 @@ python ./scripts/release.py m5stack-tab5 如需手动编译,请参考 `m5stack-tab5/config.json` 修改 menuconfig 对应选项。 -3. 编译烧录程序 +2. 编译烧录程序 ```shell idf.py flash monitor @@ -62,5 +44,3 @@ idf.py flash monitor 1. listening... 需要等几秒才能获取语音输入??? 2. 亮度调节不对 3. 音量调节不对 - -## TODO diff --git a/main/mcp_server.cc b/main/mcp_server.cc index 7cd7ba0..bc96f08 100644 --- a/main/mcp_server.cc +++ b/main/mcp_server.cc @@ -284,10 +284,8 @@ void McpServer::AddUserOnlyTools() { } #endif // HAVE_LVGL - // Assets download url - auto& assets = Assets::GetInstance(); - if (assets.partition_valid()) { - AddUserOnlyTool("self.assets.set_download_url", "Set the download url for the assets", + // Assets download url (always registered — Settings storage works regardless of partition layout) + AddUserOnlyTool("self.assets.set_download_url", "Set the download url for the assets", PropertyList({ Property("url", kPropertyTypeString) }),