HopOS v1.5.0 — the review release
A full review pass, applied — net −800 lines at the same feature set:
- One netstack. The lneto appnet variant is gone (dependency removed); gVisor's netstack is the stack.
- Dead-peer detection moved to where it belongs. The switch no longer forges TCP RSTs on behalf of dead apps — silence can always be the network, and two layers already cover it (the task health check and the app's own ping). See
docs/technical/networking.md. - apphttp: a minimal plain-HTTP/1.1 client for apps, as a separate package —
net/httpunconditionally links crypto/tls, measured onapp/hello: applib alone 1.71 MB, + netstack 4.70 MB, + net/http 7.99 MB. Only who imports it pays. - Leaner GUI node side: the node keeps only the DeviceGrant (
gui/fbgrant); the display-controller and compositor stack live app-side in the companionhop-os-surfrepo. Every image builds bare or gui (GUI=0) — a bare node never gives away the glass. - hopos.cfg.example: a secrets-free sample next to the gitignored real config, so a fresh clone sees exactly what a node needs.
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