These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)
| Commit: | 94cdec4 | |
|---|---|---|
| Author: | nomdetom | |
remove rssi & improve notes
The documentation is generated from this commit.
| Commit: | 3fec03b | |
|---|---|---|
| Author: | nomdetom | |
Add explicit presence for RSSI: MeshPacket.rx_rssi optional, NodeInfoLite.rssi storage field MeshPacket.rx_rssi was proto3 singular, so an unset value and a genuine 0 dBm reading were byte-identical on the wire (0 is a legal SX126x return, and SX127x's offset+register formula can even go positive). Mark it optional so absence survives encoding, mirroring the precedent already set by NodeInfo.hops_away. NodeInfoLite had no RSSI field at all, so nothing survived a device reboot for replayed history packets to restore - every replay showed RSSI 0 regardless of the real measurement. Add NodeInfoLite.rssi (tag 20, sint32, next free tag) with the same "0 is not automatically unknown" caveat; presence is tracked via NODEINFO_BITFIELD_HAS_RSSI on the firmware side rather than a second wire-level bool, to avoid a RAM cost per stored node. Companion firmware change: meshtastic/firmware, phantom-node-fix-perhaps branch, .notes/plans/plan-executed-snr-rssi-replay-fidelity.md.
| Commit: | 65cf198 | |
|---|---|---|
| Author: | James Rich | |
feat: reject hand-set `deprecated` in the field_metadata annotation The `deprecated` attribute is generator-managed — mirrored from the field's standard `[deprecated = true]` option. A hand-set value inside (meshtastic.field_metadata) previously produced silently divergent output: the Go and Kotlin/Wire generators emitted it while the Swift plugin ignored it (breaking byte-identity), and the schema carried two sources of truth for the same fact. Make it a hard error at generation time in all three generators, with the same message naming the field and the fix. Verified: both protoc plugins reject a hand-set fixture identically; parity over the real schema remains byte-identical; Go tests cover true/false/redundant hand-set cases. Also document the Go plugin's `target=swift` assumption that files set `option swift_prefix = ""` (all meshtastic protos do) — without it, swift-protobuf prefixes generated type names and the emitted extensions would reference nonexistent types; the parity CI catches that divergence. The bundled field_metadata.pb.swift regen picks up the proto comment change (comments only, no functional difference). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
| Commit: | b6ad0e5 | |
|---|---|---|
| Author: | Ben Meadors | |
| Committer: | GitHub | |
Merge pull request #983 from RCGV1/feat/packet-signature-policy feat: add packet authenticity policy schema
| Commit: | 39a6670 | |
|---|---|---|
| Author: | Ben Meadors | |
feat: add FAB firmware edition Adds FAB = 20 to FirmwareEdition for FAB26 Boston and future editions of the international Fab Lab digital fabrication conference. Fills the next sequential event slot after HAMVENTION = 19. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
| Commit: | 8e82031 | |
|---|---|---|
| Author: | vidplace7 | |
2.7: Backport #967 - Rename Seeed Tracker and add SPA06 sensor Backport changes from #967 to 2.7 branch. These changes are already present in the generated protobufs in firmware `master` branch. They should be included here too. This couldn't be cleanly cherrypicked (use squash merge!!!) so simply made the changes manually.
| Commit: | 72e0b39 | |
|---|---|---|
| Author: | oscgonfer | |
| Committer: | vidplace7 | |
Add HM330X sensor Cherrypick of 7b46dfbf5750093a9fba7469fba10b5bc5be021c
| Commit: | f5b94bc | |
|---|---|---|
| Author: | Ben Meadors | |
| Committer: | GitHub | |
Merge pull request #987 from sashko/master Deprecate EU_868 region code
| Commit: | 7b46dfb | |
|---|---|---|
| Author: | oscgonfer | |
Add HM330X sensor
| Commit: | da4b15c | |
|---|---|---|
| Author: | James Rich | |
feat: mirror deprecated field option into field-metadata registry Fields marked `[deprecated = true]` carry that flag in FieldOptions, which every protobuf runtime strips — so apps can't read deprecation at runtime, the same gap this registry already closes for custom attributes like diy_only. Mirror the standard `deprecated` option into the registry as a `deprecated` attribute on FieldMetadata, populated by the generators from the field's own `[deprecated = true]` (never set by hand). Every existing and future deprecated field flows in automatically, with no annotation. - field_metadata.proto: add `optional bool deprecated = 6`, documented as generator-managed. It must be a real field (not a synthetic generator attribute) because the KMP registry instantiates the Wire-generated FieldMetadata type. - protoc-gen-fieldmeta (Go): read FieldOptions.deprecated and upsert the attribute; deprecated-only fields now get entries. Emitters stay generic. - protoc-gen-fieldmeta-swift: mirror field.options.deprecated; align entry and accessor ordering to the Go plugin so output stays byte-identical across many message types (previously only trivially identical with one message type). Regenerate the bundled field_metadata.pb.swift. - FieldMetadataRegistryHandler (KMP/Wire): mirror field.isDeprecated. Guard the generators in CI — previously the Go tests never ran there and the Go/Swift byte-identity was hand-checked only: - .github/workflows/field-metadata.yml: run the Go plugin tests + vet, and diff the Go and Swift generators' output to enforce byte-identity. - protoc-gen-fieldmeta-swift/scripts/verify-parity.sh: the reusable parity check. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
| Commit: | 5f16928 | |
|---|---|---|
| Author: | Oleksandr Kravchuk | |
Deprecate EU_868 region code Ukrainian legislation* was harmonised with the EU's, and UA_868 is now obsolete as it is identical to the EU_868. * https://zakon.rada.gov.ua/laws/show/262-2026-%D0%BF
| Commit: | 223e20e | |
|---|---|---|
| Author: | Benjamin Faershtein | |
| Committer: | Benjamin Faershtein | |
feat: add packet signature policy schema
| Commit: | 821d89b | |
|---|---|---|
| Author: | Thomas Göttgens | |
| Committer: | GitHub | |
interdevice: SD card mount, eject and format commands (#986)
| Commit: | da2fc41 | |
|---|---|---|
| Author: | Thomas Göttgens | |
| Committer: | GitHub | |
Indicator (#721)
| Commit: | a505634 | |
|---|---|---|
| Author: | Ben Meadors | |
Add MEDIUM_TURBO modem preset Medium range preset comparable to MEDIUM_FAST but with 500kHz bandwidth.
| Commit: | c3097e1 | |
|---|---|---|
| Author: | Thomas Göttgens | |
| Committer: | Thomas Göttgens | |
interdevice: transaction level I2C bridge, file transfer and directory listing
| Commit: | 1ae3be3 | |
|---|---|---|
| Author: | Ben Meadors | |
| Committer: | GitHub | |
Merge pull request #979 from meshtastic/develop Develop dangit
| Commit: | 7f885c3 | |
|---|---|---|
| Author: | Jonathan Bennett | |
| Committer: | Jonathan Bennett | |
Add transparent_mode to config.proto Add transparent mode option for LoRa modem functionality.
| Commit: | 678281c | |
|---|---|---|
| Author: | Jonathan Bennett | |
| Committer: | GitHub | |
Fix formatting in portnums.proto (#976)
| Commit: | 9452d3a | |
|---|---|---|
| Author: | Jonathan Bennett | |
| Committer: | GitHub | |
Add transparent_mode to config.proto Add transparent mode option for LoRa modem functionality.
| Commit: | f68e94f | |
|---|---|---|
| Author: | Quency-D | |
Add Heltec RC series boards
| Commit: | 40ee668 | |
|---|---|---|
| Author: | Ian McEwen | |
Add is_unmessagable and is_licensed as fields for DeviceProfile exports
| Commit: | 31b56bd | |
|---|---|---|
| Author: | nomdetom | |
secoond pass beacon bufs
| Commit: | 0b7ab7f | |
|---|---|---|
| Author: | Thomas Göttgens | |
| Committer: | GitHub | |
Add LORA_OTA_APP portnum for firmware updates
| Commit: | c202aea | |
|---|---|---|
| Author: | Thomas Göttgens | |
| Committer: | Thomas Göttgens | |
Rename Seeed Tracker and add sensor (#967) * Rename Seeed Tracker and add sensor * uh, i'll kill that cat * Dear Copilot, stop messing with me
| Commit: | 032b7df | |
|---|---|---|
| Author: | Thomas Göttgens | |
| Committer: | GitHub | |
Rename Seeed Tracker and add sensor (#967) * Rename Seeed Tracker and add sensor * uh, i'll kill that cat * Dear Copilot, stop messing with me
| Commit: | e7e8cff | |
|---|---|---|
| Author: | Garth Vander Houwen | |
Add notify_favorites_only to Waypoint geofence Per-waypoint flag: when set, geofence enter/exit notifications only fire for nodes that are favorites on the receiving device. Favorite status is resolved locally per receiver, so it complements the existing per-waypoint notify_on_enter / notify_on_exit flags. Field 13 (additive); no .options change needed for a bool.
| Commit: | f680aac | |
|---|---|---|
| Author: | Ben Meadors | |
| Committer: | GitHub | |
Merge pull request #939 from NomDeTom/feat/mesh-beacon Feat/mesh beacon
| Commit: | 2ab813c | |
|---|---|---|
| Author: | Ben Meadors | |
| Committer: | GitHub | |
Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
| Commit: | c2fda20 | |
|---|---|---|
| Author: | Garth Vander Houwen | |
add the favorites only part for notifications
| Commit: | 09ce803 | |
|---|---|---|
| Author: | rcarteraz | |
| Committer: | GitHub | |
Fix typo in MAKERFAB_RESERVED constant name
| Commit: | 49d6d6c | |
|---|---|---|
| Author: | rcarteraz | |
| Committer: | GitHub | |
Rename SenseLoRA identifiers to Makerfabs
| Commit: | 9332fe8 | |
|---|---|---|
| Author: | James Rich | |
fix: buf-format module_config.proto reserved names to single line Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
| Commit: | 81a8075 | |
|---|---|---|
| Author: | nomdetom | |
beacon: reference channel-table slot instead of embedding ChannelSettings BroadcastTarget carried a full ChannelSettings per entry (78 B x 4), which pushed ModuleConfig — and the FromRadio/ToRadio envelopes that embed it — past the 512-byte BLE packet budget, breaking the build (#error in PhoneAPI.h). Replace the embedded channel with `optional uint32 channel_index` (tag 4; old tag 3 left as a gap, branch unreleased) referencing a slot in the node's channel table. BroadcastTarget 78 -> 10 B; MeshBeaconConfig 596 -> 324 B. Also clarify that single-target and multi-target are equal, first-class options that differ only in channel representation (broadcast_on_channel inline vs. channel_index reference) — drop the misleading "legacy" label on the single-target path. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NRAF5csgsMn6p1zEcFL8Qz
| Commit: | baad8f6 | |
|---|---|---|
| Author: | nomdetom | |
flags for beacons
| Commit: | 8e1f576 | |
|---|---|---|
| Author: | nomdetom | |
| Committer: | nomdetom | |
Add multi-target broadcast support to ModuleConfig
| Commit: | 8968c77 | |
|---|---|---|
| Author: | nomdetom | |
| Committer: | nomdetom | |
typoo
| Commit: | df742ac | |
|---|---|---|
| Author: | nomdetom | |
| Committer: | nomdetom | |
spaaaaaace
| Commit: | d0f3e0a | |
|---|---|---|
| Author: | nomdetom | |
| Committer: | nomdetom | |
legacy mode activate
| Commit: | e8b47a3 | |
|---|---|---|
| Author: | nomdetom | |
| Committer: | nomdetom | |
mmmmm... beacon
| Commit: | 383ac7c | |
|---|---|---|
| Author: | nomdetom | |
| Committer: | nomdetom | |
feat: add mesh_beacon field to LocalModuleConfig (localonly.proto)
| Commit: | be2d7e2 | |
|---|---|---|
| Author: | nomdetom | |
| Committer: | nomdetom | |
fix: add missing channel.proto and config.proto imports to module_config
| Commit: | 369550b | |
|---|---|---|
| Author: | nomdetom | |
| Committer: | nomdetom | |
feat: add MeshBeacon portnum, wire message, and module config
| Commit: | 03314e6 | |
|---|---|---|
| Author: | Ben Meadors | |
| Committer: | GitHub | |
Merge pull request #955 from NomDeTom/pr2-tmm-trim-bools Pr2 tmm trim bools
| Commit: | d4f7ddb | |
|---|---|---|
| Author: | nomdetom | |
TMM: remove bool toggles and position_precision_bits from TrafficManagementConfig Removes 9 fields that are either simple default-to-off bool toggles or derivable from other config, in favour of the "non-zero implies enabled" convention: Removed (tags reserved so they cannot be reused): 1 enabled 2 position_dedup_enabled 3 position_precision_bits — precision is now driven by the channel's own position_precision ceiling, not a separate TMM field 5 nodeinfo_direct_response 7 rate_limit_enabled 10 drop_unknown_enabled 12 exhaust_hop_telemetry 13 exhaust_hop_position 14 router_preserve_hops Kept (require numeric values): 4 position_min_interval_secs 6 nodeinfo_direct_response_max_hops 8 rate_limit_window_secs 9 rate_limit_max_packets 11 unknown_packet_threshold None of these tags shipped in a stable release. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
| Commit: | 007d7b2 | |
|---|---|---|
| Author: | James Rich | |
| Committer: | James Rich | |
feat: add field metadata option + cross-language registry generators Introduces a structured (meshtastic.field_metadata) custom field option and build-time generators that expose it as reflection-free static accessors in every consumer language: KMP/Wire (Wire SchemaHandler in packages/kmp/buildSrc) and C/Python/TypeScript/Rust/Swift (the tools/protoc-gen-fieldmeta plugin). The TS target is wired into buf.gen.yaml and re-exported from mod.ts as FieldMeta. Generalizes the #905 experiment: one extensible FieldMetadata message carried in a single FieldOptions extension, so adding an attribute is a schema-only change (scalar-only, enforced at generation time) with no new extension number and no generator changes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
| Commit: | ae2a14f | |
|---|---|---|
| Author: | James Rich | |
chore: format powermon.proto with buf 1.71 buf-action runs the latest buf (now 1.71.0), which normalizes block-comment indentation differently than the version master was last formatted with. This applies that formatting so the PR format check passes; no schema change. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
| Commit: | f16a13e | |
|---|---|---|
| Author: | copilot-swe-agent[bot] | |
| Committer: | GitHub | |
fix: apply buf formatting in powermon proto comment block
| Commit: | acde4f2 | |
|---|---|---|
| Author: | Ben Meadors | |
Add LoRa region preset mapping to support region-specific modem presets
| Commit: | f5afb34 | |
|---|---|---|
| Author: | Ben Meadors | |
Add MESHNOLOGY_W12 hardware model Add the Meshnology W12 to the HardwareModel enum.
| Commit: | 1df6c11 | |
|---|---|---|
| Author: | Ben Meadors | |
| Committer: | GitHub | |
Merge pull request #949 from meshtastic/master Master to develop backmerge
| Commit: | ebb6280 | |
|---|---|---|
| Author: | Ben Meadors | |
| Committer: | GitHub | |
Merge pull request #948 from NomDeTom/pr1-nodedb-warmstore Move SNR in nodeDB to a Sint based figure, saving 2 bytes
| Commit: | 0a6c063 | |
|---|---|---|
| Author: | Ben Meadors | |
Add MESHNOLOGY_W10 hardware model Add the Meshnology W10 to the HardwareModel enum. Generated by Meshtastic Readyline.
| Commit: | 59f225f | |
|---|---|---|
| Author: | Ben Meadors | |
Add W10 hardware model Add the Meshnology W10 to the HardwareModel enum. Generated by Meshtastic Readyline.
| Commit: | 383c87c | |
|---|---|---|
| Author: | Ben Meadors | |
| Committer: | GitHub | |
Merge pull request #941 from vidplace7/ham-longname Add "Long_Name" to HamParameters
| Commit: | 485ede7 | |
|---|---|---|
| Author: | Ben Meadors | |
Fix long_name field size to 40 bytes for compatibility with legacy data
| Commit: | 9dacd6b | |
|---|---|---|
| Author: | vidplace7 | |
| Committer: | vidplace7 | |
Add "Long_Name" to HamParameters Adds Long_Name HamParameters. This will be appended to the call_sign in firmware with a // delimter (following Amateur Radio best practices). Since the max length for a callsign is 8 and // uses two characters. The limit for HamParameter.long_name is set to 15 (10 less than traditional LongName). E.g. call_sign = N0CALL long_name = Attic Heltec v3 becomes N0CALL//Attic Heltec v3
| Commit: | 9df55f6 | |
|---|---|---|
| Author: | Quency-D | |
Add Heltec Mesh Tower V2 board.
| Commit: | 064522f | |
|---|---|---|
| Author: | nomdetom | |
It would be a Sint do that
| Commit: | 6f09e89 | |
|---|---|---|
| Author: | Jonathan Bennett | |
| Committer: | GitHub | |
Add TRANSPORT_UNICAST_UDP to mesh.proto
| Commit: | c3937e3 | |
|---|---|---|
| Author: | Manuel | |
-_-
| Commit: | bb9ad2d | |
|---|---|---|
| Author: | Manuel | |
fix comments
| Commit: | 04838ac | |
|---|---|---|
| Author: | Manuel | |
add FULLY_CHARGED, NOT_PRESENT, NOT_PRESENT
| Commit: | 0f9c24a | |
|---|---|---|
| Author: | vidplace7 | |
| Committer: | vidplace7 | |
Add ITU Region 2 Amateur Radio 1.25m band to Config message
| Commit: | 8b68f27 | |
|---|---|---|
| Author: | Austin | |
| Committer: | GitHub | |
Add TINY_FAST and TINY_SLOW presets for Amateur Radio compliance (#934)
| Commit: | e5f7870 | |
|---|---|---|
| Author: | Manuel | |
fix complains about UNKNOWN
| Commit: | 10178a0 | |
|---|---|---|
| Author: | Manuel | |
add BatteryStatus enum
| Commit: | 1009083 | |
|---|---|---|
| Author: | Manuel | |
add new hardware models L2, P4
| Commit: | a9c8396 | |
|---|---|---|
| Author: | copilot-swe-agent[bot] | |
| Committer: | GitHub | |
fix: revert unrelated MeshLink description edit
| Commit: | 5b73986 | |
|---|---|---|
| Author: | copilot-swe-agent[bot] | |
| Committer: | GitHub | |
fix: align Station G3 comment formatting in mesh proto
| Commit: | 79185c6 | |
|---|---|---|
| Author: | copilot-swe-agent[bot] | |
| Committer: | GitHub | |
Fix truncated mesh.proto: restore full file, add LockdownAuth.disable and LockdownStatus.State.DISABLED
| Commit: | 7b46a8d | |
|---|---|---|
| Author: | copilot-swe-agent[bot] | |
| Committer: | GitHub | |
Preserve mesh.proto content and keep intended lockdown changes
| Commit: | e901d98 | |
|---|---|---|
| Author: | niccellular | |
| Committer: | GitHub | |
Add lockdown disable to LockdownAuth and DISABLED to LockdownStatus Supports moving MESHTASTIC_LOCKDOWN from a compile-time build flag to a runtime, client-toggleable setting. - AdminMessage.LockdownAuth.disable (field 6): with a valid passphrase, reverts the device out of lockdown — decrypt all stored config back to plaintext, drop the wrapped DEK / unlock token / monotonic counter / backoff files, reboot into normal mode. APPROTECT is explicitly NOT reversed (the debug-port lockout is permanent on silicon where it is effective; only a full chip erase clears it). - FromRadio.LockdownStatus.State.DISABLED (value 5): reported by a lockdown-capable device that is not currently in lockdown, so a client can render its 'lockdown mode' toggle as OFF. Distinct from NEEDS_PROVISION, which is only used mid-enable.
| Commit: | 519a0c7 | |
|---|---|---|
| Author: | Ben Meadors | |
Merge remote-tracking branch 'origin/master' into develop
| Commit: | dd6c3f8 | |
|---|---|---|
| Author: | Ben Meadors | |
Refactor DrawnShape vertices to use packed sint32 deltas and update TAKPacketV2 payload handling
| Commit: | e3c8af5 | |
|---|---|---|
| Author: | Ben Meadors | |
TAK tweaks
| Commit: | 83ce840 | |
|---|---|---|
| Author: | Ben Meadors | |
Merge branch 'master' into develop
| Commit: | 9ab4a1d | |
|---|---|---|
| Author: | Ben Meadors | |
Add TAKTALK message and room data structures to atak.proto
| Commit: | b9fe83c | |
|---|---|---|
| Author: | vidplace7 | |
| Committer: | vidplace7 | |
Update ham regions, split by ITU Stop combining ITU 2 and 3. They will need VERY different default slotOverrides (default freq). In effect, this means each ham band we support will need 3 "regions", ITU1, ITU2, ITU3. This will allow us to better support hams around the world without stirring anger.
| Commit: | ad3ecfb | |
|---|---|---|
| Author: | Austin | |
| Committer: | GitHub | |
Merge branch 'develop' into master-backmerge
| Commit: | 2e284d9 | |
|---|---|---|
| Author: | vidplace7 | |
master: Split ITU regions for 2M ham bands
| Commit: | a5e522d | |
|---|---|---|
| Author: | Ben Meadors | |
| Committer: | GitHub | |
Merge pull request #920 from vidplace7/ham-70cm Add ITU Region 1 and Region 2/3 Amateur Radio 70cm regions
| Commit: | b61834f | |
|---|---|---|
| Author: | vidplace7 | |
Add ITU Region 1 and Region 2/3 Amateur Radio 70cm band identifiers to config.proto
| Commit: | e978a18 | |
|---|---|---|
| Author: | Thomas Göttgens | |
Merge remote-tracking branch 'origin/master' into develop
| Commit: | 59cb394 | |
|---|---|---|
| Author: | Thomas Göttgens | |
| Committer: | GitHub | |
Add T_ECHO_CARD identifier to mesh.proto (#919)
| Commit: | 210542f | |
|---|---|---|
| Author: | Chloe Bethel | |
| Committer: | GitHub | |
Add rotated SH1107 display type (#913)
| Commit: | 7006d5d | |
|---|---|---|
| Author: | Copilot | |
| Committer: | GitHub | |
Deprecate `ModuleConfig.MQTTConfig.json_enabled` after MQTT JSON removal (#890)
| Commit: | 9d12def | |
|---|---|---|
| Author: | vidplace7 | |
| Committer: | vidplace7 | |
Add lilygo T-Impulse-Plus https://github.com/Xinyuan-LilyGO/T-Impulse-Plus
| Commit: | 9ab0b36 | |
|---|---|---|
| Author: | niccellular | |
Refine session-expiry behavior doc: decrement in place, reboot only on exhaustion The firmware was updated to decrement the on-flash boot count at each session expiry without rebooting (while budget remains), and only hard-lock + reboot when the boot count reaches zero. Mesh routing continues across session boundaries; per-connection auth is revoked and the screen lock re-engages at each roll so clients must re-auth to see content. The exposure ceiling is unchanged — the boot count still ticks down monotonically once per session boundary. Companion firmware change: meshtastic/firmware PR #10349 (commit d2b47e4ca).
| Commit: | 7c44755 | |
|---|---|---|
| Author: | niccellular | |
Fix off-by-one in exposure-ceiling formula The initial passphrase-unlocked session counts toward total exposure too, since boots_remaining is the count of *subsequent* token-driven auto-unlocks (not total sessions). Ceiling is (resolved_boot_count + 1) * max_session_seconds.
| Commit: | 0db7809 | |
|---|---|---|
| Author: | niccellular | |
Clarify exposure-ceiling formula re: boots_remaining=0 sentinel Address review feedback: the formula 'boots_remaining * max_session_seconds' is ambiguous because boots_remaining=0 in the request means 'use firmware default' (TOKEN_DEFAULT_BOOTS), not literally zero boots. A client that sends only max_session_seconds and leaves boots_remaining=0 cannot compute the ceiling from the raw request fields. Document that the formula uses the resolved (post-default) boot count, and call out the sentinel explicitly.
| Commit: | c0e9d0b | |
|---|---|---|
| Author: | niccellular | |
Add LockdownAuth.max_session_seconds for uptime-bounded sessions Per-boot cap on how long a single auto-unlocked session can hold the device's encrypted storage open, in seconds. 0 = unlimited (current behavior, suitable for unattended infrastructure nodes). When non-zero, the firmware arms an uptime timer at unlock. On expiry the device revokes per-connection auth, re-engages screen redaction, and reboots without deleting the token; next boot auto-unlocks via the boot-count TTL (decrementing boots_remaining) and arms a fresh session. Total exposure ceiling = boots_remaining * max_session_seconds. Uses CPU uptime (millis), not wall-clock time, so the cap is immune to GPS spoofing, RTC backup-battery removal, and Faraday cage isolation — none of those move the uptime counter. The only way to reset the session clock is a reboot, which costs a boot from the HMAC-bound on-flash counter. Companion firmware change: meshtastic/firmware PR #10349.
| Commit: | 1089193 | |
|---|---|---|
| Author: | Jonathan Bennett | |
| Committer: | GitHub | |
Add initial protobufs for XEdDSA (#753) * Add initial protobufs for XEdDSA * Add nodeinfo bool has_xeddsa_signed * Remove optional tag from xeddsa sig field * Add missed comment marker * Apply buf format to mesh.proto Agent-Logs-Url: https://github.com/meshtastic/protobufs/sessions/f6082d6b-c47b-42a3-bda3-e269d0b63226 Co-authored-by: thebentern <9000580+thebentern@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: thebentern <9000580+thebentern@users.noreply.github.com>
| Commit: | ff5b392 | |
|---|---|---|
| Author: | Ben Meadors | |
Add precision_bits field to PositionLite message for node precision indication
| Commit: | f899d38 | |
|---|---|---|
| Author: | Ben Meadors | |
Merge branch 'master' into develop
| Commit: | 1c62540 | |
|---|---|---|
| Author: | Ben Meadors | |
| Committer: | GitHub | |
Merge pull request #911 from niccellular/feature/lockdown-signaling Add LockdownAuth and LockdownStatus messages for hardened firmware builds
| Commit: | b302d92 | |
|---|---|---|
| Author: | Ben Meadors | |
Add HardwareModel enum for B&Q Consulting Station G3
| Commit: | 559f3c1 | |
|---|---|---|
| Author: | Ben Meadors | |
Merge branch 'master' into develop
| Commit: | 03eb534 | |
|---|---|---|
| Author: | Ben Meadors | |
Fix formatting in mesh.proto and telemetry.proto by removing extra blank lines
| Commit: | 46c0bec | |
|---|---|---|
| Author: | Ben Meadors | |
| Committer: | GitHub | |
Merge pull request #908 from Quency-D/heltec-mesh-node-t1 Add heltec-mesh-node-t1 product