Skip to content

v1.2.3

Latest

Choose a tag to compare

@kybl kybl released this 10 Jul 15:51
1222864

Added

  • Tap a point in a 2D chart to open that packet in the Received Packets
    table.

Changed

  • 2D charts now follow live data while zoomed in — during measurement a
    zoomed SNR/RSSI chart keeps up with new packets at the right edge and stays
    within the recorded time range, instead of drifting onto old or empty time.
  • The 2D-chart tooltip shows the time down to the millisecond and the packet
    type
    , plus how many receptions a clustered point stands for.
  • Smoother, steadier 3D-map clustering — points no longer flicker or shuffle
    as you move or zoom the camera, more individual points are shown when you zoom
    into a sparse area, and points appear right after zooming in.
  • Received Packets columns are ordered by recent activity — the most active
    repeaters lead, and columns with nothing in the newest packets no longer jump
    to the front (noticeable right after loading saved data).
  • CSV export shows the saved file's size, and the notification's speaker
    icon appears as "(🔊)" when sound is set to "Disconnect only".

Fixed

  • The 3D-map show/hide (eye) button now works for repeaters that share an ID
    prefix
    (collision columns).
  • No more duplicate rows for the same repeater when it is seen at different
    ID lengths over a long run.
  • The Received Packets table no longer clears when you open certain repeater
    columns.
  • Seen Repeaters no longer scrolls on its own — it jumps to a repeater only
    when you select it.
  • The "Load previously captured data?" prompt reliably appears when you
    reopen the app with saved data.
  • "Show all repeaters" now works for loaded or long-running sessions — it
    places every known repeater that has a position, not only the ones that sent a
    packet in the recent in-memory window (previously it could do nothing even
    though each repeater still appeared when clicked individually).
  • No more burst of queued beeps when you return to the app after it was in
    the background — per-packet sounds keep playing while the phone still allows
    audio, but once it suspends audio in the background they're skipped instead of
    piling up and all playing at once on return.

Internal

  • Unit test suite (node --test, 84 tests) covering CSV round-trips, the
    spatial index, tile/geo math, serial framing, repeater ID collision handling,
    the 3D-map LOD pyramid, and the chart zoom window — run automatically by a new
    GitHub Actions workflow on every push.
  • Several self-contained pieces of logic were extracted from app.js into
    pure, tested modules
    : column-key.js (repeater ID prefix/collision
    semantics), frame.js (serial frame extraction), geo.js (map tile math),
    maplod.js (3D-map level-of-detail pyramid), and chart-zoom.js (live-follow
    zoom window).
  • Headless-browser regression harness (tools/browser-check) that drives
    the real page in Chromium — imports a CSV and asserts the stats, column order,
    and "Show all repeaters" behave; used before every build.