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