Batman V support - #345
Open
grische wants to merge 5 commits into
Open
Batman V support#345grische wants to merge 5 commits into
grische wants to merge 5 commits into
Conversation
grische
marked this pull request as draft
April 17, 2026 20:26
Collaborator
Author
|
Marking as draft until upstream PRs are more stabilised. |
This was referenced Apr 17, 2026
grische
force-pushed
the
batman-v-support
branch
from
June 18, 2026 12:37
d0b6bab to
fdacca3
Compare
Contributor
|
Preview deployed: https://freifunk.github.io/meshviewer/pr-preview/pr-345/ Updated for commit 2ba2088. |
grische
marked this pull request as ready for review
June 19, 2026 13:02
Batman IV neighbours expose tq, Batman V neighbours expose throughput. Each Link can now carry either pair; UI sites pick whichever metric is present and fall back to the other when missing. - Link interface gains optional source_tp / target_tp (kbps) alongside source_tq / target_tq (now also optional; typically only one pair is populated per link). The field names match the yanic graph.json wire format. - helper.ts: showThroughput formats kbps with SI-prefixed bit/s units; linkMetric returns a 0..1 normalised quality (Batman IV: tq directly; Batman V: log scale over 1 Mbps .. 1.2 Gbps); showLinkMetric returns a human-readable string for one direction; showBiDiLinkMetric joins both directions and drops the " - " separator when one side reports no metric. - linklist, infobox/link, infobox/node, labellayer: render links with showBiDiLinkMetric; sort comparators wrap tq/throughput through linkMetric to tolerate missing values. - forcegraph: link colour gradient and force-simulation strength use linkMetric so Batman V links don't destabilise the d3 simulation with NaN. - forcegraph/draw and map/labellayer: gate the >= 0.99 "other" link recolouring branch on linkMetric so Batman V "other" links are also recoloured once their throughput saturates the metric range. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Batman V links carry throughput instead of TQ. Use "Transmit quality" only when neither side reports throughput; otherwise show "Throughput". Add the new "throughput" translation key to all shipped locales. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Previously sorted by source direction only; average both directions so the neighbour table orders rows the same way as the link list. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Accommodate wider display strings such as "120 Mbit/s" that replaced the previous "95%" TQ percentages on Batman V links. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add a self-contained six-node Batman V cluster whose links exercise the throughput code paths: - both-direction wifi5 throughput, healthy and symmetric - strong asymmetry with single-digit Mbit/s decimal formatting - sub-Mbit/s "kbit/s" units plus the linkMetric floor clamp - one-sided source_tp / target_tp (VPN uplinks; separator dropped) - mixed Batman IV tq and Batman V throughput on one link - a max-rate "other" backbone link (>= 0.99 metric -> recolour) The hub node has four neighbours of varying quality to exercise the bidirectional-metric neighbour-table sort. Throughput magnitudes follow real Batman V graph data: RF links from sub-Mbit/s to ~870 Mbit/s, VPN and backbone near 1 Gbit/s. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
grische
force-pushed
the
batman-v-support
branch
from
June 25, 2026 20:07
fdacca3 to
2ba2088
Compare
Collaborator
Author
|
Added a dev fixture for most of the new Batman V cases |
rotanid
reviewed
Sep 7, 2026
rotanid
left a comment
Contributor
There was a problem hiding this comment.
Approving with two items worth addressing.
🔸 Concerns
- No unit tests for the new numeric helpers.
showThroughput,linkMetric,showLinkMetric, andshowBiDiLinkMetriccarry non-trivial logic — log-scale normalisation, the 0/1 clamp, thetq-beats-tpprecedence rule, and the separator-drop when one side lacks a metric. PR #477 establishes a test-suite precedent in this repo (filters/*.test.ts), so the boundary contracts here deserve parity: sub-1 Mbps floor, saturation at 1.2 Gbps, mixedsource_tq+target_tpprecedence, and the empty-string collapse. Lifting the magic constants1e3/1.2e6out oflinkMetricinto named/configurable bounds would make that contract legible and testable, and would let communities with 10 Gbps backbones retune the saturation ceiling. - Mixed-protocol link mislabels the row. In
lib/infobox/link.tsthe label is selected by(link.source_tp ?? 0) > 0 || (link.target_tp ?? 0) > 0 ? "node.throughput" : "node.tq", so any link with throughput on either side is labelled "Throughput" — but the value still embeds a TQ percentage when the other side carriessource_tq. The dev fixture's mixed vpn link renders98% - 1 Gbit/sunderneath a "Throughput" heading. Consider labelling per-side, or qualifying the header (e.g., "Link quality") when the value is heterogeneous.
Merge ordering
This PR overlaps with #477 — both touch helper.ts, labellayer, and the Link interface. Recommend merging this PR first — #477's decomposition of helper.ts and conversion of labellayer.js → .ts will rebase cleanly over the additions here, whereas landing #477 first forces a painful manual re-split of the new helpers into the decomposed modules.
Review assisted by GLM 5.2 (opencode).
Member
|
I consider this blocked until its merged in gluon :) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Motivation and Context
How Has This Been Tested?
Locally. Using https://gw04.ext.ffmuc.net/meshviewer.json
Screenshots/links:
It is live here: https://map.ffmuc.net/
Checklist: