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,546 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="713.62 574.61 677 692.34">
|
||||
<defs><style>
|
||||
.cls-1 {
|
||||
fill: #d3d3d3;
|
||||
}
|
||||
.cls-2 {
|
||||
fill: #bfbfbe;
|
||||
}
|
||||
.cls-3 {
|
||||
fill: #b0b0af;
|
||||
}
|
||||
.cls-4 {
|
||||
fill: #e5e5e3;
|
||||
}
|
||||
.cls-5 {
|
||||
fill: #353535;
|
||||
}
|
||||
.cls-6, .cls-7 {
|
||||
fill: none;
|
||||
stroke: #050606;
|
||||
stroke-miterlimit: 10;
|
||||
}
|
||||
.cls-6 {
|
||||
stroke-width: 1.65px;
|
||||
}
|
||||
.cls-7 {
|
||||
stroke-width: 3px;
|
||||
}
|
||||
.cls-8 {
|
||||
fill: #cccccb;
|
||||
}
|
||||
</style></defs><g id="Layer_4" data-name="Layer 4"><path
|
||||
class="cls-1"
|
||||
d="M742.78,1220.62c-19.75-8.13-31.52-23.69-26.5-40.61l69.29-233.38a11,11,0,0,1,2.09,4.35l4.07,19.26"
|
||||
></path><path
|
||||
class="cls-2"
|
||||
d="M790,962.24l-65.73,221.37a30.26,30.26,0,0,0,33.33,38.56L842.4,1210"
|
||||
></path><path
|
||||
class="cls-3"
|
||||
d="M807.29,1043.86l-30.5,104.26-18.71,2.1,30-98.73a3,3,0,0,0-2.87-3.87,6.45,6.45,0,0,1-6.16-8.36l16.23-52.36Z"
|
||||
></path><polygon
|
||||
class="cls-3"
|
||||
points="828.12 1142.37 783.87 1147.34 809.96 1056.49 828.12 1142.37"
|
||||
></polygon><path
|
||||
class="cls-3"
|
||||
d="M775.27,1153.34,761.91,1199a3.68,3.68,0,0,1,0-2.11,5.17,5.17,0,0,0-5-6.53h-2.43a6.34,6.34,0,0,1-6.07-8.19l8.14-26.82Z"
|
||||
></path><polygon
|
||||
class="cls-3"
|
||||
points="839.03 1193.99 768.37 1201.28 782.36 1152.58 829.2 1147.52 839.03 1193.99"
|
||||
></polygon><path
|
||||
class="cls-4"
|
||||
d="M1375,1178.08c-9.54,7.22-39,20.08-59.5,23.23l-414.72,63.57A48.48,48.48,0,0,1,846,1227l-7-33L795.25,986.9,787.66,951a10,10,0,0,0-2.09-4.35l-9.8-11.87a10,10,0,0,1-2.09-4.35L718.39,668.87c-.1-.45-.18-.91-.26-1.36a26.13,26.13,0,0,1,14.41-27.36l36.79-18.33c11.15-5.55,21.79-6.71,34.35-7.73Z"
|
||||
></path><path
|
||||
class="cls-1"
|
||||
d="M1235.26,576.22a28.15,28.15,0,0,1,29.92,21.84l123.06,543.61a35.82,35.82,0,0,1-29.51,43.32L944,1248.56a48.48,48.48,0,0,1-54.77-37.89L770.75,650.17A29.51,29.51,0,0,1,797,614.67Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M802.91,657.25,916.05,1194.5a17,17,0,0,0,19.22,13.33l426-64.41a14.6,14.6,0,0,0,12-17.67L1257.48,615.46a14.27,14.27,0,0,0-15.18-11.05L813.65,642.73A12.07,12.07,0,0,0,802.91,657.25Z"
|
||||
></path><path
|
||||
class="cls-6"
|
||||
d="M802.91,657.25,916.05,1194.5a17,17,0,0,0,19.22,13.33l426-64.41a14.6,14.6,0,0,0,12-17.67L1257.48,615.46a14.27,14.27,0,0,0-15.18-11.05L813.65,642.73A12.07,12.07,0,0,0,802.91,657.25Z"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M1235.26,576.22a28.15,28.15,0,0,1,29.92,21.84l123.06,543.61a35.82,35.82,0,0,1-29.51,43.32L944,1248.56a48.48,48.48,0,0,1-54.77-37.89L770.75,650.17A29.51,29.51,0,0,1,797,614.67Z"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M803.68,614.09c-12.56,1-23.2,2.18-34.35,7.73l-36.79,18.33a26.12,26.12,0,0,0-14.41,27.36c.08.46.16.91.26,1.36l55.29,261.54a10,10,0,0,0,2.09,4.35l9.8,11.87a10,10,0,0,1,2.09,4.35L846,1227a48.48,48.48,0,0,0,54.77,37.89l414.72-63.57c20.54-3.15,50-16,59.5-23.22"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M742.78,1220.62c-19.75-8.13-31.52-23.69-26.5-40.61l69.29-233.38"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M790,962.24l-65.73,221.37a30.26,30.26,0,0,0,33.33,38.56L842.4,1210"
|
||||
></path><ellipse
|
||||
class="cls-8"
|
||||
cx="837.63"
|
||||
cy="1070.6"
|
||||
rx="2.7"
|
||||
ry="3.34"
|
||||
transform="translate(-119.45 105.29) rotate(-6.72)"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="776.45"
|
||||
cy="893.91"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="783.68"
|
||||
cy="890.78"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="790.92"
|
||||
cy="887.66"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="798.15"
|
||||
cy="884.53"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="805.38"
|
||||
cy="881.4"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="774.39"
|
||||
cy="883.96"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="781.62"
|
||||
cy="880.84"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="788.85"
|
||||
cy="877.71"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="796.08"
|
||||
cy="874.58"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="803.31"
|
||||
cy="871.46"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="772.32"
|
||||
cy="874.01"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="779.56"
|
||||
cy="870.89"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="786.79"
|
||||
cy="867.76"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="794.02"
|
||||
cy="864.64"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="801.25"
|
||||
cy="861.51"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="770.26"
|
||||
cy="864.07"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="777.49"
|
||||
cy="860.94"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="784.72"
|
||||
cy="857.81"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="791.95"
|
||||
cy="854.69"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="799.18"
|
||||
cy="851.56"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="768.2"
|
||||
cy="854.12"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="775.43"
|
||||
cy="850.99"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="782.66"
|
||||
cy="847.87"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="789.89"
|
||||
cy="844.74"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="797.12"
|
||||
cy="841.61"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="766.13"
|
||||
cy="844.17"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="773.36"
|
||||
cy="841.05"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="780.59"
|
||||
cy="837.92"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="787.82"
|
||||
cy="834.79"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="795.05"
|
||||
cy="831.67"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="764.07"
|
||||
cy="834.23"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="771.3"
|
||||
cy="831.1"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="778.53"
|
||||
cy="827.97"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="785.76"
|
||||
cy="824.85"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="792.99"
|
||||
cy="821.72"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="762"
|
||||
cy="824.28"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="769.23"
|
||||
cy="821.15"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="776.46"
|
||||
cy="818.03"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="783.69"
|
||||
cy="814.9"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="790.92"
|
||||
cy="811.77"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="759.94"
|
||||
cy="814.33"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="767.17"
|
||||
cy="811.21"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="774.4"
|
||||
cy="808.08"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="781.63"
|
||||
cy="804.95"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="788.86"
|
||||
cy="801.83"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="757.87"
|
||||
cy="804.38"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="765.1"
|
||||
cy="801.26"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="772.33"
|
||||
cy="798.13"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="779.57"
|
||||
cy="795.01"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="786.8"
|
||||
cy="791.88"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="755.81"
|
||||
cy="794.44"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="763.04"
|
||||
cy="791.31"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="770.27"
|
||||
cy="788.18"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="777.5"
|
||||
cy="785.06"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="784.73"
|
||||
cy="781.93"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="753.74"
|
||||
cy="784.49"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="760.97"
|
||||
cy="781.36"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="768.21"
|
||||
cy="778.24"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="775.44"
|
||||
cy="775.11"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="782.67"
|
||||
cy="771.98"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="751.68"
|
||||
cy="774.54"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="758.91"
|
||||
cy="771.42"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="766.14"
|
||||
cy="768.29"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="773.37"
|
||||
cy="765.16"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="780.6"
|
||||
cy="762.04"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="749.62"
|
||||
cy="764.6"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="756.85"
|
||||
cy="761.47"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="764.08"
|
||||
cy="758.34"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="771.31"
|
||||
cy="755.22"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="778.54"
|
||||
cy="752.09"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="747.55"
|
||||
cy="754.65"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="754.78"
|
||||
cy="751.52"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="762.01"
|
||||
cy="748.4"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="769.24"
|
||||
cy="745.27"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="776.47"
|
||||
cy="742.14"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="841.13"
|
||||
cy="1084.42"
|
||||
rx="2.7"
|
||||
ry="3.34"
|
||||
transform="translate(-121.04 105.8) rotate(-6.72)"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="844.62"
|
||||
cy="1098.25"
|
||||
rx="2.7"
|
||||
ry="3.34"
|
||||
transform="translate(-122.63 106.3) rotate(-6.72)"
|
||||
></ellipse></g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 12 KiB |
Reference in New Issue
Block a user