bzuccaro
501fa455ce
fix(reliability): resolve STA netdev by phy membership (netifd ignores ifname); sae-mixed for PSK uplinks
2026-08-22 20:37:11 -06:00
bzuccaro
132cf4d77a
fix(reliability): explicit hop baseline restore, immune to stale pager snapshot
2026-08-22 19:37:57 -06:00
bzuccaro
712d381093
fix(reliability): supervisor restores hop baseline unless a role holds the pause
2026-08-22 19:31:15 -06:00
bzuccaro
107cf17611
fix(ui): sync role select to live role; mark RF chip unavailable on poll failure
2026-08-22 19:26:39 -06:00
bzuccaro
a1b449c9be
fix(deploy): busybox ash lacks SECONDS; use date +%s for health deadline
2026-08-22 19:23:51 -06:00
bzuccaro
6b84665347
fix(deploy): no dangling symlink on first-deploy failure, deadline-capped health poll, release pruning, honest commit rc
2026-08-22 19:18:42 -06:00
bzuccaro
92a2a6d8ee
docs: field runbook — checklists, engagement flow, recovery procedures
2026-08-22 19:11:04 -06:00
bzuccaro
55d4beb9d4
fix(reliability): probe section existence via uci show, not an option key
2026-08-22 18:59:57 -06:00
bzuccaro
1133068a09
fix(reliability): recreate missing pineapd section; honest uci-set reporting
2026-08-22 18:45:44 -06:00
bzuccaro
23ca901e82
feat(reliability): supervisor continuously enforces known-good UCI set
2026-08-22 18:37:22 -06:00
bzuccaro
b9a64c6560
fix(reliability): supervisor re-parks stock-resurrected dummy STA on interval
2026-08-22 18:31:06 -06:00
bzuccaro
5625310977
fix(reliability): converge runtime after profile restore (park dummy STA, re-raise monitors)
2026-08-22 18:26:21 -06:00
bzuccaro
61c929d891
docs: reliability core subsystem guide (v1.4.0)
2026-08-22 18:17:27 -06:00
bzuccaro
60db235f0b
fix(reliability): converge runtime on uplink revert; bound health endpoint cost (I3,I4)
2026-08-22 16:52:29 -06:00
bzuccaro
b25c98b7c7
fix(reliability): hop governance belongs to rfplan, not boot reconciler (I2)
2026-08-22 16:51:52 -06:00
bzuccaro
ba3e1b1ae0
fix(reliability): clear boot marker on graceful shutdown (I1)
2026-08-22 16:51:33 -06:00
bzuccaro
027646c905
fix(reliability): pool size counts any whitespace; deploy ZIP var remote-expands
2026-08-22 16:23:50 -06:00
bzuccaro
eae47d99bf
fix(reliability): encode str stdin in device_run; smoke drill path fixes + regression tests
2026-08-22 16:23:50 -06:00
bzuccaro
d954b6e90d
fix(smoke): conditional role drill, healthy-gate for drills, exit reaping
2026-08-22 16:01:32 -06:00
bzuccaro
25bae3b4a2
test(smoke): on-device reliability suite
2026-08-22 15:51:05 -06:00
bzuccaro
63528ff794
fix(deploy): unauth health poll, validate-before-gate, fullmatch names, reload-only-on-ok
2026-08-22 15:41:37 -06:00
bzuccaro
1bb15de258
feat(deploy): reliability API routes, atomic releases, version single-source
2026-08-22 15:20:39 -06:00
bzuccaro
aba08e36c7
fix(ui): guard chip shows pending count, not raw list
2026-08-22 15:03:15 -06:00
bzuccaro
4c1144ab32
feat(ui): reliability panel events/counters, RF plan chip and controls
2026-08-22 14:55:49 -06:00
bzuccaro
bace45d6e4
fix(reliability): rfplan review fixes — cli commit, assoc poll, ensure_attack wiring, idle reload
2026-08-22 14:35:12 -06:00
bzuccaro
15cd3c5eb8
feat(reliability): phy1 RF role manager with uplink-on-radio1
2026-08-22 14:20:05 -06:00
bzuccaro
78aab64af0
fix(reliability): watchdog max lifetime + serialized gate entry (review fixes)
2026-08-22 14:08:25 -06:00
bzuccaro
a008bb9167
feat(reliability): risky-op preflight snapshots + detached rollback watchdog
2026-08-22 13:56:25 -06:00
bzuccaro
7a27218149
feat(reliability): supervisor sampling, event feed, boot marker
2026-08-22 13:41:49 -06:00
bzuccaro
e329fd2a1c
docs(plan): watchdog probe uses monitor presence, not stock-disabled wlan0mgmt
2026-08-22 13:27:33 -06:00
bzuccaro
7d1eb62d75
feat(reliability): START=49 boot guard installed by deploy
2026-08-22 13:26:09 -06:00
bzuccaro
a05754f908
feat(reliability): boot-time UCI reconciler
2026-08-22 13:12:14 -06:00
bzuccaro
88e6471820
feat(reliability): UCI profile snapshot store
2026-08-22 13:00:59 -06:00
bzuccaro
1d17704f72
fix(reliability): journal fail-safe serialization, per-line parse, review hardening
2026-08-22 12:51:22 -06:00
bzuccaro
496f7c58e3
feat(reliability): JSONL event journal with rotation and counters
2026-08-22 12:39:19 -06:00
bzuccaro
2c24107f42
docs: plan — reliability core implementation
2026-08-22 11:59:16 -06:00
bzuccaro
4b03ecb1fd
docs: spec — reliability core + integrated supervisor
2026-08-22 09:52:25 -06:00
bzuccaro
86d26d8457
fix: show BSSID and sources in recon association tooltip
2026-08-21 08:46:19 -05:00
bzuccaro
883a839692
test: cover recon identity associations
2026-08-21 08:41:17 -05:00
bzuccaro
cd54402892
feat: show recon client identities and associations
2026-08-21 08:40:25 -05:00
bzuccaro
21e308386f
feat: include recon identity in exports
2026-08-21 08:31:47 -05:00
bzuccaro
a67faecee9
feat: associate recon clients with confirmed networks
2026-08-21 08:26:58 -05:00
bzuccaro
2c9fa8d137
fix: use live macchanger OUI path
2026-08-21 08:20:09 -05:00
bzuccaro
797db1816a
feat: resolve recon device manufacturers locally
2026-08-21 08:15:21 -05:00
bzuccaro
d149cb13fd
docs: plan recon identity enrichment
2026-08-21 08:10:03 -05:00
bzuccaro
922c3ec4ae
docs: design recon identity enrichment
2026-08-21 08:06:02 -05:00
bzuccaro
377cc83060
docs: plan recon and PineAP reliability work
2026-08-20 16:25:42 -05:00
bzuccaro
00cbc52254
docs: design recon and PineAP reliability improvements
2026-08-20 16:23:26 -05:00
bzuccaro and Cursor
7d48b7ad06
fix: harden UI actions and daemon calls for reliable control (v1.3.2)
...
Retry and serialize pineapd/hak5 calls, queue virtual-pager keys, and grey out buttons until the pager finishes. Deploy now installs python3-light after factory firmware. Bump version to 1.3.2.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 15:49:10 -05:00
bzuccaro and factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
cd26553d21
fix: non-disruptive startup checks + clean service lifecycle (v1.3.1)
...
- Env check is read-only when state is sane: no pineapd command-socket
writes, no live pool-list commits, no wifi reload; pineapd restarts only
when a runtime-sensitive UCI value changed or the daemon was down
- Failed monitor repairs now fail the startup contract instead of being
reported as fixed; runtime pool state is read from active config
- Enterprise AP recovery runs only on device boot (PAGER_WEBUI_BOOT), not
on every web-service restart
- serve() gates the HTTP port on startup checks with bounded retries and
shuts down cleanly on SIGTERM/SIGINT; the recon watchdog waits
interruptibly
- Recon uses a bounded userspace channel scheduler that drives both
monitor radios over non-DFS channels, with preflight verification,
serialized starts, and per-cycle error reporting
- payload.sh waits for real readiness on start, fully removes the boot
service (stop + disable + delete) on stop, and surfaces a
stopped-but-enabled boot service; deploy.sh refreshes the installed
init script even when the service is stopped
- Bump version to 1.3.1
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-19 12:03:11 -05:00