Commit Graph

168 Commits

Author SHA1 Message Date
Asklv
2b68d56c69 feat: include spiffs.bin in release and switch console to USB-JTAG
Add spiffs.bin to CI release artifacts and merged firmware image.
Switch primary console from UART to USB-Serial-JTAG so web serial
monitor can interact with the device directly over USB.
2026-03-16 11:00:00 +08:00
crispyberry
d48c679cc5 Merge pull request #114 from IRONICBo/feat/support-tavily-websearch 2026-03-06 00:12:32 +08:00
crispyberry
3a1c1e93de Merge pull request #115 from IRONICBo/feat/add-feishu-integration 2026-03-05 10:59:04 +08:00
Asklv
040f5bed0f feat: use websocket for feishu inbound
Signed-off-by: Asklv <boironic@gmail.com>
2026-03-04 19:16:00 +08:00
Asklv
a9fd606672 feat: add feishu_send cli command
Signed-off-by: Asklv <boironic@gmail.com>
2026-03-03 21:16:00 +08:00
Asklv
f076359900 refactor: increase feishu id buffer size
Signed-off-by: Asklv <boironic@gmail.com>
2026-03-03 20:16:00 +08:00
Asklv
50bcd1aa42 docs: add feishu integration readme
Signed-off-by: Asklv <boironic@gmail.com>
2026-03-03 19:16:00 +08:00
Asklv
0072906d9f feat: wire feishu into app and cli
Signed-off-by: Asklv <boironic@gmail.com>
2026-03-03 10:16: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
56c6db438a feat: add feishu bot core
Signed-off-by: Asklv <boironic@gmail.com>
2026-03-02 19:16:00 +08:00
Asklv
d5dc6322d5 feat: add feishu bot header api
Signed-off-by: Asklv <boironic@gmail.com>
2026-03-01 19:16:00 +08:00
crispyberry
6b2eb9c30f Merge pull request #104 from IRONICBo/feat/remove-imu-device 2026-03-01 15:10:11 +08:00
Asklv
7b29fa20d7 chore: add feishu config defaults
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-28 19:16:00 +08:00
crispyberry
f1571118f0 hotfix: decode chunked transfer encoding in proxy LLM path
The proxy path (llm_http_via_proxy) stripped HTTP headers but did not
decode chunked transfer-encoding, leaving hex size prefixes in the body
and causing cJSON_Parse to fail with 0 bytes text.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 09:48:15 +08:00
crispyberry
1ccaa09d57 docs: note UART/COM port requirement in CLI Commands heading
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 02:23:34 +08:00
crispyberry
3d806541f7 docs: simplify UART/JTAG port section with collapsible details
Keep the essential port-to-use-case table and REPL warning visible,
move protocol details and workflow commands into <details> collapse.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 02:20:41 +08:00
crispyberry
bc773d11f4 Merge pull request #106 from IRONICBo/docs/uart-repl-guide 2026-02-28 02:06:09 +08:00
Asklv
ed3c884e17 refactor: move telegram channel files
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-27 19:16:00 +08:00
Asklv
c46f78d88e docs: add USB(JTAG) vs UART port guide for REPL usage
Add a detailed section to all three READMEs (EN, CN, JA) explaining
the difference between the USB (JTAG) and UART (COM) ports on
ESP32-S3 boards. Clarifies that the REPL CLI requires the UART port
and documents behavior when both ports are connected simultaneously.

Signed-off-by: Asklv <boironic@gmail.com>
2026-02-27 16:00:00 +08:00
crispyberry
70cd1a0eb7 Merge pull request #101 from IRONICBo/feat/readme-contributors-wall
docs(readme): add contributors avatar wall
2026-02-27 11:38:37 +08:00
Asklv
0e4a3dcc11 docs(readme): add contributors wall to CN and JA docs
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-27 00:55:09 +08:00
Asklv
2a474fe781 docs(readme): add contributors avatar wall
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-27 00:50:28 +08:00
crispyberry
e9a9211d89 Merge pull request #95 from lbmeng/spiffs 2026-02-26 13:46:15 +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
Asklv
785259d3e2 chore: remove unused config_screen UI stubs
Remove the ui/ directory containing config_screen stubs that were
left over from the display removal. This code was not compiled
(not listed in CMakeLists.txt) and had no callers.

Signed-off-by: Asklv <boironic@gmail.com>
2026-02-26 10:00:00 +08:00
crispyberry
f9086e4f89 Merge pull request #93 from lbmeng/header 2026-02-26 00:51:55 +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
Asklv
e9081fdb8f build: remove IMU and button sources from CMakeLists.txt
Remove button and IMU source files from the build. Drop the 'driver'
component dependency which was only needed for GPIO/I2C used by the
removed peripherals.

Signed-off-by: Asklv <boironic@gmail.com>
2026-02-25 14:00:00 +08:00
Asklv
cc20ae58d9 refactor: remove IMU and button init calls from app_main
Remove button_Init(), imu_manager_init(), and
imu_manager_set_shake_callback() calls from mimi.c along with
their corresponding include directives.

Signed-off-by: Asklv <boironic@gmail.com>
2026-02-25 10:00:00 +08:00
crispyberry
6d50db06ad Merge pull request #71 from mogenson/fix-get-current-time 2026-02-25 01:16:15 +08:00
crispyberry
51949aba27 Merge pull request #86 from IRONICBo/hotfix/proxy-compat-fix 2026-02-25 01:15:39 +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
Asklv
b5a609e174 refactor: remove button driver and GPIO input code
Remove the buttons/ directory including multi_button library and
button_driver. Physical button input is not needed for the current
headless Telegram/WebSocket interaction model.

Signed-off-by: Asklv <boironic@gmail.com>
2026-02-24 14:00:00 +08:00
crispyberry
efaf40f678 Merge pull request #83 from IRONICBo/fix/docs-links-polish
docs: fix contributing links and polish localized wording
2026-02-24 13:26:58 +08:00
Bo
1476934da7 docs: localize contributing headings in cn and ja readmes
Signed-off-by: Bo <boironic@gmail.com>
2026-02-24 20:28: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
Asklv
ea3ba0b966 refactor: remove IMU driver and QMI8658 sensor files
Remove the entire imu/ directory including I2C_Driver, QMI8658
accelerometer/gyroscope driver, and imu_manager. These hardware
peripherals are not used in the current mimiclaw product scope.

Signed-off-by: Asklv <boironic@gmail.com>
2026-02-24 10:00:00 +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
Bo
9433fc7241 docs: fix contributing links and polish localized wording
Signed-off-by: Bo <boironic@gmail.com>
2026-02-22 19:16:00 +08:00
crispyberry
9c3dbc441b Merge pull request #73 from memovai/cleanup/remove-dead-code 2026-02-22 16:53:55 +08:00
crispyberry
0bd1921c2a Merge pull request #72 from mogenson/mimiclaw-hostname 2026-02-22 16:53:38 +08: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
Michael Mogenson
a70bad385f Change network hostname from 'espressif' to 'mimiclaw'
Small change to sdkconfig.defaults that helps make this device more
identifiable on the local network.
2026-02-20 18:36:08 -05:00
crispyberry
0b9e66aa4a chore: move CONTRIBUTE.md to repo root as CONTRIBUTING.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 01:19:10 +08:00
crispyberry
37a141df07 Merge pull request #64 from IRONICBo/chore/simplify-device-usage
refactor: remove LCD/LED dependencies and fix Telegram duplicate update handling
2026-02-20 00:37:27 +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