13 Commits
Author SHA1 Message Date
MrAlders0n 609dbc384f Translate the remaining hardcoded UI text (#129) 2026-10-01 17:55:54 -04:00
MrAlders0n 3e43cfd009 fix: follow up on last week's merges (#55-#101) (#102)
Bugs: clear compare params on tab change, recover channel live messages after a 429,
observer copy link keeps only region params, route table no longer navigates on region
change with nothing selected, map borders memo on data identity, live overview can't
resurrect a failed query, French relative times, no language write on first visit,
0/0 node locations hidden outside the map, path/signal stats use the shared retry rule.

i18n: node/packet/mesh/observer strings that were still hardcoded after #62.

Cleanup: formatUtc, ACTION_BUTTON_CLASS, observer-stats, useWindowedStats, observer-id;
observer pages use StatCard/Card/Field/Segmented/SearchBar/SelectDropdown; one details
chrome on the stats tabs; comment and translations-guide trims; localStorage stub for
Node 26 in the test setup.
2026-09-30 10:19:32 -04:00
n30nex 9423059b6f feat(i18n): translate stats analytics, clock drift and timestamps (#70) 2026-09-25 11:20:27 -04:00
MrAlders0n 12ddc8a921 Observer tab: airtime as percent, add heard-activity charts
Airtime telemetry is on-air seconds, so chart it as a percent of elapsed time.
Add channel busy, packets heard, SNR heard and payload type charts from the
new per-observer activity endpoint; hidden until the server has it.
2026-09-09 23:21:39 -04:00
MrAlders0n e6a714aed9 Split top advertisers into flood and direct adverts
Surface each advertiser's flood vs direct advert counts with a per-day
rate for the selected window, as a sortable table on the Talkers tab.
2026-07-24 22:19:24 -04:00
MrAlders0n 1303e952a7 Add tests for path endpoint, trace, and clock-drift edge cases 2026-07-24 06:19:19 -04:00
MrAlders0n 913151c610 Show device clock drift on the node detail panel 2026-07-23 23:31:05 -04:00
MrAlders0n 11b06000b5 Back out frontend zero-frame filter; fixing at the source instead 2026-07-15 22:04:42 -04:00
MrAlders0n fb376901f9 Drop empty observer telemetry frames and show airtime as duration 2026-07-15 21:44:11 -04:00
MrAlders0n 39641b6339 ui: footer version from package.json plus a batch of interaction fixes
- footer read 'v0.1' forever; it's injected from package.json at build
  time now
- region picker shows 'Failed to load' instead of an eternal Loading
  when /iatas errors
- selecting text in a modal and releasing over the backdrop no longer
  closes it (close requires the press to start on the backdrop)
- Escape in a dropdown inside the mobile filter sheet closes just the
  dropdown, not the whole sheet
- Shift+Tab right after a modal opens wraps to the last control instead
  of escaping the focus trap
- formatCount rolls 999,999 over to 1M instead of printing 1000k
- TABS list moved to lib/constants so AppShell only exports components
2026-06-10 07:03:16 -04:00
MrAlders0n b8b1f5f27d Feat/scopes routes traces (#7)
* feat: replace getScopeStats with getScopes and update related tests
bug: lastSeen/sentAt was set to string instead of number by mistake

* feat: update timestamp handling and formatting across components

- WS messages carry epoch ms now instead of ISO strings
- new Timestamp component (relative/absolute), used in RouteTable and RouteDetailPanel
- IataChip and ScopeTag chips
- TraceDetailPanel and TraceList for trace drill-down
- tests updated for the timestamp change
2026-06-07 00:19:54 -04:00
MrAlders0n 811c11db52 Feat/map openfreemap (#2)
* initial map page

* Nodes plotted and map in good shape to be merged
2026-05-31 15:15:06 -04:00
MrAlders0n 8718bf3563 Initial commit 2026-05-23 21:49:14 -04:00