Commit Graph
5327 Commits
Author SHA1 Message Date
mikecarper fbc1eae32e Retain oversized native USB commands until they can be rejected 2026-10-04 02:53:04 -07:00
mikecarper 8c164934bc Support reader commands through local Bluetooth and USB CLI 2026-10-04 02:16:04 -07:00
mikecarper dbcb400c74 Keep BLE contact sync from blocking other companion transports 2026-10-04 02:11:18 -07:00
mikecarper bd5b79c1cb Reduce notification settings stack usage without shared scratch storage 2026-10-04 02:07:26 -07:00
mikecarper 728b16c5d5 Start radio liveness watchdog when loop service begins 2026-10-04 02:05:32 -07:00
mikecarper d35145d59e Reduce SHA-512 stack usage with a rolling message schedule 2026-10-04 02:04:16 -07:00
mikecarper a1fa553ebe Fix hardware test serial controls and offline DM queue matching 2026-10-04 01:55:10 -07:00
mikecarper 43f7f75ac0 Fix nRF52 loop stack allocation under LTO 2026-10-04 01:54:01 -07:00
mikecarper 9a3774ad04 Merge observer OTA channel switching into keymindCascade 2026-10-04 00:26:46 -07:00
mikecarper eb37091c31 Merge latest PowerSaving-v17 BOOT button support 2026-10-03 23:56:38 -07:00
mikecarper 8b8a17d793 Document Companion Bluetooth pairing PIN CLI 2026-10-03 23:44:23 -07:00
mikecarper 2e84512ba4 Retain and isolate delayed Companion results under backpressure 2026-10-03 23:22:34 -07:00
mikecarper 94daaf7e40 Share bounded STM32 Companion preference wire metadata 2026-10-03 23:16:37 -07:00
mikecarper 51b7948887 Update preference snapshot CI contract for bounded value copies 2026-10-03 22:44:03 -07:00
mikecarper 68153718bf Bound STM32 Companion preference image writes 2026-10-03 22:41:45 -07:00
mikecarper 45e7c066ed Copy only persisted Companion preference values during loading 2026-10-03 22:16:31 -07:00
mikecarper facc066389 Separate GPS UART ownership and collapse shared Companion ports 2026-10-03 21:42:54 -07:00
mikecarper 2362ae2f02 Ignore inactive discovery tags without clearing other requests 2026-10-03 21:28:40 -07:00
mikecarper 2fa9a96cce Inspect received ACK route before clearing its header 2026-10-03 21:28:24 -07:00
mikecarper 6a90697868 Use bounded frame transmission for Companion hardware UART 2026-10-03 21:23:14 -07:00
mikecarper 64890dc83e Preserve ACK ownership across contact relocation and retirement 2026-10-03 21:10:49 -07:00
mikecarper 030f61f7a3 Align OTA profile prefix regression with frozen source identity 2026-10-03 20:51:14 -07:00
mikecarper c3009096b2 Bind resumed firmware packages to their effective build recipe 2026-10-03 20:48:49 -07:00
mikecarper 10d16bba43 Use resolved PlatformIO directories for migration packaging 2026-10-03 20:35:27 -07:00
mikecarper a4ec584e3b Retain Companion ACK notifications during host backpressure 2026-10-03 20:23:50 -07:00
mikecarper 7a4cd715ad Default optional debug flags safely in strict shells 2026-10-03 19:55:57 -07:00
mikecarper a3ad4e331d Treat public identity as a read-only CLI preference 2026-10-03 19:52:37 -07:00
mikecarper 38121b8730 Update USB startup fixture for retained mOTA responses 2026-10-03 19:45:06 -07:00
mikecarper 5317097cb7 Update CLI identity regression for captured reply routing 2026-10-03 19:39:58 -07:00
mikecarper f94313e9d7 Protect build cleanup from unsafe output paths 2026-10-03 19:31:10 -07:00
mikecarper 22360f4392 Share lossless voice prefixes across companion announcements 2026-10-03 19:11:15 -07:00
mikecarper 91a9190a71 Run USB and persistence regression suites in CI 2026-10-03 19:01:37 -07:00
mikecarper df5d009d3c Preserve USB mOTA ownership across deadlines and logging handoffs 2026-10-03 19:01:22 -07:00
mikecarper 46eb98e54b Reject oversized USB frames and bound serial receive work 2026-10-03 18:55:23 -07:00
mikecarper 0cf1fcead9 Preserve telemetry preferences and routes across storage failures 2026-10-03 18:34:12 -07:00
mikecarper 645c8a1119 Reduce radio preamble validation overhead with equivalent math 2026-10-03 18:31:46 -07:00
mikecarper a619c78553 Validate management CLI captures and authenticated ACL snapshots 2026-10-03 18:29:12 -07:00
mikecarper df2145472b Fix management browser authentication and stale decode results 2026-10-03 18:27:49 -07:00
mikecarper 30b18beecd Harden management report persistence and CLI input handling 2026-10-03 18:26:26 -07:00
mikecarper ec0ebeb981 Fix radio profile reconfiguration transaction results 2026-10-03 18:25:22 -07:00
mikecarper 2a3b7e3d3e Keep USB watchdog snapshots coherent and fail-safe 2026-10-03 18:22:32 -07:00
Adam Gessaman f88f6656a4 Merge pull request #63 from agessaman/merge/ota-branch-into-observer-firmware-dev
feat(ota): ota branch channel switch (dev)
2026-10-03 16:41:52 -07:00
mikecarper d3a0637cda Finalize USB watchdog management format as MGR2 2026-10-03 16:34:37 -07:00
mikecarper 24fcbf3247 Merge USB session safety and preserve GPS preference compatibility 2026-10-03 16:12:32 -07:00
agessaman 6d44ab29a9 Merge branch 'feat/ota-branch-switch' into merge/ota-branch-into-observer-firmware-dev 2026-10-03 15:52:39 -07:00
agessaman a5e489330a fix(ota): skip the bare compat search literal when scanning an image
Every image also holds "ota-compat:" with no value (the search string);
finding it first made every channel switch look untagged.
2026-10-03 15:52:21 -07:00
mikecarper 1ddca12a41 Add saved repeater trace exception while repeating is disabled 2026-10-03 15:48:44 -07:00
agessaman 1e3c7b7e78 feat(ota): dev stores /mqtt.json, so its state generation is 2
Builds that only read /mqtt_prefs (gen 1) are refused as channel-switch
targets until they can read /mqtt.json.
2026-10-03 15:47:01 -07:00
agessaman ebd562e2c8 Merge branch 'feat/ota-branch-switch' into merge/ota-branch-into-observer-firmware-dev
# Conflicts:
#	examples/simple_repeater/MyMesh.cpp
2026-10-03 15:47:01 -07:00
agessaman b03fa60372 fix(ota): refuse a channel switch to a build that cannot carry this node
A switch can land on an older build: e.g. prod cannot read dev's /mqtt.json,
and prod's M7 image has no Ethernet. Each image carries an ota-compat tag
(state generation + transports). A switch is flashed without rebooting, the
new image's tag is read (bounded by its length), and boot is pointed back at
the running image unless the target keeps this node's state and transports.
CI now requires the tag in every published binary.
2026-10-03 15:46:46 -07:00