Commit Graph

109 Commits

Author SHA1 Message Date
7dc4122778 feat: 添加时区设置功能,默认时区改为 CST-8
Some checks failed
Build / idf-build (push) Has been cancelled
Build & Release / build (push) Has been cancelled
- 新增 set_timezone LLM 工具,支持通过对话设置时区
- 新增 set_timezone / timezone_show CLI 命令
- 默认时区从 PST 改为 CST-8(中国标准时间 UTC+8)
- 支持 POSIX 格式和 18 个城市名映射(Asia/Shanghai 等)
- 时区通过 NVS 持久化存储(system_config namespace)
- config_show 中显示当前时区配置
- 更新 changelog.md 和 taolun.md 文档
2026-04-01 00:50:41 +08:00
eedc6757d8 使用中文提交内容
Some checks failed
Build / idf-build (push) Has been cancelled
适配ESP-IDF v6.0编译 补充项目相关文档

* 修复16处头文件缺失、flash配置错误、WiFi断开原因码兼容问题
* 新增ESP-IDF v6.0迁移适配文档
* 更新变更日志,补充v1.0.0功能清单及v1.1.0版本规划
* 整理讨论记录,新增v6.0适配及国内大模型接入内容
2026-03-31 21:34:59 +08:00
49d3a131b7 feat: 增加国内大模型厂商支持(硅基流动、火山方舟)
Some checks failed
Build / idf-build (push) Has been cancelled
- 创建通用提供商架构(llm_provider.h/c)
- 支持四个提供商:Anthropic、OpenAI、SiliconFlow、Volcengine
- 添加提供商特定的API密钥和Base URL配置
- 扩展CLI命令:set_siliconflow_key/url、set_volcengine_key/url
- 更新mimi_secrets.h.example配置模板
- 更新README.md文档说明
- 每个提供商支持独立的NVS存储配置
2026-03-31 19:37:15 +08:00
crispyberry
9f17f1d243 Merge pull request #150 from wjc1207/fix/feishu-md
Docs: Fix feishu subscription mode description
2026-03-16 09:58:05 +08:00
wjc1207
07ca630b69 Docs: fix feishu md subscription mode description 2026-03-14 23:13:27 +08:00
crispyberry
85459fb210 Merge pull request #127 from IRONICBo/feat/gpio-skill-support 2026-03-13 12:13:47 +08:00
Asklv
c1f13fa38c feat: allow lcd and rgb pins 2026-03-09 00:23:03 +08:00
Asklv
37c0b0d6ee fix: protect usb console pins 2026-03-09 00:23:03 +08:00
Asklv
c0ea5f22fb feat: align portal NVS keys 2026-03-08 23:04:24 +08:00
Asklv
f0e26fd338 feat: prefill portal settings 2026-03-08 23:04:19 +08:00
Asklv
163f946e50 feat: keep admin portal online 2026-03-08 23:04:14 +08:00
Asklv
16eb01b49a fix(build): add esp_driver_gpio dependency for GPIO tool 2026-03-08 12:32:37 +08:00
crispyberry
6c283553f9 feat: add WiFi onboarding captive portal
When no WiFi credentials are configured or connection fails, the device
automatically starts a soft AP (MimiClaw-XXXX) with a captive portal.
Users can configure WiFi, LLM, Telegram, Feishu, Proxy and Search
settings via a mobile-friendly web page, then the device restarts and
connects with the new credentials.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 12:15:26 +08:00
Asklv
52f3bee043 feat: add GPIO config section to mimi_config.h 2026-03-07 23:51:19 +08:00
Asklv
22ac11c9fd feat: add GPIO tool descriptions to agent system prompt 2026-03-07 23:50:32 +08:00
Asklv
d30b3611f3 feat: register GPIO tools in registry and build system 2026-03-07 23:50:32 +08:00
Asklv
46dc186a80 feat: implement gpio_write, gpio_read, gpio_read_all handlers 2026-03-07 23:50:32 +08:00
Asklv
e278264133 feat: add GPIO policy module and tool header 2026-03-07 23:50:32 +08:00
crispyberry
89ad0c30c1 Merge pull request #105 from IRONICBo/feat/skills-to-spiffs 2026-03-06 13:15:00 +08:00
Asklv
1ed434e5c2 fix(cli): run web_search in dedicated task to avoid REPL stack overflow
Signed-off-by: Asklv <boironic@gmail.com>
2026-03-03 01:39:12 +08:00
Asklv
7edcd31f8a fix(search): prevent web_search output overflow and expose tavily secret template
Signed-off-by: Asklv <boironic@gmail.com>
2026-03-03 01:25:30 +08:00
Asklv
443cb97f59 feat(search): add CLI web_search command and Tavily bearer auth
Signed-off-by: Asklv <boironic@gmail.com>
2026-03-03 01:20:01 +08:00
Asklv
77fb31d6bd chore: clean up skill_loader comments and extract_title signature
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-27 14:00:00 +08:00
Asklv
fc17355640 refactor: replace install_builtin with SPIFFS directory scan
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-27 10:00:00 +08:00
Asklv
f8b2a20c7a refactor: remove hardcoded BUILTIN_* skill string macros
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-26 16:00:00 +08:00
Bin Meng
22886cf0f2 chore: avoid hardcoding file paths via MIMI_SPIFFS_BASE
Use MIMI_SPIFFS_BASE to centralize file path definitions, making the
base path configurable instead of hardcoded.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
2026-02-26 11:37:34 +08:00
Bin Meng
f3ee76d3b0 fix: add missing stdlib.h include in heartbeat.c
The code calls free() without including <stdlib.h>, which triggers
implicit declaration warnings during the build.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
2026-02-25 22:14:53 +08:00
crispyberry
6d50db06ad Merge pull request #71 from mogenson/fix-get-current-time 2026-02-25 01:16:15 +08:00
Bo
04c80c9c7e hotfix(proxy): fix CLI/api mismatch and add proxy type defaults
Signed-off-by: Bo <boironic@gmail.com>
2026-02-24 19:16:00 +08:00
crispyberry
42f629588d Merge pull request #39 from mdreamfly/feature/proxy-socks5
feat: add socks5 proxy support
2026-02-24 13:25:34 +08:00
Michael Mogenson
2e3ed9f259 Fix get_current_time tool
On ESP IDF 5.5 the get_current_time tool returns ESP_ERR_NOT_FOUND because
there is no "Date" header. This is because esp_http_client_get_header
only reads request headers. Response headers are only available via the
HTTP_EVENT_ON_HEADER event callback. They're dispatched and freed as they're
parsed.

Register an event handler that captures the "Date" header during HTTP response
parsing. The date string from this header is available as part of user context
after the HTTP request is finished.
2026-02-22 21:45:25 -05:00
crispyberry
c06f706ffd chore: remove dead code and fix unsafe patterns
- Remove unused context_build_messages() (superseded by direct cJSON in agent_loop)
- Remove unused llm_chat() and its helper extract_text_* functions (superseded by llm_chat_tools)
- Remove ota_manager.c from build (never called)
- Remove config_screen.c stub from build (no-op module)
- Remove unused PWR_KEY_State, Button_GPIO_Get_Level; drop config_screen dependency from button_driver
- Fix incorrect type cast in tool_get_time.c (char[64] cast to char**)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:11:15 +08:00
Bo
b1d8f41f1c fix: dedupe telegram updates and persist update offset
Signed-off-by: Bo <boironic@gmail.com>
2026-02-20 00:08:05 +08:00
Bo
08e59f8216 fix: select console repl backend by enabled sdkconfig
Signed-off-by: Bo <boironic@gmail.com>
2026-02-20 00:08:05 +08:00
Bo
f0a2741e0c fix: restore non-display psram usage and clean stale qrcode log
Signed-off-by: Bo <boironic@gmail.com>
2026-02-20 00:08:05 +08:00
Bo
0c256d7653 refactor: replace psram allocations with standard heap
Signed-off-by: Bo <boironic@gmail.com>
2026-02-20 00:08:05 +08:00
Bo
ce198ccbe8 chore: remove display and rgb source trees
Signed-off-by: Bo <boironic@gmail.com>
2026-02-20 00:08:05 +08:00
Bo
ba28c5e60f refactor: remove runtime display and led interactions
Signed-off-by: Bo <boironic@gmail.com>
2026-02-20 00:08:05 +08:00
Bo
9c889ef3f2 build: drop display and led component dependencies
Signed-off-by: Bo <boironic@gmail.com>
2026-02-20 00:07:26 +08:00
Asklv
9c0812c5d9 build: align component manager IDF range to 5.5.x
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-18 21:30:00 +00:00
Asklv
84c04063b3 fix: allow build without mimi_secrets.h
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-18 20:10:00 +00:00
crispyberry
8a5133d477 chore: rename wifi_set command to set_wifi for consistency
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 16:00:18 +08:00
crispyberry
10c9a5ed5c fix: prevent device hang when no USB host connected
Switch primary console from USB Serial/JTAG to UART so log output
doesn't block when the device is powered by a wall charger. USB
Serial/JTAG remains available as secondary console for debugging.

Closes #60

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:16:55 +08:00
Bo
3232de772a chore: simplify llm serial log.
Signed-off-by: Bo <boironic@gmail.com>
2026-02-18 19:16:00 +08:00
Asklv
a7b3d67ecb chore(agent): document Tavily-first behavior for web_search
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-18 19:16:00 +08:00
Asklv
c4c66dda9e feat(cli): add set_tavily_key command and config visibility
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-18 19:16:00 +08:00
Asklv
2de7087e2b feat(search): route web_search through Tavily when key is configured
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-18 19:16:00 +08:00
Asklv
3a76f02f2f feat(search): implement Tavily HTTP client for direct and proxy modes
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-18 19:16:00 +08:00
Asklv
2ad5101a77 feat(search): add Tavily result formatter
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-18 19:16:00 +08:00
Asklv
34fde9c82c refactor(search): isolate Brave HTTP paths for multi-provider support
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-18 19:16:00 +08:00