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:
@@ -0,0 +1,294 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="546.5 262.94 1017.99 1044.37">
|
||||
<defs><style>
|
||||
.cls-1 {
|
||||
fill: #383838;
|
||||
}
|
||||
.cls-2 {
|
||||
fill: #9f9f9e;
|
||||
}
|
||||
.cls-3 {
|
||||
fill: #cbcccb;
|
||||
}
|
||||
.cls-4 {
|
||||
fill: #b7b7b7;
|
||||
}
|
||||
.cls-5 {
|
||||
fill: #353535;
|
||||
}
|
||||
.cls-6 {
|
||||
fill: #b1a368;
|
||||
}
|
||||
.cls-7 {
|
||||
fill: #2c2d2d;
|
||||
}
|
||||
.cls-10, .cls-11, .cls-8, .cls-9 {
|
||||
fill: none;
|
||||
stroke: #050606;
|
||||
}
|
||||
.cls-10, .cls-11, .cls-8 {
|
||||
stroke-miterlimit: 10;
|
||||
}
|
||||
.cls-8, .cls-9 {
|
||||
stroke-width: 2px;
|
||||
}
|
||||
.cls-9 {
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
}
|
||||
.cls-10 {
|
||||
stroke-width: 2.04px;
|
||||
}
|
||||
.cls-11 {
|
||||
stroke-width: 1.99px;
|
||||
}
|
||||
.cls-12 {
|
||||
fill: #c08c2d;
|
||||
}
|
||||
.cls-13 {
|
||||
fill: #af7a2b;
|
||||
}
|
||||
</style></defs><g id="Layer_7" data-name="Layer 7"><rect
|
||||
class="cls-1"
|
||||
x="625.5"
|
||||
y="879.33"
|
||||
width="29.53"
|
||||
height="404.5"
|
||||
></rect><polyline
|
||||
class="cls-2"
|
||||
points="1542.78 1109.71 1563.49 1109.71 1563.49 1242.3 1542.78 1242.3"
|
||||
></polyline><path
|
||||
class="cls-2"
|
||||
d="M1542.78,895.89h4.69a5.67,5.67,0,0,1,5.67,5.67v84.65a5.67,5.67,0,0,1-5.67,5.67h-4.69"
|
||||
></path><rect
|
||||
class="cls-3"
|
||||
x="645.26"
|
||||
y="865.2"
|
||||
width="897.52"
|
||||
height="441.11"
|
||||
rx="11.7"
|
||||
></rect><path
|
||||
class="cls-2"
|
||||
d="M678.73,865.2V978.68a3.67,3.67,0,0,0,3.67,3.67h41a2.35,2.35,0,0,1,2.35,2.35v321.61h789.46V865.2Zm811.52,416.11H750.79V974.41a17.06,17.06,0,0,0-17.06-17.06h-27.5a2.5,2.5,0,0,1-2.5-2.5V892.7a2.5,2.5,0,0,1,2.5-2.5h784Z"
|
||||
></path><path
|
||||
class="cls-3"
|
||||
d="M1490.25,890.2v391.11H750.79V974.41a17,17,0,0,0-7.2-13.92V890.2Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M743.59,890.2v70.29a17,17,0,0,0-9.86-3.14h-27.5a2.5,2.5,0,0,1-2.5-2.5V892.7a2.5,2.5,0,0,1,2.5-2.5Z"
|
||||
></path><rect
|
||||
class="cls-2"
|
||||
x="669.71"
|
||||
y="1013.84"
|
||||
width="13.53"
|
||||
height="148.4"
|
||||
></rect><path
|
||||
class="cls-5"
|
||||
d="M572,871.09a24.48,24.48,0,0,0-24.48,24.48V960.5h23.89v28.71L592,967h44.49V871.09Zm20,70.58a13.44,13.44,0,1,1,13.43-13.43A13.43,13.43,0,0,1,592,941.67Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M576.85,1186.92h59.64v102.83H572a24.48,24.48,0,0,1-24.48-24.48v-60.92h23.89v-25.68Z"
|
||||
></path><rect
|
||||
class="cls-6"
|
||||
x="1266.59"
|
||||
y="750.8"
|
||||
width="103.92"
|
||||
height="64.66"
|
||||
rx="3.93"
|
||||
></rect><path
|
||||
class="cls-6"
|
||||
d="M1283.29,856.16H1355a2.55,2.55,0,0,1,2.55,2.55v6.48a0,0,0,0,1,0,0h-76.8a0,0,0,0,1,0,0v-6.48A2.55,2.55,0,0,1,1283.29,856.16Z"
|
||||
></path><path
|
||||
class="cls-6"
|
||||
d="M1271.86,815.46h92.43a0,0,0,0,1,0,0v28.12a2.55,2.55,0,0,1-2.55,2.55h-87.32a2.55,2.55,0,0,1-2.55-2.55V815.46A0,0,0,0,1,1271.86,815.46Z"
|
||||
></path><rect
|
||||
class="cls-6"
|
||||
x="1285.94"
|
||||
y="846.13"
|
||||
width="65.99"
|
||||
height="10.03"
|
||||
></rect><polyline
|
||||
class="cls-6"
|
||||
points="1359.86 750.8 1359.86 746.51 1277.14 746.51 1277.14 750.8"
|
||||
></polyline><path
|
||||
class="cls-1"
|
||||
d="M1318.55,263.94h0a44,44,0,0,1,44,44V746.51a0,0,0,0,1,0,0h-88a0,0,0,0,1,0,0V308a44,44,0,0,1,44-44Z"
|
||||
></path><rect
|
||||
class="cls-7"
|
||||
x="1274.53"
|
||||
y="328.62"
|
||||
width="88.04"
|
||||
height="5.99"
|
||||
></rect><rect
|
||||
class="cls-7"
|
||||
x="1274.53"
|
||||
y="355.81"
|
||||
width="88.04"
|
||||
height="5.99"
|
||||
></rect><path
|
||||
class="cls-8"
|
||||
d="M1490.25,890.2v391.11H750.79V974.41a17.06,17.06,0,0,0-17.06-17.06h-27.5a2.5,2.5,0,0,1-2.5-2.5V892.7a2.5,2.5,0,0,1,2.5-2.5h784m25-25H678.73V978.68a3.68,3.68,0,0,0,3.67,3.67h41a2.35,2.35,0,0,1,2.35,2.35v321.61h789.46V865.2Z"
|
||||
></path><line
|
||||
class="cls-8"
|
||||
x1="743.6"
|
||||
y1="960.49"
|
||||
x2="743.6"
|
||||
y2="890.2"
|
||||
></line><rect
|
||||
class="cls-8"
|
||||
x="669.71"
|
||||
y="1013.84"
|
||||
width="13.53"
|
||||
height="148.4"
|
||||
></rect><path
|
||||
class="cls-9"
|
||||
d="M636.49,871.09V967H592l-20.61,22.25V960.5H547.5V895.57A24.48,24.48,0,0,1,572,871.09Z"
|
||||
></path><path
|
||||
class="cls-9"
|
||||
d="M576.85,1186.92h59.64v102.83H572a24.48,24.48,0,0,1-24.48-24.48v-60.92h23.89v-25.68Z"
|
||||
></path><circle
|
||||
class="cls-9"
|
||||
cx="592"
|
||||
cy="1258.1"
|
||||
r="13.44"
|
||||
></circle><circle
|
||||
class="cls-9"
|
||||
cx="592"
|
||||
cy="928.24"
|
||||
r="13.44"
|
||||
></circle><line
|
||||
class="cls-9"
|
||||
x1="571.39"
|
||||
y1="960.5"
|
||||
x2="636.49"
|
||||
y2="960.5"
|
||||
></line><line
|
||||
class="cls-9"
|
||||
x1="571.39"
|
||||
y1="1204.35"
|
||||
x2="636.49"
|
||||
y2="1204.35"
|
||||
></line><polyline
|
||||
class="cls-8"
|
||||
points="1542.78 1109.71 1563.49 1109.71 1563.49 1242.3 1542.78 1242.3"
|
||||
></polyline><path
|
||||
class="cls-8"
|
||||
d="M1542.78,895.89h4.69a5.67,5.67,0,0,1,5.67,5.67v84.65a5.67,5.67,0,0,1-5.67,5.67h-4.69"
|
||||
></path><path
|
||||
class="cls-8"
|
||||
d="M1318.55,263.94h0a44,44,0,0,1,44,44V746.51a0,0,0,0,1,0,0h-88a0,0,0,0,1,0,0V308a44,44,0,0,1,44-44Z"
|
||||
></path><rect
|
||||
class="cls-10"
|
||||
x="1266.59"
|
||||
y="750.8"
|
||||
width="103.92"
|
||||
height="64.66"
|
||||
rx="3.93"
|
||||
></rect><path
|
||||
class="cls-10"
|
||||
d="M1283.29,856.16H1355a2.55,2.55,0,0,1,2.55,2.55v6.48a0,0,0,0,1,0,0h-76.8a0,0,0,0,1,0,0v-6.48A2.55,2.55,0,0,1,1283.29,856.16Z"
|
||||
></path><path
|
||||
class="cls-10"
|
||||
d="M1271.86,815.46h92.43a0,0,0,0,1,0,0v28.12a2.55,2.55,0,0,1-2.55,2.55h-87.32a2.55,2.55,0,0,1-2.55-2.55V815.46A0,0,0,0,1,1271.86,815.46Z"
|
||||
></path><rect
|
||||
class="cls-11"
|
||||
x="1285.94"
|
||||
y="846.13"
|
||||
width="65.99"
|
||||
height="10.03"
|
||||
></rect><polyline
|
||||
class="cls-10"
|
||||
points="1359.86 750.8 1359.86 746.51 1277.14 746.51 1277.14 750.8"
|
||||
></polyline><rect
|
||||
class="cls-10"
|
||||
x="1274.53"
|
||||
y="328.62"
|
||||
width="88.04"
|
||||
height="5.99"
|
||||
></rect><rect
|
||||
class="cls-10"
|
||||
x="1274.53"
|
||||
y="355.81"
|
||||
width="88.04"
|
||||
height="5.99"
|
||||
></rect><path
|
||||
class="cls-2"
|
||||
d="M722.88,912.78a14,14,0,1,0,14,14A13.95,13.95,0,0,0,722.88,912.78Zm0,21.5a7.55,7.55,0,1,1,7.54-7.55A7.55,7.55,0,0,1,722.88,934.28Z"
|
||||
></path><circle
|
||||
class="cls-8"
|
||||
cx="722.88"
|
||||
cy="926.73"
|
||||
r="7.55"
|
||||
></circle><circle
|
||||
class="cls-8"
|
||||
cx="722.88"
|
||||
cy="926.73"
|
||||
r="13.95"
|
||||
></circle><polyline
|
||||
class="cls-12"
|
||||
points="645.26 1186.92 636.49 1186.92 576.85 1186.92 571.39 1178.67 562.49 1178.67 562.49 989.21 571.39 989.21 592 966.96 636.49 966.96 645.26 966.96"
|
||||
></polyline><line
|
||||
class="cls-8"
|
||||
x1="636.49"
|
||||
y1="1283.83"
|
||||
x2="645.26"
|
||||
y2="1283.83"
|
||||
></line><line
|
||||
class="cls-8"
|
||||
x1="636.49"
|
||||
y1="879.33"
|
||||
x2="645.26"
|
||||
y2="879.33"
|
||||
></line><rect
|
||||
class="cls-13"
|
||||
x="562.49"
|
||||
y="1120.88"
|
||||
width="82.77"
|
||||
height="10.25"
|
||||
></rect><rect
|
||||
class="cls-13"
|
||||
x="562.49"
|
||||
y="1095.19"
|
||||
width="82.77"
|
||||
height="1.15"
|
||||
></rect><rect
|
||||
class="cls-13"
|
||||
x="562.49"
|
||||
y="1038.19"
|
||||
width="82.77"
|
||||
height="4.3"
|
||||
></rect><rect
|
||||
class="cls-13"
|
||||
x="562.49"
|
||||
y="1013.84"
|
||||
width="82.51"
|
||||
height="2.29"
|
||||
></rect><rect
|
||||
class="cls-13"
|
||||
x="562.49"
|
||||
y="999.23"
|
||||
width="82.77"
|
||||
height="4.58"
|
||||
></rect><rect
|
||||
class="cls-13"
|
||||
x="562.49"
|
||||
y="1065.4"
|
||||
width="82.77"
|
||||
height="6.02"
|
||||
></rect><rect
|
||||
class="cls-13"
|
||||
x="563.65"
|
||||
y="1155.63"
|
||||
width="81.61"
|
||||
height="6.61"
|
||||
></rect><polyline
|
||||
class="cls-9"
|
||||
points="645.26 1186.92 636.49 1186.92 576.85 1186.92 571.39 1178.67 562.49 1178.67 562.49 989.21 571.39 989.21 592 966.96 636.49 966.96 645.26 966.96"
|
||||
></polyline><rect
|
||||
class="cls-8"
|
||||
x="645.26"
|
||||
y="865.2"
|
||||
width="897.52"
|
||||
height="441.11"
|
||||
rx="11.7"
|
||||
></rect></g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.7 KiB |
Reference in New Issue
Block a user