diff --git a/README.md b/README.md index ed33c1a..12f36e1 100644 --- a/README.md +++ b/README.md @@ -100,6 +100,26 @@ terminal I/O, and reboot persistence. - `www/` — vanilla JS SPA (no build step) + bundled xterm.js. - `payload.sh` + `pagerwebui.init` — Nautilus-style installer / procd service. +## Stability notes (Pager 24.10.1) + +pineapd crash sources found and fixed on this firmware (verified on-device, +zero crashes over sustained watches): + +1. **SSID-pool broadcast** — segfaults pineapd (~15s cadence). Kept disabled. +2. **wlan2mon** — a 6GHz monitor this hardware never creates; hopping the + missing iface segfaults pineapd. Disabled. +3. **Large refilled pool** — the pool list itself crashes pineapd even with + broadcast disabled. The health monitor clears it (collect refills). +4. **wlan1mon fast-hopping 6GHz** — stalls pineapd's command socket; the + stock daemon's watchdog then SIGTERMs pineapd every ~30s. Bands pinned + to 5GHz (2.4GHz only on wlan0mon). +5. **Socket collisions** — actively pinging pineapd from a health monitor + collides with the stock daemon's own socket writes. The monitor now + checks `pidof` only. + +`GET /api/health` reports pineapd/monitor state; the top bar shows a +PINEAP OK / POOL OFF / PINEAPD DOWN chip. + ## Security notes - Auth via device password validated against the daemon; HttpOnly session