Skip to content

v13 — first-run fixes, and one shipping image

Pre-release
Pre-release

Choose a tag to compare

@daniel-frenkel daniel-frenkel released this 18 Sep 04:22
9f4969d

Cut from 9f4969d. v12 was published and then withdrawn to a prerelease: its publish gate correctly refused to certify the full set, and while it was latest the fleet could not discover updates at all. This release carries everything v12 did, plus the fix for why that happened.

First-run fixes (carried over from v12)

An iPhone could not type a minus. The latitude and longitude boxes used a decimal keypad, which has no - — and the hint beneath them said "No minus key? Write 121.315 W", on a keypad with no W either. A western longitude could not be entered without pasting. The boxes now use a full keyboard, and the hint states the equivalence: -121.315 and 121.315 W are the same place.

A new device starts where the answer is. A radar with no location used to show the sweep with SET YOUR LOCATION written over it, while the QR code that opens the config page sat one swipe away on a screen nobody knew to look for. A device that has never been told where it is now boots to that screen, and returns to the radar the moment a location is saved.

Under the glass

The label-collision counter measures what is actually on the glass. It counted label boxes and nothing else; a real saved frame showed the heaviest collisions were the gold NEW flags and the NEAR/HIGH/FAST tags. Badges are in the same count now, with the overlapping area and the per-window worst frame. Readings from before v12 are not comparable with readings after.

A screen viewer at /diag/fb.html. Open it on a phone, long-press the picture, send the frame to support.

Why v12 was withdrawn

The release matrix published ten firmware images. Nine were for hardware no customer owns. One of those nine failed to compile, and because it claimed to publish a binary, the safety gate that stops the fleet being pointed at an uncertified image did exactly what it should — and took the whole update channel down with it.

From v13 the fleet publishes one image, firmware-s3-128.bin. Every other board still compiles on every change so the code cannot rot, but none of them can withhold an update again. The classification lives in one file, skus.yml, and a contradiction in it is now a build error rather than a surprise at publish time.

Verified on 326E64: fresh-boot acceptance 7 passed, 0 failed; the shipping image is byte-identical to the one that passed, apart from the version number itself.