wada.sys.random full range no longer divides by zero, wada.ui.input Enter
submits on touch boards with an external keyboard, the OTA download ends
its HTTP connection when no buffer could be allocated, an accepted clock set
lifts the floor (a chip stuck at it no longer keeps the stale time), the host
build refuses removes with '..', and 10 new host tests plus headless scripts.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts:
# scripts/run-host-tests.sh
# src/helpers/esp32/TouchPrefsStore.cpp
# test/clock_floor_fakes/helpers/AutoDiscoverRTCClock.h
#756 lets getCurrentTime() take the system clock when the hardware clock
reads behind the floor. A chip stuck at the seed or frozen reads exactly
AT the floor, though: the first read sets the floor to its value, and a
Wi-Fi sync whose chip write does not take left the floor there, so every
later read returned the stale time (the #746 "nodate" backups on a
device with no persisted floor above the chip's value).
An accepted setCurrentTime() now also lifts the floor to the time it set
(the >10 min backward pull-down is unchanged). A chip that took the write
reads that time and is used as before; one that did not reads below the
floor and the system clock the set started is followed. On boards without
a chip the clock read is the system clock, so nothing changes there.
test_clock_floor: the sync-then-stuck-chip case fails before this change
(returns the stale seed) and passes after.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
test/test_clock_floor.cpp runs src/helpers/ClockFloorRTC.h over a
settable hardware clock (test/clock_floor_fakes) with settimeofday /
gettimeofday faked, so the machine's clock is never touched. A chip
behind the floor or asserting 2043 gives way to the system clock when that
is ahead and plausible, else the floor or the core's seed as before; a
negative or implausible system clock is never used; a healthy chip whose
write takes is followed; a 20000-step random walk of both clocks never
steps back or past the plausible window; garbage sets are refused, a
>10 min backward set lowers the floor, a poisoned persisted floor is
refused.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>