feat(protobufs): sync to firmware-current and consume workspace package (#1097)
* feat(protobufs): sync to firmware-current and consume workspace package Sync the vendored .proto sources to firmware-current (v2.7.25+48), regenerate the v2 TS bindings, and consume the workspace @meshtastic/protobufs (workspace:*) in place of the stale JSR 2.7.20 — finishing the monorepo migration (core was already workspace:*). Includes the one required breaking-change fix: admin nodedb_reset changed int32 to bool, so resetNodes() now sends value: true. * build(protobufs): vendor generated bindings for workspace consumers The package is consumed via workspace:* — its exports point at the TS source, which imports ./dist/meshtastic/*_pb.ts — so the generated output must exist at build time. CI builds web/core with no codegen step and the runners have no buf CLI, so the bindings are vendored here (kept gitignored; lint/format skip them). Regenerate with: pnpm --filter @meshtastic/protobufs gen * fix(protobufs): clean script removes the actual generated output dir buf writes bindings to packages/ts/dist, but clean was removing a non-existent root dist — so it never cleaned stale output. Addresses Copilot review feedback. * refactor: move web app packages/web -> apps/web Aligns the web app with the apps/web layout (matching the Vercel web-test Root Directory and the SDK-migration direction). Pure directory move plus root config: pnpm-workspace (adds apps/*), vitest projects, root tsconfig reference, and the pr/release-web/nightly workflows. vercel.json moved with the app. Build + 36 validation tests green. * feat: config fields, module pages, key verification, telemetry capture Incorporates the firmware-current feature work onto the protobuf foundation: new config fields (Display message bubbles; LoRa fem_lna_mode + serial_hal_only; Telemetry air_quality_screen_enabled); 4 new ModuleConfig pages (TrafficManagement, StatusMessage, TAK, RemoteHardware); the manual Key Verification flow (sendKeyVerification + ClientNotificationDialog stages + Verify Key button); live telemetry capture (nodeDB addDeviceMetrics) and admin hardening (toggleMutedNode, graceful PortNum default); plus the sdk-preview ConfigEditor demo and store/config tests. Build + lint + format + 131 tests green. * chore: drop #1062 (unsaved-change-detection) to match upstream revert #1062 was merged to main by accident (per @danditomaso) and is being reverted. Reverse-applied its diff here via 3-way so #1097 stays consistent with where main is headed, while keeping the feature changes layered on the same files (deviceStore/changeRegistry). Build + 131 tests + lint + format green. * fix(nodes): clean up SNR display in node table and map popup SNR is a ratio measured in dB, not dBm (which is absolute power); the node table and map popup both mislabeled it and crammed three values together: '0dBm/50%/50raw'. The trailing '%/raw' pair was the same heuristic ((snr+10)*5) shown twice — once clamped, once not. Render SNR in dB rounded to one decimal, color-coded by a 0-100% signal-quality heuristic (green/yellow/red), with the quality percentage as a muted secondary. Drop the redundant raw value. Adds unit.db; this matches the existing SNRTooltip, which already renders dB.
This commit is contained in:
@@ -7,7 +7,7 @@ import "meshtastic/device_ui.proto";
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "ConfigProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
message Config {
|
||||
@@ -111,7 +111,7 @@ message Config {
|
||||
ROUTER_LATE = 11;
|
||||
|
||||
/*
|
||||
* Description: Treats packets from or to favorited nodes as ROUTER, and all other packets as CLIENT.
|
||||
* Description: Treats packets from or to favorited nodes as ROUTER_LATE, and all other packets as CLIENT.
|
||||
* Technical Details: Used for stronger attic/roof nodes to distribute messages more widely
|
||||
* from weaker, indoor, or less-well-positioned nodes. Recommended for users with multiple nodes
|
||||
* where one CLIENT_BASE acts as a more powerful base station, such as an attic/roof node.
|
||||
@@ -648,6 +648,11 @@ message Config {
|
||||
* Can not be auto detected but set by proto. Used for 128x128 screens
|
||||
*/
|
||||
OLED_SH1107_128_128 = 4;
|
||||
|
||||
/*
|
||||
* Can not be auto detected but set by proto. Used for 64x128 rotated screens
|
||||
*/
|
||||
OLED_SH1107_ROTATED = 5;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -783,6 +788,11 @@ message Config {
|
||||
* If true, node names will show in long format
|
||||
*/
|
||||
bool use_long_node_name = 13;
|
||||
|
||||
/*
|
||||
* If true, the device will display message bubbles on screen.
|
||||
*/
|
||||
bool enable_message_bubbles = 14;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -924,6 +934,62 @@ message Config {
|
||||
* Brazil 902MHz
|
||||
*/
|
||||
BR_902 = 26;
|
||||
|
||||
/*
|
||||
* ITU Region 1 Amateur Radio 2m band (144-146 MHz)
|
||||
*/
|
||||
ITU1_2M = 27;
|
||||
|
||||
/*
|
||||
* ITU Region 2 Amateur Radio 2m band (144-148 MHz)
|
||||
*/
|
||||
ITU2_2M = 28;
|
||||
|
||||
/*
|
||||
* EU 866MHz band (Band no. 47b of 2006/771/EC and subsequent amendments) for Non-specific short-range devices (SRD)
|
||||
*/
|
||||
EU_866 = 29;
|
||||
|
||||
/*
|
||||
* EU 874MHz and 917MHz bands (Band no. 1 and 4 of 2022/172/EC and subsequent amendments) for Non-specific short-range devices (SRD)
|
||||
*/
|
||||
EU_874 = 30;
|
||||
EU_917 = 31;
|
||||
|
||||
/*
|
||||
* EU 868MHz band, with narrow presets
|
||||
*/
|
||||
EU_N_868 = 32;
|
||||
|
||||
/*
|
||||
* ITU Region 3 Amateur Radio 2m band (144-148 MHz)
|
||||
*/
|
||||
ITU3_2M = 33;
|
||||
|
||||
/*
|
||||
* ITU Region 1 Amateur Radio 70cm band (430-440 MHz)
|
||||
*/
|
||||
ITU1_70CM = 34;
|
||||
|
||||
/*
|
||||
* ITU Region 2 Amateur Radio 70cm band (420-450 MHz)
|
||||
* Note: Some countries do not allocate 420-430 MHz or 440-450 MHz.
|
||||
* Check local law!
|
||||
*/
|
||||
ITU2_70CM = 35;
|
||||
|
||||
/*
|
||||
* ITU Region 3 Amateur Radio 70cm band (430-450 MHz)
|
||||
* Note: Some countries do not allocate 440-450 MHz. Check local law!
|
||||
*/
|
||||
ITU3_70CM = 36;
|
||||
|
||||
/*
|
||||
* ITU Region 2 Amateur Radio 1.25m '125cm' band (220-225 MHz)
|
||||
* Note: Some countries do not allocate 220-222 MHz (Ex: USA/Canada).
|
||||
* Check local law!
|
||||
*/
|
||||
ITU2_125CM = 37;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -938,8 +1004,9 @@ message Config {
|
||||
|
||||
/*
|
||||
* Long Range - Slow
|
||||
* Deprecated in 2.7: Unpopular slow preset.
|
||||
*/
|
||||
LONG_SLOW = 1;
|
||||
LONG_SLOW = 1 [deprecated = true];
|
||||
|
||||
/*
|
||||
* Very Long Range - Slow
|
||||
@@ -978,6 +1045,78 @@ message Config {
|
||||
* It is not legal to use in all regions due to this wider bandwidth.
|
||||
*/
|
||||
SHORT_TURBO = 8;
|
||||
|
||||
/*
|
||||
* Long Range - Turbo
|
||||
* This preset performs similarly to LongFast, but with 500Khz bandwidth.
|
||||
*/
|
||||
LONG_TURBO = 9;
|
||||
|
||||
/*
|
||||
* Lite Fast
|
||||
* Medium range preset optimized for EU 866MHz SRD band with 125kHz bandwidth.
|
||||
* Comparable link budget to MEDIUM_FAST but compliant with Band no. 47b of 2006/771/EC.
|
||||
*/
|
||||
LITE_FAST = 10;
|
||||
|
||||
/*
|
||||
* Lite Slow
|
||||
* Medium-to-moderate range preset optimized for EU 866MHz SRD band with 125kHz bandwidth.
|
||||
* Comparable link budget to LONG_FAST but compliant with Band no. 47b of 2006/771/EC.
|
||||
*/
|
||||
LITE_SLOW = 11;
|
||||
|
||||
/*
|
||||
* Narrow Fast
|
||||
* Medium-to-moderate range preset optimized for EU 868MHz band with 62.5kHz bandwidth.
|
||||
* Comparable link budget to SHORT_SLOW, but with half the data rate.
|
||||
* Intended to avoid interference with other devices.
|
||||
*/
|
||||
NARROW_FAST = 12;
|
||||
|
||||
/*
|
||||
* Narrow Slow
|
||||
* Moderate range preset optimized for EU 868MHz band with 62.5kHz bandwidth.
|
||||
* Comparable link budget and data rate to LONG_FAST.
|
||||
*/
|
||||
NARROW_SLOW = 13;
|
||||
|
||||
/*
|
||||
* Tiny Fast
|
||||
* Preset optimized for compliance with Amateur Radio restrictions with 20kHz bandwidth.
|
||||
* Many regions limit data transmission bandwidth in lower amateur bands (2 Meter).
|
||||
* Note: TCXO with tight tolerances (±5 ppm or better) is *absolutely required* at these narrow bandwidths.
|
||||
* Only compatible with SX127x and SX126x chipsets.
|
||||
* Comparable link budget and data rate to LONG_FAST.
|
||||
*/
|
||||
TINY_FAST = 14;
|
||||
|
||||
/*
|
||||
* Tiny Slow
|
||||
* Preset optimized for compliance with Amateur Radio restrictions with 20kHz bandwidth.
|
||||
* Many regions limit data transmission bandwidth in lower amateur bands (2 Meter).
|
||||
* Note: TCXO with tight tolerances (±5 ppm or better) is *absolutely required* at these narrow bandwidths.
|
||||
* Only compatible with SX127x and SX126x chipsets.
|
||||
* Comparable link budget and data rate to LONG_MODERATE.
|
||||
*/
|
||||
TINY_SLOW = 15;
|
||||
}
|
||||
|
||||
enum FEM_LNA_Mode {
|
||||
/*
|
||||
* FEM_LNA is present but disabled
|
||||
*/
|
||||
DISABLED = 0;
|
||||
|
||||
/*
|
||||
* FEM_LNA is present and enabled
|
||||
*/
|
||||
ENABLED = 1;
|
||||
|
||||
/*
|
||||
* FEM_LNA is not present on the device
|
||||
*/
|
||||
NOT_PRESENT = 2;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1100,6 +1239,16 @@ message Config {
|
||||
* Sets the ok_to_mqtt bit on outgoing packets
|
||||
*/
|
||||
bool config_ok_to_mqtt = 105;
|
||||
|
||||
/*
|
||||
* Set where LORA FEM is enabled, disabled, or not present
|
||||
*/
|
||||
FEM_LNA_Mode fem_lna_mode = 106;
|
||||
|
||||
/*
|
||||
* Don't use radiolib to initialize the radio, instead listen for a serialHal connection
|
||||
*/
|
||||
bool serial_hal_only = 107;
|
||||
}
|
||||
|
||||
message BluetoothConfig {
|
||||
|
||||
Reference in New Issue
Block a user