release: beta_84 notes, and let a promotion skip boards it predates

A board added mid-cycle (the T-Deck Max) has no images in an older tag, so
promoting that tag copied a file that does not exist and, with set -e, took
the whole promotion down. It is skipped with a note now, and the flasher
manifest generator leaves out any board with no image in the channel it is
writing, rather than handing the flasher a 404.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Kaj Schittecat
2026-09-21 14:39:22 +02:00
co-authored by Claude Opus 5
parent 2bf51f1bec
commit 5d5f7bc638
3 changed files with 43 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
# beta_84 - test build. Stable is now beta_83.
# One user-facing note per non-blank, non-# line; # lines are section comments.
# --- New board ---------------------------------------------------------------------------------
New board: the LilyGo T-Deck Max, contributed and tested by pelgraine. It is the T-Deck Pro's hardware with the peripheral power rails and resets behind an I/O expander and a fuel gauge for the battery, and it reuses the Pro's display and touch drivers. The e-paper screen gets its own handling: no fades, no black frame left on the glass when it sleeps, tap to wake, and the keyboard backlight on a both-Shift chord. It starts with Wi-Fi off and Bluetooth on, because both at once leave this board short of memory. Experimental, so please report what works.
# --- Reading the screen outdoors ---------------------------------------------------------------
High contrast day and night themes, for sunlight where the normal palette washes out. Settings, Display, Theme.
# --- Regions -----------------------------------------------------------------------------------
Channel regions can be discovered instead of typed: the region page scans for repeaters you can hear and lists the regions they allow, and channel scope offers them in a picker.
# --- Languages ---------------------------------------------------------------------------------
Czech, contributed by brebtatv. Settings, Language.
# --- ThinkNode M9 ------------------------------------------------------------------------------
With the home drawer locked, Back (and Esc on a Bluetooth keyboard) now stays on it instead of escaping to the tabs behind it.
The Language settings cursor returns where it was after visiting the Store, and a channel keeps its unread colour.
# --- Heltec V4 and V4-R8 -----------------------------------------------------------------------
An M5Stack CardKB can be plugged into the board's I2C bus and used as a keyboard. It is detected when present, so nothing changes without one.
V4-R8: bigger text sizes to choose from, and the top row of the screen no longer swallows taps meant for the page.
# --- Fixes -------------------------------------------------------------------------------------
Radio settings save again when the region field holds a name the new rules reject, such as one with capitals. Only the region is skipped now, instead of the frequency, bandwidth and power going with it.
The Show button on telemetry shows its label in Russian, Ukrainian, Bulgarian, Serbian and Greek instead of empty boxes.
Scanning for regions no longer leaves nameless entries behind in Contacts.
Wio Tracker L2: the SD card gets a power cycle and a second try when it does not mount at boot.
# --- For testers -------------------------------------------------------------------------------
Region discovery is new on-air traffic and has not been tested on a live mesh yet. Worth reporting whether a scan finds your repeaters' regions.
+6
View File
@@ -49,6 +49,12 @@ BOARDS = {
"manifest-tdisplay-p4.json": ("wadamesh - LilyGo T-Display P4", "wadamesh-tdisplay-p4-merged.bin", "ESP32-P4"),
}
for fn, (name, binf, chip) in BOARDS.items():
# A board that joined the matrix after this tag has no image in this feed
# (promoting an older tag to stable). Writing a manifest for it would hand
# the flasher a 404, so leave it out of this channel.
if not os.path.exists(os.path.join(outdir, binf)):
print("note: %s missing in %s -> no %s" % (binf, outdir, fn))
continue
manifest = {
"name": name + ("" if channel == "stable" else " (beta)"),
"version": tag,
+6
View File
@@ -92,6 +92,12 @@ else
fi
for pair in $ENVS; do
name="${pair##*:}"
# A board added after this tag was cut has no bins to promote. Skip it
# instead of aborting the whole promotion (set -e), and say so.
if [ ! -f "$SRC/$name-merged.bin" ]; then
echo "note: $name has no $TAG build (board added later) — not in this stable set"
continue
fi
cp "$SRC/$name.bin" "$ARCH/$TAG/$name.bin"
cp "$SRC/$name-merged.bin" "$ARCH/$TAG/$name-merged.bin"
cp "$SRC/$name-merged.bin" "$FEED/$name-merged.bin"