diff --git a/AGENTS.md b/AGENTS.md index d4bc0c8..4721afc 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -69,6 +69,7 @@ xtensa-esp32s3-elf-nm -D Apps/MyApp/build/cmake-build-esp32s3/MyApp.app.elf | gr python .claude/skills/tactility-app-development/scripts/verify_symbols.py Apps/MyApp # Install to device (dashboard API port 80, not dev port 6666) +# Preferred: use reyna-cli (see "Device discovery & management via reyna-cli" below) $IDF_PYTHON_ENV_PATH/bin/python tactility.py Apps/MyApp install 192.168.68.112 esp32s3 # or dashboard directly: curl -X PUT http://192.168.68.112/api/apps/install -F "file=@build/MyApp.app" @@ -83,6 +84,41 @@ curl http://192.168.68.112/api/apps # list installed # If 6666 refused → use dashboard PUT above ``` +### Device discovery & management via reyna-cli + +`reyna-cli` (at `/Users/adolforeyna/.local/bin/reyna-cli`) wraps the Tactility LAN web API with a device registry +(`~/.hermes/local_devices.yaml`). Prefer it over raw IPs/curl for fleet discovery and management. Boards are +addressed by their stable registry **ID** (not IP — DHCP IPs change); `devices list` maps IDs→IPs. + +Registered Tactility boards (from `reyna-cli devices list`): + +| ID | IP | Board | +|----|----|-------| +| `kidosos_a790` | `.129` | Personal 3.5-inch Tactility Board (Dev) — USB `/dev/cu.usbmodem*` for serial | +| `kidosos_5c5c` | `.114` | Grace's 2.8-inch board | +| `kidosos_5690` | `.107` | Elias's 2.8-inch board | +| `kidosos_591c` | `.128` | Kitchen 2.8-inch board | +| `esp32_screen` | `.123` | ESP32 Screen | +| `little32` | `.122` | Little32 Kitchen ESP32 Screen | + +Commands: + +```bash +reyna-cli tactility discover # probe all boards; online/offline + sysinfo +reyna-cli devices list # registry (id, ip, display name, status) +reyna-cli tactility sysinfo kidsos_a790 # firmware/version/heap/psram/SD +reyna-cli tactility apps kidsos_a790 # installed apps +reyna-cli tactility install kidsos_5c5c build/MyApp.app # PUT install by device id +reyna-cli tactility run kidsos_5c5c one.tactility.myapp # launch app +reyna-cli tactility report kidsos_a790 # apps + SD + bible/podcast usage +# most commands accept --json for machine-readable output +``` + +Use a serial monitor on the USB board for loader/ELF diagnostics: `/dev/cu.usbmodem*` @ 115200 +(e.g. `idf5.5_py3.9_env/bin/python -m serial.tools.miniterm /dev/cu.usbmodem31201 115200`). This is how you +capture `E ELF: Can't find symbol X` on `.129` — `verify_symbols.py` only compares against local firmware +SOURCE and can pass even when the flashed firmware's export table differs. + ### manifest.properties ```properties