Skip to content

chore(deps): refresh ESP-SR and pin the CI toolchain - #34

Draft
steipete wants to merge 1 commit into
mainfrom
chore/deps-refresh-20260830
Draft

chore(deps): refresh ESP-SR and pin the CI toolchain#34
steipete wants to merge 1 commit into
mainfrom
chore/deps-refresh-20260830

Conversation

@steipete

@steipete steipete commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Updates the two room-node examples to ESP-SR 2.5.2 and keeps CI on the exact ESP-IDF version required by Tab5. This is a draft while local firmware build and on-device/QEMU validation remain incomplete.

Dependency changes

  • Both room nodes: ESP-SR minimum ^2.5.1^2.5.2. Upstream adds WakeNet10 w8a16 support and direction-of-arrival improvements; its ESP-DL minimum moves from 3.3.9 to 3.3.10. Upstream changelog.
  • CI image: moving release-v5.5 → stable v5.5.5, matching the Tab5 manifest's ==5.5.5 contract. 5.5.5 is still the latest stable 5.5 patch.
  • Run the existing diagnostics-metrics host test alongside the existing file-validation test in CI. No assertions or jobs removed; no new project dependencies.
  • Existing GitHub Action refs already include their latest releases: checkout 7.0.1, create-github-app-token 3.2.0, ESP-IDF CI action 1.2.0 and upload-components action 2.2.1.

Held upgrades

Dependency Available upgrade Reason and recommendation
ESP-IDF 5.5.5 6.1 Requires a separate framework/board migration, including changed LCD APIs and P4 silicon defaults. Retain the documented 5.5.5 contract.
esp_hosted 1.4.0 / esp_wifi_remote 0.8.5 3.0.6 / 1.6.4 Coordinate with the Tab5 C6 firmware; do not silently break the documented coprocessor pairing.
esp_websocket_client 1.6.1 / esp-protocols 1.8.0 Registry and vendored source must stay aligned. Required autoreview rejects submodule changes because referenced dependency content is absent from its bundle. Use a review workflow that can validate the upstream source delta.
esp-webrtc-solution 4135993 c57e51b (esp_peer 1.5.4) Same submodule-review limitation, plus binary peer-library updates. Retain current revision pending source/binary and hardware validation.

Existing transitive holds remain owned by upstream constraints: esp-dsp 1.8.0 (ESP-SR exact pin), codec-device ~1.5, media_lib_sal ~0.9, nghttp ~1.65.0, esp_audio_codec ~2.5, esp_audio_effects ~1.3, esp_asrc 1.0, sensor_hub ^0.1.4, and cmake_utilities 0.*. Newer esp_capture 1.0.31 requires ESP-SR 2.4 and codec-device 2.0 beta, incompatible with this graph. The Tab5 BSP registry release remains 1.2.01.

Local proof

Both existing host suites pass:

cc -std=c11 -Wall -Wextra -Werror -I components/esp-openclaw-room-node \
  components/esp-openclaw-room-node/room_file_validation.c \
  components/esp-openclaw-room-node/tests/test_room_file_validation.c \
  -o build-maintenance-20260830/room_file_validation_test
build-maintenance-20260830/room_file_validation_test
# room file validation tests passed

cc -std=c11 -Wall -Wextra -Werror -I components/esp-openclaw-room-node \
  components/esp-openclaw-room-node/room_diagnostics_metrics.c \
  components/esp-openclaw-room-node/tests/test_room_diagnostics_metrics.c \
  -lm -o build-maintenance-20260830/room_diagnostics_metrics_test
build-maintenance-20260830/room_diagnostics_metrics_test
# room diagnostics metric tests passed

Live host integration loads the compiled production library and validates the actual repository banner PNG:

cc -std=c11 -Wall -Wextra -Werror -shared -fPIC \
  -I components/esp-openclaw-room-node \
  components/esp-openclaw-room-node/room_file_validation.c \
  -o build-maintenance-20260830/libroom_file_validation.dylib
python3 build-maintenance-20260830/live-file-check.py

Actual output:

docs/assets/esp-openclaw-node-banner.png: PNG, 229561 bytes, base64 accepted, destination /sd/banner.png
/sd/../escape.png: rejected

The temporary integration driver uses Python ctypes to call room_file_inspect_base64 on base64.b64encode(Path('docs/assets/esp-openclaw-node-banner.png').read_bytes()), checks the returned length against the actual file size, and calls room_file_normalize_public_path for both displayed paths. This proves host integration only; it does not establish firmware or acoustic behavior.

actionlint and git diff --check pass. Codex autoreview completed scoped-clean at the requested default P0 threshold, with no accepted/actionable findings.

CI and remaining validation

The orchestrator reported NORUNS, but the actual latest default-branch CI run passed all five firmware builds. Component upload also passed; it is publication automation, while ClawSweeper Dispatch is operational automation. No default-branch test failure was found.

All five candidate CI builds passed, including both room nodes and the Unity test firmware. The Linux host-test step also passed.

Local firmware validation remains blocked by Docker setup: docker pull espressif/idf:v5.5.5 downloaded all layers but the image was still unavailable after more than 30 minutes; starting the already-present Ubuntu image also stalled for several minutes. Both task-owned attempts were stopped. Native idf.py and a physical ESP board are unavailable. No Docker restart or unrelated cache removal was performed. Full local firmware builds, the Unity device suite, and speech hardware checks are not claimed. CI proves all five builds, but this draft should remain unmerged until the missing local/runtime proof is resolved or explicitly accepted by the maintainer.

@clawsweeper

clawsweeper Bot commented Aug 31, 2026

Copy link
Copy Markdown

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

ClawSweeper review complete

ClawSweeper finished reviewing this revision. The review result is being finalized.

View the workflow run.

@clawsweeper clawsweeper Bot added merge-risk: 🚨 automation 🚨 Merging this PR could break CI, automerge, proof capture, label sync, or automation. merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. P2 Normal priority bug or improvement with limited blast radius. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Aug 31, 2026
@clawsweeper

clawsweeper Bot commented Aug 31, 2026

Copy link
Copy Markdown

Codex review: needs real behavior proof before merge. Reviewed September 11, 2026, 1:54 PM ET / 17:54 UTC (Revision 13).

ClawSweeper review

What this changes

Raises the ESP-SR speech-library minimum for both room-node examples, pins CI to ESP-IDF 5.5.5, adds the existing diagnostics test to CI, and records the update in the changelog.

Merge readiness

Blocked before merge - 4 items remain

This remains a useful, distinct dependency update: main retains the earlier minimum and moving SDK image, and the merged firmware-packaging work explicitly leaves SDK selection separate. No blocking code defect was established, but runtime compatibility remains unproven.

Priority: P2
Reviewed head: bbd18e1c60a5b9c09053985c118e5c6f8f4ba032

Review scores

Measure Result What it means
Overall readiness 🦪 silver shellfish (2/6) The patch is focused and builds successfully, but supplied runtime evidence does not cover its central dependency change.
Proof confidence 🦪 silver shellfish (2/6) Needs stronger real behavior proof before merge: Needs real behavior proof before merge: the supplied terminal integration validates unchanged file handling, while CI proves compilation; neither exercises the ESP-SR audio-front-end and WakeNet path after the dependency/toolchain update. Provide redacted serial logs or a recording with runtime diagnostics for both boards, identifying resolved versions and observed initialization and wake behavior. Remove private endpoints, credentials, and device identifiers. Updating the PR body should trigger re-review; otherwise ask a maintainer to comment @clawsweeper re-review. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Needs proof Needs stronger real behavior proof before merge: Needs real behavior proof before merge: the supplied terminal integration validates unchanged file handling, while CI proves compilation; neither exercises the ESP-SR audio-front-end and WakeNet path after the dependency/toolchain update. Provide redacted serial logs or a recording with runtime diagnostics for both boards, identifying resolved versions and observed initialization and wake behavior. Remove private endpoints, credentials, and device identifiers. Updating the PR body should trigger re-review; otherwise ask a maintainer to comment @clawsweeper re-review. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.
Evidence reviewed 10 items Verified introduced scope: The pinned base-to-head diff contains four files: two dependency manifests, CI, and the component changelog. It adds one diagnostics-test invocation and selects v5.5.5 without changing Action refs or permissions.
Main does not contain the complete requested change: Current main still selects release-v5.5; both room-node manifests retain ^2.5.1. Main independently runs the diagnostics test. The manifests are minimum ranges, so this comparison does not establish which ESP-SR version a fresh resolution installs.
Dependency contract and production consumer: The changed manifests directly require espressif/esp-sr. The shared audio source loads speech models, constructs the ESP-SR audio front end, and consumes WakeNet detections; this establishes the relevant dependency boundary and the runtime behavior needing coverage.
Findings None None.
Security None None.

How this fits together

The room-node firmware uses ESP-SR to process microphone audio and detect wake words before starting Talk sessions. Dependency manifests select that library, while CI builds firmware for the supported boards using ESP-IDF.

flowchart LR
  A[Dependency manifests] --> B[ESP-IDF firmware builds]
  B --> C[Room-node firmware]
  D[Microphone audio] --> E[Speech processing and wake detection]
  C --> E
  E --> F[Talk session]
Loading

Before merge

  • Add real behavior proof - Needs stronger real behavior proof before merge: Needs real behavior proof before merge: the supplied terminal integration validates unchanged file handling, while CI proves compilation; neither exercises the ESP-SR audio-front-end and WakeNet path after the dependency/toolchain update. Provide redacted serial logs or a recording with runtime diagnostics for both boards, identifying resolved versions and observed initialization and wake behavior. Remove private endpoints, credentials, and device identifiers. Updating the PR body should trigger re-review; otherwise ask a maintainer to comment @clawsweeper re-review. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.
  • Resolve merge risk (P1) - The changed speech-library minimum and SDK image lack device evidence that existing microphone, audio-front-end, and wake behavior remain functional on both boards.
  • Resolve merge risk (P1) - GitHub reports merge conflicts; compatibility with current firmware packaging and CI additions remains unverified until the branch is reconciled.
  • Complete next step (P2) - Resolve the current merge conflicts and supply after-update board runtime evidence before making the draft ready to merge.
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Firmware build coverage 5 of 5 candidate builds passed Compilation covers both changed board targets but does not establish acoustic compatibility.

Merge-risk options

Maintainer options:

  1. Validate board compatibility (recommended)
    Reconcile the branch and provide firmware identity plus device observations covering audio initialization and wake detection on both updated targets.
  2. Retain the current dependency requirements
    Pause the dependency update if board validation is unavailable, retaining current firmware behavior until evidence can be supplied.

Technical review

Best possible solution:

Use one consistent SDK selection and accurate firmware provenance, with resolved speech-library versions demonstrated to preserve fresh-boot and existing-device audio behavior.

Do we have a high-confidence way to reproduce the issue?

Not applicable: this is dependency maintenance, and no concrete current-main failure is reported or established.

Is this the best way to solve the issue?

Yes, raising the existing minimum and matching CI to the documented SDK contract is a narrow approach; its hardware compatibility still needs evidence.

AGENTS.md: not found in the target repository.

Codex review notes: model internal, reasoning medium; reviewed against 407dc9e59d35.

Labels

Label justifications:

  • P2: This is bounded dependency and CI maintenance without an established urgent user-facing failure.
  • merge-risk: 🚨 compatibility: Changing the speech-library minimum and SDK image can alter board audio behavior that successful builds do not validate.
  • rating: 🦪 silver shellfish: Overall readiness is 🦪 silver shellfish; proof is 🦪 silver shellfish and patch quality is 🐚 platinum hermit.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs stronger real behavior proof before merge: Needs real behavior proof before merge: the supplied terminal integration validates unchanged file handling, while CI proves compilation; neither exercises the ESP-SR audio-front-end and WakeNet path after the dependency/toolchain update. Provide redacted serial logs or a recording with runtime diagnostics for both boards, identifying resolved versions and observed initialization and wake behavior. Remove private endpoints, credentials, and device identifiers. Updating the PR body should trigger re-review; otherwise ask a maintainer to comment @clawsweeper re-review. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.

Evidence

What I checked:

  • Verified introduced scope: The pinned base-to-head diff contains four files: two dependency manifests, CI, and the component changelog. It adds one diagnostics-test invocation and selects v5.5.5 without changing Action refs or permissions. (.github/workflows/ci.yml:41, bbd18e1c60a5)
  • Main does not contain the complete requested change: Current main still selects release-v5.5; both room-node manifests retain ^2.5.1. Main independently runs the diagnostics test. The manifests are minimum ranges, so this comparison does not establish which ESP-SR version a fresh resolution installs. (.github/workflows/ci.yml:78, 407dc9e59d35)
  • Dependency contract and production consumer: The changed manifests directly require espressif/esp-sr. The shared audio source loads speech models, constructs the ESP-SR audio front end, and consumes WakeNet detections; this establishes the relevant dependency boundary and the runtime behavior needing coverage. (components/esp-openclaw-room-node/room_aec_src.c:124, bbd18e1c60a5)
  • Upstream purpose confirmed: The official upstream changelog lists w8a16 WakeNet10 support and DOA improvements for 2.5.2, consistent with the stated update. Its current manifest reports 2.5.3, so runtime evidence should identify the actual resolved version. Repository ownership was verified through the GitHub repository API. (CHANGELOG.md:9)
  • Build validation verified: The linked candidate run identifies the reviewed head and succeeded; its jobs API confirms all five firmware builds passed. These are build results, not device execution. (bbd18e1c60a5)
  • Captured proof coverage: The complete supplied body, sourceRevision 354bc2a622d30ce3a9c3a8ed8dfd412de2bef874c9a21da4d34119ea168d5c89, includes passing host suites and real ctypes file-validation output, while expressly disclaiming firmware and acoustic execution. That useful host evidence exercises an unchanged file-validation owner, not the upgraded speech pipeline. (bbd18e1c60a5)

Likely related people:

  • steipete: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)
  • vincentkoc: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)

Rank-up moves

Optional improvements that raise the rating; they are not merge blockers.

  • Resolve conflicts against current main, retaining one diagnostics-test invocation and keeping firmware image metadata consistent with the selected SDK.
  • Add redacted device evidence for both boards showing the resolved dependency versions, audio initialization, and wake detection after the update.

Rating scale

Score Internal tier Crab rank Meaning
6/6 S 🦀 challenger crab Exceptional readiness
5/6 A 🦞 diamond lobster Very strong readiness
4/6 B 🐚 platinum hermit Good normal PR; ordinary maintainer review
3/6 C 🦐 gold shrimp Useful, but confidence is limited
2/6 D 🦪 silver shellfish Proof or implementation needs work
1/6 F 🧂 unranked krab Not merge-ready
N/A NA 🌊 off-meta tidepool Rating does not apply

Overall follows the weaker of proof and patch quality.
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Workflow

  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

History

Review history (12 earlier review cycles; latest 8 shown)
  • reviewed 2026-09-02T12:16:30.176Z sha bbd18e1 :: needs real behavior proof before merge. :: none
  • reviewed 2026-09-02T18:34:37.652Z sha bbd18e1 :: needs real behavior proof before merge. :: none
  • reviewed 2026-09-02T22:24:18.224Z sha bbd18e1 :: needs real behavior proof before merge. :: none
  • reviewed 2026-09-03T11:59:48.981Z sha bbd18e1 :: needs real behavior proof before merge. :: [P2] Remove the duplicate diagnostics host test after rebasing
  • reviewed 2026-09-03T13:28:54.876Z sha bbd18e1 :: needs real behavior proof before merge. :: [P2] Remove the duplicate diagnostics host test during rebase
  • reviewed 2026-09-03T19:04:19.169Z sha bbd18e1 :: needs real behavior proof before merge. :: [P2] Remove the duplicate diagnostics test during rebase
  • reviewed 2026-09-04T09:13:26.627Z sha bbd18e1 :: needs real behavior proof before merge. :: [P2] Avoid a duplicate diagnostics test when rebasing
  • reviewed 2026-09-04T17:58:52.817Z sha bbd18e1 :: needs real behavior proof before merge. :: none

@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. merge-risk: 🚨 automation 🚨 Merging this PR could break CI, automerge, proof capture, label sync, or automation. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. labels Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. P2 Normal priority bug or improvement with limited blast radius. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant