Expand the TAKPacketV2 payload_variant with three new typed messages at
tags 38/39/40, extend GeoChat with receipt fields, add 43 new CotType
enum entries (82-124), and add 3 DrawnShape.Kind / 5 Marker.Kind values
for types the previous rollout left on the cot_type_str fallback path.
- CasevacReport (tag 38): 9-line MEDEVAC with Precedence / HlzMarking /
Security enums and equipment_flags / terrain_flags bitfields. Mirrors
ATAK's <_medevac_> detail element; captures what the raw-detail
fallback would otherwise drop (patient counts, zone marker, freq).
- EmergencyAlert (tag 39): typed record for b-a-o-* / b-a-g alerts,
carries authoring_uid and cancel_reference_uid so modern receivers
can handle the alert chain without XML parsing.
- TaskRequest (tag 40): t-s engagement / tasking record with Priority /
Status enums, task_type / target_uid / assignee_uid / note fields.
All strings capped tight so the worst case fits under the LoRa MTU.
- GeoChat (tag 31): append receipt_for_uid + receipt_type for b-t-f-d
(delivered) and b-t-f-r (read) receipts riding on the existing chat
slot — no new oneof case needed.
- CotType: +43 values covering a-f-G-E-V-A self PLI, the neutral-
aircraft affiliation, the full 2525 quick-drop set (artillery /
building / mine / ship / sniper / tank / troops / vehicle) across
unknown / neutral / hostile / friendly affiliations, mission points
(GOTO / IP / CP / OP), vehicle shapes, ellipse drawing, image
marker, chat receipts, custom emergency, and tasking.
- DrawnShape.Kind: +Ellipse (8) / Vehicle2D (9) / Vehicle3D (10).
- Marker.Kind: +GoToPoint (8) / InitialPoint (9) / ContactPoint (10)
/ ObservationPost (11) / ImageMarker (12).
- atak.options: pool sizing for every new field. int_size:8 for byte
counts and bitfields, max_size:12-48 for strings to keep the worst-
case wire size under 237B.
All additions are append-only — proto3 unknown-field semantics
preserve wire compatibility for pre-update receivers.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The typed geometry payloads added in c61fcb5 introduced a top-level
`message GeoPoint` for delta-encoded vertices in DrawnShape / RangeAndBearing
/ Route. That collides with the pre-existing `meshtastic.GeoPoint` in
device_ui.proto (an unrelated zoom/latitude/longitude type used by the
on-device map UI).
protoc alone doesn't catch the duplicate because the SDK's build only
compiles atak.proto in isolation, but Wire (used by Meshtastic-Android
to generate Kotlin classes for the whole meshtastic package) does, and
refuses to build atak.proto with:
meshtastic/atak.proto needs to import meshtastic/device_ui.proto
for field vertices ... in message meshtastic.DrawnShape
Rename the new type to CotGeoPoint — matches the existing CotType /
CotHow naming convention in atak.proto, keeps the meaning obvious, and
doesn't touch the device_ui schema or any caller of the old map-UI
GeoPoint. Field numbers and wire format are unchanged.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Bump prost and prost-types from 0.13.3 to 0.14.3 along with
all transitive dependency updates to resolve a known security
vulnerability in the Rust protobuf stack.
Add TAKConfig to ModuleConfig with Team and MemberRole fields,
allowing TAK_TRACKER devices to configure ATAK group settings
instead of using hardcoded defaults.
- module_config.proto: TAKConfig message (team, role) at oneof field 16
- localonly.proto: tak field at position 17 in LocalModuleConfig
- admin.proto: TAK_CONFIG = 15 in ModuleConfigType enum
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>