Commit Graph

124 Commits

Author SHA1 Message Date
crispyberry
dd17c74eee docs: features 2026-02-06 18:55:11 +08:00
crispyberry
1b5f00bea5 feat: add app_update dependency and sdkconfig defaults
Add app_update component to CMakeLists REQUIRES for OTA version
reporting. Add sdkconfig.defaults scaffold and gitignore nanobot
reference repo.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 18:44:51 +08:00
crispyberry
3b53610bdf docs: rewrite README for general audience, move tech details to docs
Simplified language, plain diagrams, human-readable memory table.
Technical architecture stays in docs/ARCHITECTURE.md.
No Linux, inspired by OpenClaw.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 19:12:20 +08:00
crispyberry
bf772cb892 docs: add architecture design and feature gap tracker
ARCHITECTURE.md covers system diagram, data flow, module map,
task layout, memory budget, flash partitions, NVS config,
protocols, and nanobot reference mapping.
TODO.md tracks unimplemented features vs nanobot (P0/P1/P2).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:56:14 +08:00
crispyberry
40412c6dba feat: add SPIFFS default data (SOUL.md, USER.md, MEMORY.md)
Pre-built content for flashing to SPIFFS partition:
personality definition, user profile template, empty memory.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:56:09 +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
0b9aef22a7 feat: add OTA firmware update from URL
Wraps esp_https_ota for over-the-air updates via HTTPS.
Dual OTA partitions enable safe rollback.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:55:59 +08:00
crispyberry
44790d016b feat: add serial CLI with 12 configuration commands
esp_console REPL over USB-JTAG: wifi_set, set_tg_token,
set_api_key, set_model, memory_read/write, session_list/clear,
heap_info, restart.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:55:54 +08:00
crispyberry
9435302063 feat: add WebSocket gateway on port 18789
JSON protocol server using esp_http_server with WS upgrade.
Supports up to 4 concurrent clients, auto-assigned chat_id,
routes messages through the agent via message bus.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:55:49 +08:00
crispyberry
3365db45b9 feat: add memory store and session manager
MEMORY.md for long-term memory, daily YYYY-MM-DD.md notes.
JSONL session files per chat_id with ring buffer history
(max 20 messages). All persisted on SPIFFS.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:55:44 +08:00
crispyberry
0c517b734f feat: add agent loop and context builder
Agent loop runs on Core 1: pops inbound messages, builds system
prompt from bootstrap files + memory, calls Claude API, saves
session, pushes response to outbound queue. PSRAM-allocated buffers.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:55:38 +08:00
crispyberry
cbd137c3fa feat: add Claude API proxy with SSE streaming parser
Anthropic Messages API integration with streaming response.
Parses content_block_delta SSE events, accumulates text tokens.
API key and model stored in NVS.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:55:32 +08:00
crispyberry
44a82520e2 feat: add Telegram bot with long polling and message splitting
Direct HTTPS long polling against Telegram Bot API (getUpdates),
JSON parsing with cJSON, auto-split at 4096 chars, Markdown
with plain-text fallback.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:55:28 +08:00
crispyberry
efb3e09929 feat: add FreeRTOS message bus (inbound + outbound queues)
mimi_msg_t carries channel/chat_id/content between tasks.
Decouples input channels from agent loop and output dispatch.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:55:23 +08:00
crispyberry
0ebd1ccb20 feat: add WiFi manager with NVS credentials and auto-reconnect
STA mode, reads SSID/password from NVS, exponential backoff
reconnect (1s-30s), EventGroup for connection state.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:55:17 +08:00
crispyberry
db3a8b1202 feat: add sdkconfig defaults, partition table, and global config
16MB flash with custom partitions (2x2MB OTA + 12MB SPIFFS),
PSRAM/WiFi/TLS tuning, and centralized compile-time constants.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:55:12 +08:00
crispyberry
2d0660ab58 chore: add .gitignore and sdkconfig.defaults.esp32s3 2026-02-05 18:15:08 +08:00
crispyberry
2f1a7b6199 Merge remote-tracking branch 'origin/main' 2026-02-05 12:40:09 +08:00
crispyberry
e676abf2d2 feat: new project 2026-02-05 12:38:18 +08:00
crispyberry
7e87831f3f docs: big name, done 2026-02-04 23:40:18 +08:00
crispyberry
8cfd68e5c3 Add lobster pixel art banner to README
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 17:49:34 +08:00
crispyberry
1d1ac71369 Fix clone URL to correct repo address
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 12:40:36 +08:00
crispyberry
cf567b3585 Add project README with architecture, roadmap, and usage docs
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 12:37:56 +08:00
crispyberry
52f5695b76 first commit 2026-02-04 12:27:23 +08:00