Commit Graph

21 Commits

Author SHA1 Message Date
Asklv
163f946e50 feat: keep admin portal online 2026-03-08 23:04:14 +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
0072906d9f feat: wire feishu into app and cli
Signed-off-by: Asklv <boironic@gmail.com>
2026-03-03 10:16: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
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
ba28c5e60f refactor: remove runtime display and led interactions
Signed-off-by: Bo <boironic@gmail.com>
2026-02-20 00:08:05 +08:00
Bo
cba7444b26 fix: fix telegram sent error in cron task.
Signed-off-by: Bo <boironic@gmail.com>
2026-02-18 17:16:00 +08:00
crispyberry
31a88b53c0 feat: add skills system with weather, daily-briefing, and skill-creator
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 01:06:16 +08:00
crispyberry
ebff0ccb04 feat: add heartbeat service for periodic task checking
Adds a heartbeat timer that reads /spiffs/config/HEARTBEAT.md every 30
minutes and sends a prompt to the agent if actionable tasks are found.
Skips empty lines, headers, and completed checkboxes. Includes a
heartbeat_trigger CLI command for manual testing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 01:23:13 +08:00
crispyberry
dbab65bd47 feat: add cron scheduled task service with tool_use integration
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 01:02:33 +08:00
crispyberry
680f41133a Merge pull request #28 from IRONICBo/feat/add-onboarding-view
feat: add interactive onboarding view
2026-02-16 22:47:07 +08:00
Bo
7918bab27d feat: add config view for lvgl.
Signed-off-by: Bo <boironic@gmail.com>
2026-02-10 15:58:19 +08:00
Bo
106fe3b5b0 feat: add mimiclaw onboarding page.
Signed-off-by: Bo <boironic@gmail.com>
2026-02-10 15:58:12 +08:00
Bo
e79e4e4932 feat: add wifi scaner in uart.
Signed-off-by: Bo <boironic@gmail.com>
2026-02-10 15:57:14 +08:00
crispyberry
82f93b617b refactor: remove NVS/CLI config, use mimi_secrets.h as sole configuration method
All configuration is now done exclusively through mimi_secrets.h at build time.
Removed NVS read/write logic, CLI config commands (wifi_set, set_tg_token,
set_api_key, set_model, set_proxy, clear_proxy, set_search_key), and setter
functions from all modules. CLI retains debug/maintenance commands only.
Updated all documentation to reflect the change.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 23:04:24 +08:00
crispyberry
dbeaea2b2b fix: silence noisy esp-x509-crt-bundle INFO logs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 10:46:35 +08:00
crispyberry
0e1da79b74 feat: add ReAct agent loop and build-time config (mimi_secrets.h)
Rewrite agent_loop.c with ReAct tool use loop: LLM call → tool
execution → repeat until end_turn (max 10 iterations). Add tool
guidance to system prompt. Add set_search_key CLI command.

Add mimi_secrets.h for build-time credentials with highest priority
over NVS/CLI values. All modules (wifi, telegram, llm, proxy,
web_search) check build-time secrets first, fall back to NVS.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 00:37:43 +08:00
crispyberry
3822928e6d feat: add HTTP CONNECT proxy support for Telegram and Claude API
Enable ESP32-S3 to reach api.telegram.org and api.anthropic.com through
an HTTP CONNECT proxy (e.g. Clash Verge), required in regions where
these services are blocked.

- New proxy module (http_proxy.c/h): CONNECT tunnel + TLS via esp_tls
  with pre-connected socket injection (esp_tls_set_conn_sockfd)
- Telegram and LLM modules split into direct/proxy paths
- CLI commands: set_proxy <host> <port>, clear_proxy
- Proxy config persisted in NVS
- Fix TLS buffer: MBEDTLS_SSL_IN_CONTENT_LEN 4096 → 16384
- Increase task stacks for TLS overhead (poll 12KB, agent 12KB, outbound 8KB)
- Default model changed to claude-opus-4-6
- Capture raw error body for non-200 API responses

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 22:40:28 +08:00
crispyberry
fa4582bf70 feat: wire up app_main with all subsystems
Startup sequence: NVS → SPIFFS → bus → memory → WiFi → CLI →
Telegram → agent loop → WebSocket → outbound dispatch.
CMakeLists registers all source files and ESP-IDF dependencies.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:56:04 +08:00
crispyberry
e676abf2d2 feat: new project 2026-02-05 12:38:18 +08:00