Commit Graph
5781 Commits
Author SHA1 Message Date
nullrouten0andClaude Opus 5.5 a6f49e2b63 Limit wrong passwords on the room browser
POST /api/room checked the room password on every request with no failure
limit, and a browser may send a new identity token each time. Any host that
reached WebConfig could guess the room admin password, which is also the
radio and /api/login admin password, at main-loop speed.

One budget now covers all browser tokens, with /api/login's numbers: at most
five distinct wrong passwords in each thirty-second window. After that, a
request carrying a password is refused without checking it until the window
ends. Wrong passwords count in read-only rooms too. Empty passwords are never
counted or refused, so public read-only access keeps working. The last four
wrong passwords are remembered by 8-byte SHA-256 digest and not counted
again, so a tab still polling with an old or mistyped password cannot use up
the budget. Successful sign-ins do not refund failures. Radio login is
unchanged.

test_room_web_service.py gains PASSWORD_LIMIT, which runs the real
processRoomRequest: refusal after five failures from five tokens; identical
replies for wrong, guest and admin passwords while refused, with no password
check (calls to authorizeRoomLogin are counted); no lock extension from 300
refused requests; the 29999/30000 ms boundary and the first window after
boot; read-only and empty-password cases; no refund on success; repeated,
rotating and read-only stale passwords; slow distinct failures ageing out;
and a guard that the digest ring stays in bounds. It fails on the previous
processRoomRequest at the sixth guess.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 03:57:09 +00:00
mikecarper 0e72474f41 Align tracker GPS clock assertions with advancing RMC samples 2026-10-17 20:52:50 -07:00
mikecarper 4bc6535f4d Fix bridge runtime harness extraction around packet logging guards 2026-10-17 20:23:30 -07:00
mikecarperandnullrouten0 3db4582bbb Integrate upstream GPS PRs 3624, 3625 and 3626
Port the guarded NMEA buffer, validated RMC clock samples and coordinate bounds from meshcore-dev/MeshCore#3624, #3625 and #3626. Adapt clock admission to retain this branch's signed date limits, bounded loop work, tracker acquisitions, sample consumption, diagnostics and periodic settings.

Upstream-PR: https://github.com/meshcore-dev/MeshCore/pull/3624
Upstream-Commit: 1ac389bbef0084623a3115c526156ae8f414d3ea
Upstream-PR: https://github.com/meshcore-dev/MeshCore/pull/3625
Upstream-Commit: 72ed4dcf08869c6900ef579e7af1b28471a86895
Upstream-PR: https://github.com/meshcore-dev/MeshCore/pull/3626
Upstream-Commit: 499727a71c564a7b5d451b8f480d940e185fe742

Co-authored-by: nullrouten0 <201262769+nullrouten0@users.noreply.github.com>
2026-10-17 19:53:08 -07:00
mikecarper 55f67f9062 Fit Mini Repeater with approved optional service cuts 2026-10-17 19:35:05 -07:00
mikecarper 7a9d099039 Record Mini Repeater approved feature-cut experiments 2026-10-17 19:23:26 -07:00
mikecarper 5c364b8f04 Record Mini Repeater GCC 15 size and emulation results 2026-10-17 18:42:08 -07:00
mikecarper 4575da82fe Record 1.18.0.1 risk matrix passes and remaining Mini limit 2026-10-17 18:07:13 -07:00
mikecarper b2a8245199 Bound SH1106 retry allocations and verify ESP32 Full RAM 2026-10-17 17:59:33 -07:00
mikecarper f73ddc8bce Check all small STM32 Companions at release version length in CI 2026-10-17 17:47:21 -07:00
mikecarper d83a6a3ceb Fit Tiny Relay Companion while retaining GPIO and storage 2026-10-17 17:40:40 -07:00
mikecarper dbe092f5d5 Fit Wio-E5 Companion without reducing storage or contacts 2026-10-17 17:39:04 -07:00
mikecarper 3d04bb3048 Sleep unused onboard SX1262 in RAK13302 builds
Adapt the optional onboard-radio probe for RAK3401 and RAK4631 cores using the external RAK13302 image. Preserve SPI1 radio ownership, external FEM startup, and ordinary RAK4631 primary-radio operation.

Probe before boot voltage protection, bound missing-chip waits, release temporary pads, and confirm cold sleep without waking the chip. Add sanitizer-backed host regression tests and CI coverage.
2026-10-17 17:02:54 -07:00
mikecarper ff548d2481 Expose read-only RX power-saving diagnostics through framed CLI 2026-10-17 15:56:43 -07:00
mikecarper cdfd1ad691 Retain USB packet logging in canonical nRF sensor OTA pairs 2026-10-17 15:50:19 -07:00
mikecarper 55960cebdc Recover nRF OTA RAM without reducing catalog or staging capacity 2026-10-17 15:50:17 -07:00
mikecarper 5ee9ceeb20 Protect nRF SD OTA authorization RAM from source-only stores 2026-10-17 15:35:34 -07:00
mikecarper 9c3df94f99 Honor periodic OTA cadence after the four-beacon startup burst 2026-10-17 15:12:59 -07:00
mikecarper 97be2b9b21 Delay displayed radio preamble advice for two minutes 2026-10-17 14:45:33 -07:00
mikecarper 64a928d18f Reduce Indicator radio expander traffic with guarded IQ reuse 2026-10-17 14:19:42 -07:00
mikecarper 5cf42d0ca1 Update host harnesses for current radio and sleep policy 2026-10-17 14:14:09 -07:00
mikecarper 05c0ed8bb2 Fit STM32 Companions with equivalent compact field arithmetic 2026-10-17 13:53:00 -07:00
mikecarper 264fc2bccb Fix hosted links for new power-saving documentation 2026-10-17 13:44:40 -07:00
mikecarper e66473a86c Update Morse role-loop tests for radio2 idle policy 2026-10-17 13:39:47 -07:00
mikecarper 8874cf62ca Fix W12 TX prearming without standby PA drain 2026-10-17 13:36:38 -07:00
mikecarper f1d281a766 Allow safe nRF52 MCU idle between radio2 scan deadlines 2026-10-17 13:21:05 -07:00
mikecarper 53835c0793 Avoid flash load image for the empty contact-path cache 2026-10-17 11:57:05 -07:00
mikecarper dcabcb8cb2 Initialize DC/DC on nine circuit-verified nRF52 boards 2026-10-17 11:42:21 -07:00
mikecarper 364e3cabd5 Merge remote-tracking branch 'origin/keymindCascade' into keymindCascade 2026-10-17 11:37:01 -07:00
mikecarper 86984e8e22 Enable RAK4631 Companion DC/DC in all transports 2026-10-17 11:35:50 -07:00
mikecarper 80f7b17d89 Merge remote-tracking branch 'origin/keymindCascade' into keymindCascade 2026-10-17 11:22:33 -07:00
mikecarper 4805b5cdbb Fix T096 Companion runtime RAM with RGB332 framebuffer 2026-10-17 11:22:15 -07:00
mikecarper 2fb4d2e793 Preserve millisecond power-saving deadlines across roles 2026-10-17 11:21:48 -07:00
mikecarper eb4f837969 Retain valid noise floors during adaptive AGC maintenance 2026-10-17 11:06:10 -07:00
mikecarper 55354c7fbe Keep sub-second RS232 standby interrupt-idle eligible 2026-10-17 11:03:43 -07:00
mikecarper 5bdc6de0ed Sleep ST7735 controllers before releasing display power 2026-10-17 11:02:29 -07:00
mikecarper 21f8b3384f Enable T096 DC/DC initialization before battery checks 2026-10-17 11:01:01 -07:00
mikecarper dd7a10f9aa Sleep between noise-floor samples and reduce idle refreshes 2026-10-17 10:18:14 -07:00
mikecarper 50428f0fb7 Enable contact caching for high-capacity nRF52 companions 2026-10-17 10:14:17 -07:00
mikecarper 8a5f735bba Reuse active Sensor tracker wake deadlines 2026-10-17 02:25:37 -07:00
mikecarper 629557fcfe Fix nRF52 idle sleep event and CryptoCell handling 2026-10-17 02:22:26 -07:00
mikecarper 756d887bad Add on-demand power-saving diagnostics 2026-10-17 01:15:54 -07:00
mikecarper 04c3d1118d Preserve current Room downloads during QSPI rollout 2026-10-16 23:46:21 -07:00
mikecarper ce53567a4c Consolidate onboard QSPI infrastructure build profiles 2026-10-16 23:42:10 -07:00
mikecarper d5d84d325b Retire internal-only SolarXiao Room release variants 2026-10-16 23:24:36 -07:00
mikecarper a16229a3eb Bound GPS UTC fields and accept variable time precision 2026-10-16 20:35:11 -07:00
mikecarper 135d361368 Require fresh complete GPS observations before clock synchronization 2026-10-16 19:48:34 -07:00
mikecarper 31a53b1f4a Preserve stalled USB recovery after a cancelled watchdog reboot
Restart the retry interval without treating queue cleanup as completed USB transmission. Cover cancellation journals, fresh recovery deadlines, real progress and rollover, with historical policy and runtime negative controls.
2026-10-16 19:25:15 -07:00
mikecarper 0dcba50d88 Reject unsupported RXPS before changing suspended scan policy
Keep rejected power-saving requests from changing radio2's saved RX policy or timings. Exercise actual CLI, scan restoration and calibration sleep guards with semantic negative controls.
2026-10-16 19:17:22 -07:00
mikecarper 4348fdcc56 Keep UI startup and rescue windows closed after observed expiry 2026-10-16 19:00:45 -07:00