Proto commits in meshtastic/protobufs

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

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>

The documentation is generated from this commit.

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

Commit:ac7e1ab
Author:Ben Meadors

Buf fmt

Commit:ae5ccf5
Author:niccellular
Committer:niccellular

Add LockdownAuth and LockdownStatus messages for hardened firmware builds Companion proto changes for meshtastic/firmware#10349 (MESHTASTIC_LOCKDOWN hardened build option). Replaces a previous "no schema change" hack that repurposed SecurityConfig.private_key as the passphrase byte transport. AdminMessage.lockdown_auth (= 104): LockdownAuth carries a passphrase plus optional boots/until-epoch overrides, and a lock_now sentinel. Used for first-time provisioning, unlock on subsequent reboots, re-verification on already-unlocked devices, and Lock Now. Firmware decides between provision and unlock based on its own state. FromRadio.lockdown_status (= 18): LockdownStatus reports lockdown state to the client (NEEDS_PROVISION / LOCKED / UNLOCKED / UNLOCK_FAILED) plus structured fields for lock reason, token TTL, and unlock-failure backoff. Sent post-config and in response to each LockdownAuth command. Replaces the earlier scheme of encoding state as magic-string prefixes inside ClientNotification. Both messages are documented inline. No existing fields are altered.

Commit:b24d92a
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:794d61d
Author:copilot-swe-agent[bot]
Committer:GitHub

Apply buf format to deviceonly.proto and deviceonly_legacy.proto Agent-Logs-Url: https://github.com/meshtastic/protobufs/sessions/df6c83e6-b057-425c-8533-f83df8ed0c75 Co-authored-by: thebentern <9000580+thebentern@users.noreply.github.com>

Commit:246ee67
Author:Ben Meadors

Add NodeEnvironmentEntry message

Commit:65400a2
Author:Ben Meadors

2.8: Refactor NodeInfoLite structure and add legacy support for migration

Commit:0296a64
Author:Quency-D

change ICM-42670-P to ICM-42607-P

Commit:b3b8fd6
Author:Quency-D

add MMC5983MA and ICM-42670-P sensors

Commit:2ba6dac
Author:Quency-D

Add heltec-mesh-node-t1 product

Commit:fc5a1a2
Author:James Rich
Committer:James Rich

refactor: flatten config_field to scalar bool extension Replace the ConfigFieldMetadata message wrapper with a direct scalar bool extension on FieldOptions. This allows Wire 6's native emitAppliedOptions to generate @DiyOnlyOption annotations without a custom SchemaHandler, and simplifies access for all downstream clients (Swift, Python, Go). Usage: [(meshtastic.diy_only) = true] instead of [(meshtastic.config_field).diy_only = true]

Commit:9bf4a87
Author:Jonathan Bennett

Experminental PR for adding metadata to protobufs

Commit:1d6f1a7
Author:Jonathan Bennett
Committer:GitHub

More serialHal protos (#904)

Commit:59d806d
Author:Jonathan Bennett
Committer:GitHub

Add SerialHal proto definitions Define SerialHalCommand and SerialHalResponse messages with enums for command types and response results.

Commit:249a808
Author:Ben Meadors
Committer:GitHub

Merge pull request #898 from Quency-D/heltec-v4-r8 add heltec-v4-r8 board

Commit:97ea65a
Author:Tom
Committer:GitHub

New Regions (EU866, EU_NARROW) + New Presets (Lite, Narrow) (#824) * new new_presets * Update comments for frequency bands Per @fifieldt * remove hamfast * Clean up config.proto by removing extra newline Removed unnecessary blank spaces before EU 866MHz comment. * Removed US 433MHz Amateur Use band removing ham settings for now. * Update EU 866MHz band references and descriptions in config.proto * Whitespace * format again --------- Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>

Commit:eaf7d20
Author:Quency-D

add heltec-v4-r8 board

Commit:d004f50
Author:Thomas Göttgens
Committer:GitHub

Add ITU Region 1 and 2/3 Amateur Radio bands (#897)

Commit:793e274
Author:copilot-swe-agent[bot]
Committer:GitHub

Run buf format on atak proto Agent-Logs-Url: https://github.com/meshtastic/protobufs/sessions/059c2e02-63e3-467d-b032-dc5c15883261 Co-authored-by: thebentern <9000580+thebentern@users.noreply.github.com>

Commit:e5b07ae
Author:Ben Meadors
Committer:GitHub

Update atak.proto Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

Commit:3a398ac
Author:Ben Meadors
Committer:GitHub

Update atak.proto Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

Commit:da33d0e
Author:Ben Meadors
Committer:Ben Meadors

Add Environment and SensorFov annotations to TAKPacketV2 Two new top-level optional fields at tags 25 and 26 that attach to any payload_variant. Environment carries weather readings from <environment> CoT detail elements (temperature, wind direction, wind speed). SensorFov carries the 8 geometry attributes of ATAK-CIV's <sensor> element (type, azimuth, range, horizontal and vertical FOV, elevation, roll, model), dropping the 9 display-only attributes (fovAlpha/RGB, strokeColor/Weight, hideFov, fovLabels, displayMagneticReference, rangeLines) that are receiver-side render hints. Units are chosen for compact varint encoding and parity with existing fields: temperature in deci-degrees Celsius (sint32), wind speed in cm/s to match TAKPacketV2.speed, all angles as whole degrees. Tags 27-29 reserved for future annotations before the payload_variant oneof resumes at tag 30.

Commit:052a9fa
Author:Ben Meadors
Committer:Ben Meadors

Add v2.x medline extensions and ZMistEntry message to CasevacReport

Commit:3ce7c51
Author:Ben Meadors
Committer:Ben Meadors

Rename Environment -> TAKEnvironment to avoid SwiftUI collision The bare `Environment` message name clashes with SwiftUI's `@Environment` property wrapper, which is used by every SwiftUI view in an iOS consumer app. Importing the generated proto module (e.g. `MeshtasticProtobufs`) made `Environment` ambiguous in all 78 files of Meshtastic-Apple that reference `@Environment(\.scenePhase)` or similar, breaking the build. Field name `environment` on TAKPacketV2 stays unchanged — only the message type is renamed. Wire format is unaffected (proto3 encodes by tag number, not type name), but all generated code and source-level references must be regenerated. The `TAK` prefix matches the convention used by the outer TAKPacketV2 wrapper and is unambiguous across Swift (no SwiftUI/WeatherKit clash), Kotlin, Python, TypeScript, and C# targets.

Commit:7900e5d
Author:Jonathan Bennett
Committer:Jonathan Bennett

Add two more RemoteShell fields

Commit:940ac38
Author:Thomas Göttgens
Committer:GitHub

add THINKNODE device IDs (#893)

Commit:a045501
Author:oscgonfer
Committer:GitHub

Multiple one wire channels (#886) * Add DS248X bridge * One wire temperature for multiple channels

Commit:98e95ee
Author:Jonathan Bennett
Committer:GitHub

Remote Shell Protobufs (#892) * Add initial dmshell * Remove unused code * Internally use RemoteShell * Formatting fix * Clarify comment for REMOTE_SHELL_APP Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>

Commit:0e5eab1
Author:Ben Meadors
Committer:GitHub

Takv2 geometry and other structures (#891)

Commit:a4c649b
Author:oscgonfer
Committer:GitHub

Add DS248X bridge (#885)

Commit:60842c1
Author:Ben Meadors

Busted

Commit:1e932be
Author:Ben Meadors

Add additional CotType enums for aircraft, ground units, and other data messages

Commit:dd951d7
Author:Ben Meadors

Add ATAK Plugin V2 protobufs and expand CoT enums

Commit:1cd2e56
Author:SeeedZhangyh

Add Hardware Model for T1000-E-Pro

Commit:47205e5
Author:Ben Meadors

Add NodeInfoBatch message for efficient bulk transfer in FromRadio

Commit:45a2d2d
Author:Quency-D

Correct the enumeration value.

Commit:8436e98
Author:Quency-D

add heltec-mesh-node-t096 board

Commit:eba2d94
Author:Ben Meadors
Committer:GitHub

Merge pull request #873 from fablabbcn/enhancement/sht-sensor-consolidation Enhancement/sht sensor consolidation

Commit:313b9ee
Author:DasAuryn

Add GroupAlarm app portnum

Commit:29a82c7
Author:oscgonfer

Add admin command for SHT accuracy setting

Commit:a4234ea
Author:oscgonfer

Add TODO - REMOVE on SHT31, SHT4X, SHT21 and SHTC3

Commit:bfbd52b
Author:oscgonfer

Add SHTXX TelemetrySensorType

Commit:0cc9cb2
Author:Manuel

fix formatting