[codex] Add OTA candidate cache and inactive-slot writer - #64
Open
n30nex wants to merge 4 commits into
Open
Conversation
n30nex
force-pushed
the
codex/ota-candidate-cache
branch
from
June 20, 2026 14:40
75c181a to
7113e72
Compare
n30nex
marked this pull request as ready for review
June 20, 2026 23:59
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ota writeto write a verified cached candidate into the inactive OTA slot without changing boot selectionota write-testto copy the currently running valid app image into the inactive OTA slot for hardware smoke proofscripts/tdeck_smoke.pyadapt to both modern hyphenated esptool syntax and this host's legacy underscore esptool 4.5.1 syntaxValidation
git diff --checkpython -m py_compile scripts\fetch_tdeck_artifact.py scripts\release_evidence.py scripts\tdeck_smoke.pypio run -e native.pio\build\native\program.exe --selftest.pio\build\native\program.exe --simtestActions Artifact
1bf7aa71619e2487a4aa10162cdd3f1316dd8e49tdeck-firmware-1bf7aa71619e2487a4aa10162cdd3f1316dd8e49.pio\ci-artifacts\tdeck-1bf7aa7-ota-installbudget_status=pass,firmware_bytes=1721200,static_ram_bytes=231160,firmware_slot_pct=32.83efcc9dcbefore the script-only smoke harness fix; GitHub did not attach a duplicate base check for1bf7aa7, but the fork Actions run above is green for the exact PR head.Hardware: COM8 Only
tdeck-firmware-1bf7aa7...to COM8 with no-stub esptool; bootloader, partitions, boot_app0, and firmware hashes verifiedcc:8d:a2:0d:14:28lz>with identity!a20d1428 "limitlessdeck" (LIMI)id,sys,ota status,ota test,ota boot-test,ota writeota status: no cached manifest, no candidateota test:OTA manifest selftest: PASS valid=1 invalid_error="bad sha256"ota boot-test:OTA boot policy selftest: PASSota write:[err] no candidate;ota write: failed error="no candidate"sys,ota write-test,sys,ota status43/150KB, uptime306sota write-test:[ok] OTA inactive-slot write selftest passed; boot unchangedsource=running-copy running=ota_0 inactive=ota_1 addr=0x00510000 size=5242880 bytes=1721200 boot-set=no43/150KB, uptime312sNotes
http://accepted; HTTPS transport currently insecure in this branch). Before promoting OTA beyond diagnostics, add signed manifests or pinned/CA-validated HTTPS.