Files
agessaman c1c55e4925 fix(provision): address field-test feedback on paste, fetch, and apply
- serial reader: fix buffer overflow crash on over-long lines (stomped NUL
  terminator + unbounded strlen); treat CR and LF both as line terminators
  so CRLF/LF pastes don't double-space or merge capture lines; report
  'command too long' instead of executing garbage; bump buffer to 256 so
  'provision fetch <long share url>' fits (PROVISION_MAX_LINE now 255)
- fetch: validate HTTPS against the embedded CA root bundle (pinned
  GTS/ISRG roots only as fallback) so DigiCert-chained hosts like Dropbox
  work; rewrite Dropbox share links to dl=1; hint at 'insecure' on TLS
  failures and at raw-file URLs on missing-header rejects
- wifi: 'set wifi.ssid/pwd' now starts or restarts the MQTT bridge so
  WiFi comes up immediately instead of on next reboot
- apply: summary names first failing line, serial console prints each
  failing line with its error, and manual apply reminds to reboot
- alert.hashtag: allow up to 31 chars (companion channel-name limit) via
  alert_hashtag_ext appended to MQTTPrefs; legacy field keeps truncated
  mirror for downgrade readback
- guard the ESP-only 'memory' CLI command so non-ESP targets compile
2026-07-11 22:55:38 -07:00
..