ci: publish traceable example firmware bundles - #37
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs maintainer review before merge. Reviewed September 10, 2026, 5:49 AM ET / 09:49 UTC (Revision 4). ClawSweeper reviewWhat this changesThe PR packages four example firmware builds into downloadable CI artifacts with flashing instructions, checksums, and source, SDK, dependency, and board-configuration provenance. Merge readiness✅ Ready for maintainer review This PR remains useful: current main does not provide downloadable firmware bundles. No blocking defect was found, and the previous draft-only blocker is resolved. Priority: P2 Review scores
Verification
How this fits togetherThe example CI jobs compile firmware for supported ESP boards. The new packaging step turns their build outputs and metadata into downloadable bundles for explicitly selected devices. flowchart LR
A[Four example builds] --> B[Images and build metadata]
B --> C[Validate targets and public configuration]
C --> D[Package images and provenance]
D --> E[Upload CI artifacts]
E --> F[Verify checksums and select device]
Before mergeNone. Agent review detailsSecurityNone. Review metrics
Technical reviewBest possible solution: Retain a single CI packaging path with explicit provenance and flashing precautions, while keeping release publication and hardware qualification separate. Do we have a high-confidence way to reproduce the issue? Not applicable: this adds artifact distribution rather than repairing an established runtime failure; current main's CI lacks that capability. Is this the best way to solve the issue? Yes. Packaging the existing ESP-IDF flash map after successful builds avoids a parallel build path and preserves the existing SDK and device configuration. AGENTS.md: not found in the target repository. Codex review notes: model internal, reasoning medium; reviewed against 675485e6b388. LabelsLabel justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (3 earlier review cycles) |
Problem
The example CI jobs build firmware but do not retain downloadable bundles with enough provenance to distinguish the built source, SDK, and board configuration.
Changes
Checks
actionlintandgit diff --checkpassed.c3867131285ecd0f3ddc6c7c644b4d71282f5a84: all five builds passed in https://github.com/openclaw/esp-openclaw-node/actions/runs/34130585677.10022176321(2.75 MiB): the artifact digest, all 11 file checksums, and four offset-mapped flash images were verified. Download verification is limited to this Tab5 bundle.e37937d8b3b796a5f4c64d7207d729371f49f3fd, distinct from the PR head. Its actual IDF commit is362a1776ec212788fda95f75b733bfdde3a0c394, build revisionv5.5.5-648-g362a1776ec2, with esptool4.12.0.The observed SDK comes from the existing moving
release-v5.5image, not the pristinev5.5.5tag. SDK-selection changes remain separate from this PR: #34.Hardware Smoke Evidence
The actual test-merge image identified above was flashed onto an M5Stack Tab5 with ESP32-P4 revision 1.3 and 16 MiB flash. A full-flash erase and four image writes completed with hash verification. ST7121 LCD selection and readable local diagnostics rendering were observed. External Osmo Pocket 3 measurement confirmed approximately one second of 1 kHz speaker output.
Microphone/AFE activity was observed, but controlled speech response was inconclusive. Physical touch, the Tab5 camera, network pairing, Canvas RPC, and provider Talk were not run. No provider API calls were made and no provider key was loaded.
The initial diagnostics-close attempt hit a display-lock
TIMEOUT. UI progress was verified, then one explicit retry closed diagnostics. This intermittent failure remains unresolved; no source fix was made. These observations are not clean, complete GUI or board qualification.The other three bundles have not been download-verified here. These are traceable CI bundles, not reproducible-build guarantees, authenticated release artifacts, or security/hardware-qualified firmware. Checksums do not authenticate the publisher, and metadata sanitization is not a binary secret scan. The Tab5 bundle contains P4 firmware only; compatible C6 firmware is a separate prerequisite and is not included. No release or Pages deployment was performed for this change.
Landing Disposition
The manual-only release guard landed first in #38. This firmware-packaging change does not dispatch a component release or change a component version.
The original reviewed head and its evidence identities remain unchanged. The landing tree is checked against current main plus this PR's exact original delta; tree equivalence is not additional build or hardware coverage.
Voice remains unverified. A separate later preclaim device-status request ended with a disconnected node before Talk or provider startup. That outcome is not a timeout finding or a firmware-packaging defect, and it does not qualify voice for this PR.