mikecarper
49a02f59d7
Service cached contact persistence between companion loop passes
2026-10-04 03:39:27 -07:00
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
728b16c5d5
Start radio liveness watchdog when loop service begins
2026-10-04 02:05:32 -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
2e84512ba4
Retain and isolate delayed Companion results under backpressure
2026-10-03 23:22:34 -07:00
mikecarper
2fa9a96cce
Inspect received ACK route before clearing its header
2026-10-03 21:28:24 -07:00
mikecarper
64890dc83e
Preserve ACK ownership across contact relocation and retirement
2026-10-03 21:10:49 -07:00
mikecarper
22360f4392
Share lossless voice prefixes across companion announcements
2026-10-03 19:11:15 -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
645c8a1119
Reduce radio preamble validation overhead with equivalent math
2026-10-03 18:31:46 -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
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
mikecarper
d454250cab
Fix USB logging session safety and add hourly GPS sync interval
2026-10-03 15:43:35 -07:00
mikecarper
4bec31b4e1
Merge origin/keymindCascade USB reconnect fixes
2026-10-03 15:37:49 -07:00
agessaman
57dfd38718
fix(ota): always offer another channel's image, even from the same commit
...
Prod and beta are often built from one commit (e.g. after a dev->prod merge),
so a hash match does not mean the images are the same: the native base differs.
After the flash the target channel is native, so this cannot loop.
2026-10-03 15:37:49 -07:00
mikecarper
6febd15ded
Harden USB logging and persist watchdog events in management reports
2026-10-03 15:29:19 -07:00
agessaman
6e2c94e9b2
Merge branch 'feat/ota-branch-switch' into merge/ota-branch-into-observer-firmware-dev
...
# Conflicts:
# .github/workflows/build-observer-firmwares.yml
# examples/simple_repeater/MyMesh.cpp
# examples/simple_room_server/MyMesh.cpp
# src/helpers/ESP32Board.cpp
# src/helpers/ESP32Board.h
# test/test_config_serializer/test_config_serializer.cpp
2026-10-03 15:24:33 -07:00
agessaman
fc182b6f8c
feat(ota): prod/beta channel names for ota branch, with stable/dev aliases
...
Report the selected channel and the build's own channel, tag each baked-in
base for CI, and list ota branch in the CLI docs and portal autocomplete.
2026-10-03 15:19:06 -07:00
agessaman
d408a5c88e
fix(ota): compare by commit hash when targeting another channel
...
Build counters are per channel, so a cross-channel build number is not
comparable: a switch to a channel with a lower counter reported up to date
and never happened. Off the native channel, update unless the hash matches.
2026-10-03 15:17:46 -07:00
Elektr0Vodka
9468167512
feat(ota): add 'ota branch [stable|dev|default]' command
...
(cherry picked from commit 240804999edb284fd276489e6898ccad8a19a8e7)
2026-10-03 15:17:36 -07:00
Elektr0Vodka
c9df204fb6
feat(ota): pass runtime manifest base through otaFromManifest
...
(cherry picked from commit 0bee84c0546780b2e7147148c32087e92d894ac0)
2026-10-03 15:17:36 -07:00
Elektr0Vodka
d88f1ff68b
feat(ota): persist ota_channel selector in NodePrefs
...
(cherry picked from commit db1db5b57ecce408c7441cb6aa70f29608b09603)
2026-10-03 15:17:36 -07:00
Elektr0Vodka
b98d8daa65
feat(ota): channel-base resolver + arg parser with native tests
...
(cherry picked from commit 52a4ccc39093891b64e3752316fe7c191fd9b9ca)
2026-10-03 15:17:36 -07:00
mikecarper
91d533bfff
Fix USB logging ownership, persistence, and reconnect safety
2026-10-03 14:45:57 -07:00
mikecarper
4ca66c2ebb
Persist Companion Bluetooth on-off preference across reboots
2026-10-03 03:09:20 -07:00
mikecarper
8519638367
Add Zira spoken button confirmations and opt-in G726 speech tests
2026-10-03 03:03:02 -07:00
mikecarper
5833ac2f1f
Add compressed self-serve OTA and resilient native USB sleep
...
Use a bounded uzlib-derived block encoder with the existing strict tinf decoder, qualify infrastructure roles, budget temporary RAM, and cache running-image metadata. Add self-serve CLI and policy, USB host-loss sleep grace, hardware test harnesses, regression tests, and CI coverage.
2026-10-03 01:14:23 -07:00
mikecarper
29de7820e5
Integrate upstream fixes and paired nRF52 sensor OTA release profiles
2026-10-02 17:52:12 -07:00
mikecarper
8a69e73226
Reduce nRF52 infrastructure flash usage without trimming sensors
...
Keep Companion and Terminal Chat profiles unchanged; retain full-sensor and reduced-sensor OTA builds. Add compact crypto and OTA names, qualified display asset compression, font license packaging, and scope regression tests.
2026-10-02 15:52:23 -07:00
mikecarper
202930de8f
Fix Companion pairing PIN display and truthful identity startup
2026-10-02 12:42:26 -07:00
mikecarper
a2854f8f43
Support 2+ path-hash width filters
2026-10-02 10:21:17 -07:00
mikecarper
52c163ad6f
Add encoded path-hash width selectors to forwarding rules
2026-10-02 10:07:48 -07:00
mikecarper
8505361ebe
Restore Companion boot display and default WiFi to opt-in
2026-10-01 23:19:48 -07:00
mikecarper
633e2ce832
Add opt-in nRF52 Bluetooth event diagnostics and USB capture
2026-10-01 02:19:45 -07:00
mikecarper
a834882836
Keep Companion get radio compatible with upstream CSV
2026-09-30 23:48:47 -07:00
mikecarper
bb58b40d9c
Persist Full Companion BLE subscriptions across reboot
2026-09-30 23:20:14 -07:00
mikecarper
72982fa55f
Preserve SoftDevice memory side effects under nRF52 LTO
2026-09-30 23:01:37 -07:00
mikecarper
b47e4c137e
Fix official app WiFi commands and Full build qualification
2026-09-30 20:27:05 -07:00