Flagged in the pre-release review, deliberately deferred (not a v0.1 blocker; the host build was fixed to use CLOCK_MONOTONIC in the same pass).
src/amiga/clock.c's tool_now_ms() is wall-clock (DateStamp), not monotonic. A clock change mid-session (setclock, NTP/TZ correction) jumps all keepalive/PUBACK/SUBACK/backoff arithmetic that depends on it — used by both CLI tools and every mqtt.library child.
Example: clock stepped back 1 minute while a QoS 1 publish waits → the 5s retry window becomes ~65s; stepped forward → instant keepalive timeout and a spurious connection-lost/reconnect.
AmigaOS has no cheap monotonic clock equivalent to CLOCK_MONOTONIC out of the box — worth checking timer.device's TR_GETSYSTIME/UNIT_VBLANK, or accepting the DateStamp-based approach with a documented caveat, before deciding.
Flagged in the pre-release review, deliberately deferred (not a v0.1 blocker; the host build was fixed to use
CLOCK_MONOTONICin the same pass).src/amiga/clock.c'stool_now_ms()is wall-clock (DateStamp), not monotonic. A clock change mid-session (setclock, NTP/TZ correction) jumps all keepalive/PUBACK/SUBACK/backoff arithmetic that depends on it — used by both CLI tools and everymqtt.librarychild.Example: clock stepped back 1 minute while a QoS 1 publish waits → the 5s retry window becomes ~65s; stepped forward → instant keepalive timeout and a spurious connection-lost/reconnect.
AmigaOS has no cheap monotonic clock equivalent to
CLOCK_MONOTONICout of the box — worth checkingtimer.device'sTR_GETSYSTIME/UNIT_VBLANK, or accepting the DateStamp-based approach with a documented caveat, before deciding.