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>
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>
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>
Bring back two-layer configuration: build-time defaults from mimi_secrets.h
with runtime NVS overrides via serial CLI. NVS values take highest priority
so a pre-flashed board can be reconfigured anywhere with just a USB cable.
Restored CLI commands: wifi_set, set_tg_token, set_api_key, set_model,
set_proxy, clear_proxy, set_search_key. Added new commands: config_show
(displays all config with sensitive fields masked), config_reset (clears
all NVS overrides), and help (lists all commands).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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>
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>
CLI task stack is 4KB; the 4096-byte stack buffer in cmd_memory_read
was overflowing and corrupting the heap. Use malloc instead.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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>