HopOS v1.5.3
apphttp bugfix. Serve's accept loop could spin when the app netstack returned a temporary error or an empty accept (nil, nil) — eating the entire core: the SURF display sat at 100% CPU, never answering, without a single log line. net/http has a safety net here (growing back-off on temporary errors); apphttp lacked it, and that difference was exactly the difference between a working and a dead display.
Fixed: exponential back-off (1ms→100ms) on temporary errors, and an empty accept without an error now ends the loop with a reason — fail loudly, so the app logs it and the node restarts it. Pinned by a regression test (TestServeNeverSpins).
Prebuilt, signed boot images — https://gethop.org/hopos/ for the 5-minute quickstart.
- BOOTAA64.EFI — any UEFI arm64 box: copy to
EFI/BOOT/on a FAT USB stick, addhopos.cfg - hopos-rpi5.zip — Raspberry Pi 5: unzip onto the SD bootfs
- hopos-rpi4.zip — Raspberry Pi 4: unzip onto the SD bootfs
*-headless— the same images built withGUI=0: not a disabled GUI but zero GUI code linked. For UEFI, renameBOOTAA64-headless.EFItoBOOTAA64.EFIon the stick.
Verify: ssh-keygen -Y verify -f allowed_signers -I hello@gethop.org -n gethop-release -s SHA256SUMS.sig < SHA256SUMS && shasum -a 256 -c SHA256SUMS