[codex] fix esp32dev web init crash and restore STATUS payload #20

Merged
electron-rare merged 2 commits from codex/rtc-zeroclaw-orchestration-issue-18 into main 2026-02-21 02:09:10 +00:00
electron-rare commented 2026-02-21 02:07:04 +00:00 (Migrated from github.com)

Summary

Fix ESP32 audio dev (esp32dev) startup/runtime stability for terminal-driven hardware runs and publish linked ZeroClaw evidence docs.

Closes #21.

Issues fixed

  • Boot loop with assert failed: tcpip_api_call ... Invalid mbox
    • Cause: AsyncWebServer::begin() was called before Wi-Fi/LWIP stack init.
  • STATUS serial payload missing key fields
    • Cause: doc.to<JsonObject>() reset the document and dropped previously-set keys.

Code changes

  • src/main.cpp
    • add #include <WiFi.h>
    • initialize Wi-Fi AP (RTC_BL_PHONE) before g_web.begin() when mode is null
    • switch doc.to<JsonObject>() to doc.as<JsonObject>() in printStatusLine()

Evidence/docs updates

  • docs/zeroclaw_orchestration.md
    • add explicit esp32dev (A252-only) runbook for this bench
  • docs/rapport_hw.json
    • add machine-readable hardware evidence for this run
  • docs/rapport_tests_fonctionnels.md
    • append 2026-02-21 terminal campaign section (esp32 audio dev)

Validation executed (local)

  • python3 scripts/zeroclaw_hw_preflight.py --require-port --zeroclaw-bin /Users/cils/Documents/Lelectron_rare/Kill_LIFE/zeroclaw/target/release/zeroclaw
  • pio run -e esp32dev
  • pio run -e esp32dev -t upload --upload-port /dev/cu.SLAB_USBtoUART
  • Serial smoke:
    • PING -> PONG
    • STATUS returns board_profile, telephony, hook, full_duplex, audio_drop_frames
  • Boot log confirms stable startup without lwIP assert loop:
    • [RTC_BL_PHONE] AP ready: ssid=RTC_BL_PHONE ip=192.168.4.1
    • [WebServerManager] HTTP server started

Cross-repo coordination context

## Summary Fix ESP32 audio dev (`esp32dev`) startup/runtime stability for terminal-driven hardware runs and publish linked ZeroClaw evidence docs. Closes #21. ### Issues fixed - Boot loop with `assert failed: tcpip_api_call ... Invalid mbox` - Cause: `AsyncWebServer::begin()` was called before Wi-Fi/LWIP stack init. - `STATUS` serial payload missing key fields - Cause: `doc.to<JsonObject>()` reset the document and dropped previously-set keys. ## Code changes - `src/main.cpp` - add `#include <WiFi.h>` - initialize Wi-Fi AP (`RTC_BL_PHONE`) before `g_web.begin()` when mode is null - switch `doc.to<JsonObject>()` to `doc.as<JsonObject>()` in `printStatusLine()` ## Evidence/docs updates - `docs/zeroclaw_orchestration.md` - add explicit `esp32dev` (A252-only) runbook for this bench - `docs/rapport_hw.json` - add machine-readable hardware evidence for this run - `docs/rapport_tests_fonctionnels.md` - append 2026-02-21 terminal campaign section (esp32 audio dev) ## Validation executed (local) - `python3 scripts/zeroclaw_hw_preflight.py --require-port --zeroclaw-bin /Users/cils/Documents/Lelectron_rare/Kill_LIFE/zeroclaw/target/release/zeroclaw` - `pio run -e esp32dev` - `pio run -e esp32dev -t upload --upload-port /dev/cu.SLAB_USBtoUART` - Serial smoke: - `PING -> PONG` - `STATUS` returns `board_profile`, `telephony`, `hook`, `full_duplex`, `audio_drop_frames` - Boot log confirms stable startup without lwIP assert loop: - `[RTC_BL_PHONE] AP ready: ssid=RTC_BL_PHONE ip=192.168.4.1` - `[WebServerManager] HTTP server started` ## Cross-repo coordination context - Kill_LIFE follow-up merged: https://github.com/electron-rare/Kill_LIFE/pull/9 - Zacus stack PR merged: https://github.com/electron-rare/le-mystere-professeur-zacus/pull/101
chatgpt-codex-connector[bot] commented 2026-02-21 02:07:07 +00:00 (Migrated from github.com)

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/settings/usage). To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your [settings](https://chatgpt.com/codex/settings/code-review).
Sign in to join this conversation.