mikecarper
99ff7bd693
Allow explicit contact imports with discovery filters enabled
2026-09-08 20:07:25 -07:00
mikecarper
be41d9dd79
Cache Full Companion paths and shared secrets to recover RAM
2026-09-08 12:21:30 -07:00
mikecarper
66894f9958
Harden nRF52 contact and settings persistence
2026-09-02 17:32:43 -07:00
mikecarper
1629725d7d
Add safe ESP32 transports and Indicator UI
...
Reserve board-specific GPIOs, make ESP-NOW channel/format handling configurable, and coordinate WiFi, BLE, NTP, MQTT, and host actions safely.
Add the Indicator message page, exclusive transport selector, dynamic 480/320 rendering, larger transport typography, pairing cleanup, and corresponding tests and documentation.
2026-08-31 14:29:42 -07:00
mikecarper
2143d3e04b
Merge upstream dev companion CLI updates
2026-08-28 17:31:28 -07:00
mikecarper
b984fdcb4c
Harden fast RXPS timing and board behavior
2026-08-24 15:10:54 -07:00
mikecarper
1a43123d2c
Expand and harden full companion profiles
2026-08-24 01:57:38 -07:00
Scott Powell
e485d01dcb
support for CMD_SEND_TXT_MSG and new TXT_TYPE_CLI_COMMAND
2026-08-23 22:49:45 +10:00
Scott Powell
2c0ace2519
* new TXT_TYPE_CLI_COMMAND (3)
2026-08-23 22:04:05 +10:00
Scott Powell
afb969ccca
* initial wiring/routing of CLI commands to companion (either via app/serial interface, or remotely via txt message)
2026-08-21 20:55:57 +10:00
Thomas Osterried
b762420433
Skip empty channel slots in searchChannelsByHash
...
An unconfigured slot has an all-zero secret, so it matches null-key group traffic (a sender with an unset PSK). The zero-key MAC validates against the empty slot and the foreign message is delivered as if it belonged to that channel — every node with a free slot is a null-key sink. Skip empty slots.
2026-08-19 09:35:25 +02:00
mikecarper
4d51d49660
Improve Companion terminal routing and controls
2026-08-11 12:19:41 -07:00
mikecarper
26d6e0f99a
Harden message retry replacement and seed testing channel
2026-08-07 23:22:31 -07:00
mikecarper
11b692abfa
Harden firmware recovery and retries
...
Improve companion BLE delivery and idempotent remote CLI retries, make FPF7 persistence atomic with FPF6 migration, verify staged OTA data on resume, and clarify filter policy wildcard and BlackHole semantics.
2026-08-07 16:24:53 -07:00
mikecarper
bda0722ad8
Harden nRF52 storage and hardware recovery
2026-07-21 00:01:01 -07:00
mikecarper
e3f47b487b
Harden packet, retry, and alert handling
2026-07-13 16:37:32 -07:00
mikecarper
b9e7e416be
Harden retry, region, radio, and alert logic
2026-07-13 13:18:49 -07:00
Scott Powell
538ac38e18
* fix for counter in RESP_CODE_CONTACTS_START
2026-06-14 18:39:34 +10:00
Scott Powell
c2d223ff55
* now handle the case where onAdvertRecv() should _replace_ the anon contact slot
2026-06-14 18:12:08 +10:00
Scott Powell
07648e3344
* fix for anon contacts when full
2026-06-14 17:50:41 +10:00
Scott Powell
bc5d648204
* contacts sync fix
...
* fix for reusing transient/anon contacts only
2026-06-01 19:04:42 +10:00
Scott Powell
d9df8307ca
* first draft
2026-06-01 16:49:31 +10:00
Scott Powell
a130a95a0d
* added 6th byte to ACK, with RNG
2026-05-21 00:00:03 +10:00
Scott Powell
717142abd6
* bug fix
2026-05-19 17:06:42 +10:00
Scott Powell
2eb747d504
* fix
2026-05-17 22:38:42 +10:00
Scott Powell
f6e6fdaa05
* support for sending 5-byte ACKs
2026-05-17 22:10:13 +10:00
liamcottle
ed326255d5
add support for direct paths when sending group data
2026-03-23 21:46:21 +13:00
Janez T
2f68769185
fix: Widen grp data type
...
ref: #1928
2026-03-19 09:25:42 +01:00
Janez T
1fb26e7623
fix: Drop grp data timestamp
...
ref: #1928
2026-03-19 09:22:12 +01:00
Janez T
f25d7a882a
fix: Align channel data framing
...
ref: #1928
2026-03-18 20:14:22 +01:00
Janez T
a21b83b127
fix: address comments
...
ref:
2026-03-18 20:09:11 +01:00
Janez T
9b84278607
feat: Add support for PAYLOAD_TYPE_GRP_DATA
...
Docs changes are to reflect how it is currently in fw
This adds ability to send datagram data to everyone in channel
2026-03-18 20:08:52 +01:00
Wouter Bijen and Claude Opus 4.6
2cb08775c0
Clarify comment wording: 1 = direct (0 hops)
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-03 08:40:17 +01:00
Wouter Bijen and Claude Opus 4.6
c016db86d5
Address PR review: subtract-1 encoding and clamp max_hops
...
- Change > to >= so stored value 1 means direct/0-hop only (liamcottle)
- Clamp max_hops to 63 on write since getPathHashCount() caps at 63 (robekl)
- Update comments to reflect encoding: 0=no limit, 1=direct only, N=up to N-1 hops
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-03 08:37:22 +01:00
Wouter Bijen and Claude Opus 4.6
00566741f6
Add configurable max hops filter for auto-add contacts
...
Filter auto-add of new contacts by hop count (issues #1533 , #1546 ).
Setting is configurable from the companion app via extended
CMD_SET/GET_AUTOADD_CONFIG protocol (0 = no limit, 1-63 = max hops).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 20:41:41 +01:00
Scott Powell
3e76161e9c
* refactor of Contact/Client out_path_len (stored in files), from signed to unsigned byte (+2 squashed commits)
...
Squashed commits:
[f326e25] * misc
[fa5152e] * new 'path mode' parsing in Dispatcher
2026-02-21 19:35:51 +11:00
taco
31ba971c60
only store advblob when adding/updating contacts
2026-02-01 00:02:30 +11:00
taco
c61fde9328
always send PUSH_CODE_NEW_ADVERT when advert was not added to contacts[]
2026-01-16 13:15:35 +11:00
taco
df6687034a
bootstrap RTC from contact.lastmod and improve slot overwrite logic
...
slot overwrite logic can now safely use contact.lastmod to find oldest contact for overwrite
2026-01-15 18:01:20 +11:00
taco
741564dd48
refactor: add populateContactFromAdvert()
2026-01-15 18:01:20 +11:00
taco
403ce1db08
contacts: granular autoadd and overwrite-oldest
2026-01-15 18:01:20 +11:00
Scott Powell
3af25495bb
* Repeater: new anon request sub-type: ANON_REQ_TYPE_REGIONS (rate limited to max 4 every 3 mins)
...
* Companion: new CMD_SEND_ANON_REQ command (reply with existing RESP_CODE_SENT frame)
2026-01-03 12:02:15 +11:00
Scott Powell
676c317f78
* refactor: on-demand getSharedSecret()
2025-12-06 19:17:45 +11:00
taco
638f41d143
calculate shared_secret on demand
2025-12-06 16:21:17 +11:00
Winston Lowe
031fa1e704
Changed uint to a uint8_t
2025-11-20 21:58:42 -08:00
Scott Powell
d9ff3a4d02
* Mesh: new sendFlood() overload with transport codes.
...
* BaseChatMesh: sendFloodScoped(), for overriding with some outbound 'scope' / TransportKey
* companion: new 'send_scope' variable.
2025-11-04 01:21:56 +11:00
Scott Powell
7755400a35
* Companion: Now using transport codes { 0, 0 } when Share contact zero hop.
...
* Repeater: onAdvertRecv(), adverts via Share now NOT added to neighbours table
2025-10-31 20:40:22 +11:00
Scott Powell
a288ac06a6
Merge branch 'dev' into reciprocal-path-retry
2025-09-16 13:03:41 +10:00
liamcottle
561dbea30f
update lastmod when a new message is received
2025-09-15 12:28:26 +12:00
Scott Powell
74dea260e5
* proposed change for re-trying reciprocal path transmit
2025-09-08 19:22:59 +10:00