feat: update DEF CON 34 firmware to 2.8.0.c800fc8 - #112
Conversation
Points the DEF CON 34 edition at the build that restores the custom boot logo on MUI hardware (device-ui pin held at ef573c3) and carries the signing/ingress hardening from firmware #11282. Was 2.8.0.8adc7c3. version / id / title / zipUrl bumped; slug and release notes unchanged.
📝 WalkthroughWalkthroughThe DEF CON 34 firmware metadata now points from release ChangesDEFCON firmware metadata
Estimated code review effort: 1 (Trivial) | ~2 minutes Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@data/eventFirmware.json`:
- Around line 126-129: Update the DEFCON event firmware entry in eventFirmware
metadata to consistently reference the intended 2.8.0.c800fc8 build, including
its version, id, title, and zipUrl, and ensure the matching event firmware
resource/ZIP is deployed so /resource/eventFirmware serves that build instead of
2.8.0.8adc7c3.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: b585b8fb-9f62-4f35-9c11-31ea48512015
📒 Files selected for processing (1)
data/eventFirmware.json
| "version": "2.8.0.c800fc8", | ||
| "id": "v2.8.0.c800fc8", | ||
| "title": "Meshtastic Firmware 2.8.0.c800fc8", | ||
| "zipUrl": "https://github.com/meshtastic/meshtastic.github.io/raw/master/event/defcon34/firmware-2.8.0.c800fc8.zip", |
There was a problem hiding this comment.
🩺 Stability & Availability | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
manifest_url="${MANIFEST_URL:-https://api.meshtastic.org/resource/eventFirmware}"
manifest_status="$(curl -L -sS -o /tmp/eventFirmware.json -w '%{http_code}' "$manifest_url")"
test "$manifest_status" = "200"
zip_url="$(jq -er '.editions[] | select(.edition == "DEFCON") | .firmware.zipUrl' /tmp/eventFirmware.json)"
zip_status="$(curl -L -sS -o /dev/null -w '%{http_code}' "$zip_url")"
test "$zip_status" = "200"Repository: meshtastic/api
Length of output: 152
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf 'Repo files:\n'
git ls-files | rg '(^data/eventFirmware\.json$|eventFirmware|firmware)'
printf '\nLocal JSON excerpt:\n'
sed -n '110,135p' data/eventFirmware.json
printf '\nManifest URL direct probe:\n'
status="$(curl -L -sS -w '%{http_code} %{url_effective}\n' -o /tmp/eventFirmware_probed.json 'https://api.meshtastic.org/resource/eventFirmware')"
echo "$status"
if [ -f /tmp/eventFirmware_probed.json ]; then
jq '.editions[]? | select(.edition? == "DEFCON") | {edition, firmware: .firmware | {version, id, title, zipUrl}}' /tmp/eventFirmware_probed.json || jq -r '"payload_size=<"+length+">"' /tmp/eventFirmware_probed.json
fi
printf '\nLocal manifest target for DEFCON:\n'
jq -r '.editions[]? | select(.edition == "DEFCON") | .firmware.zipUrl' data/eventFirmware.json
printf '\nManifest URL HTTP headers:\n'
curl -L -sS -I 'https://api.meshtastic.org/resource/eventFirmware' | sed -n '1,40p'Repository: meshtastic/api
Length of output: 3502
Deploy the matching event firmware firmware metadata and ZIP.
/resource/eventFirmware is available, but the published DEFCON entry still points to 2.8.0.8adc7c3, while this PR adds 2.8.0.c800fc8; update and deploy the matching resource until the intended build is live.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@data/eventFirmware.json` around lines 126 - 129, Update the DEFCON event
firmware entry in eventFirmware metadata to consistently reference the intended
2.8.0.c800fc8 build, including its version, id, title, and zipUrl, and ensure
the matching event firmware resource/ZIP is deployed so /resource/eventFirmware
serves that build instead of 2.8.0.8adc7c3.
Points the DEF CON 34 edition at the next published build:
event/defcon34/firmware-2.8.0.c800fc8(was2.8.0.b00d76f→2.8.0.8adc7c3).version/id/title/zipUrlbumped to2.8.0.c800fc8slugstaysdefcon34, so the flasher's derived pathevent/{slug}/firmware-{version}resolves to the new directoryWhat's in the new build
Two commits on top of
2.8.0.8adc7c3onevent/defcon34:8adc7c3shipped the stock Meshtastic logo on the T-Deck boot screen instead of the event logo. The branding pipeline was fine — the logo is byte-identical in both builds' littlefs images — but firmware MUI: Portduino curl maps firmware#11214 bumped device-ui to a commit that setsLV_USE_LODEPNG 0without registering its PNGdec replacement as an LVGL image decoder, leaving LVGL with no decoder for a PNG file source. The event branch now holds the device-ui pin atef573c3. Upstream: Custom boot logo no longer renders: LV_USE_LODEPNG=0 leaves LVGL without a PNG file decoder device-ui#357.⛔ Do not merge until the build publishes
The publishing run is in flight: firmware run 30500538943. Until it finishes,
event/defcon34/firmware-2.8.0.c800fc8/does not exist and merging this would point the flasher at a 404.Gate on this returning
200for both the manifest and a sample artifact:Local verification already done on the firmware side:
t-deck-tftbuilds clean at this SHA (flash 58.2% of the 6.5 MB app partition),lv_lodepng.c.ois linked in, and the DEF CON logo is present in the producedlittlefs-t-deck-tft-2.8.0.c800fc8.bin.Note (pre-existing, not changed here): the
zipUrlconvention —event/{slug}/firmware-{version}.zip— 404s for every edition, since github.io stores these builds as directories rather than a single zip. Carried forward as-is; worth a separate cleanup if nothing consumes it.Companion: meshtastic/web-flasher#390 keeps the flasher's bundled fallback copy in sync; this PR updates the live manifest. Merge both.
Summary by CodeRabbit