Commit Graph
218 Commits
Author SHA1 Message Date
MrAlders0n f6caab663c Add hourly sparklines to analytics stat cards (#134) 2026-10-02 13:37:26 -04:00
MrAlders0n 30a8f94dbd Wait for the selected region before loading lists (#133) 2026-10-02 12:13:41 -04:00
MrAlders0n 39e921c277 Serve analytics from hourly rollups and handle empty regions (#132) 2026-10-02 08:03:00 -04:00
MrAlders0n f9ffb564c7 Drop analytics refresh buttons and repeated titles (#131) 2026-10-01 18:58:26 -04:00
MrAlders0n bdf253cbe6 Close an inspected observer back to its packet on mobile (#130) 2026-10-01 18:46:00 -04:00
MrAlders0n 609dbc384f Translate the remaining hardcoded UI text (#129) 2026-10-01 17:55:54 -04:00
MrAlders0n e3f98efea9 Open the observer dashboard from Inspect observer (#128) 2026-10-01 16:57:04 -04:00
MrAlders0n e491a822c9 Plain wording across panels and fix retention-bound views (#127) 2026-10-01 16:36:11 -04:00
MrAlders0n bd32c0019f Fold route evidence into Route Detail with a recent packets list (#126) 2026-10-01 15:41:59 -04:00
MrAlders0n a252b953fe List keyed channels up front and load the rest on demand (#125) 2026-10-01 09:18:42 -04:00
MrAlders0n 2b150f9244 Add an optional instance banner above the header (#124) 2026-10-01 08:57:41 -04:00
MrAlders0n 57be943f17 Tidy the routes search and range toggle on mobile (#123) 2026-10-01 08:32:49 -04:00
MrAlders0n 441dcdee6c Show observers as a full-width list on mobile (#122) 2026-10-01 07:55:47 -04:00
MrAlders0n e6e680192a Open the observer dashboard as a mobile overlay (#121) 2026-10-01 07:50:46 -04:00
MrAlders0n a8a248fd9d Keep the packet drawer and windows open across tabs (#120) 2026-10-01 04:09:00 -04:00
MrAlders0n 66419a768e Shrink the region filter text on desktop (#119) 2026-10-01 04:08:48 -04:00
MrAlders0n a2ed9f70aa Match the observation card to the theme (#118) 2026-09-30 23:17:20 -04:00
MrAlders0n 24c4abf6f4 Show the observer list beside the dashboard (#117) 2026-09-30 23:03:50 -04:00
MrAlders0n 487dca948c Collapse the analyzer's observations list by default (#116) 2026-09-30 23:03:19 -04:00
MrAlders0n b1ced5150c Clear map borders when the toggle is turned off (#115) 2026-09-30 22:44:52 -04:00
MrAlders0n 24b995bf12 Move channel scope filter into the header (#114) 2026-09-30 22:34:44 -04:00
MrAlders0n 35d117a636 Region-filtered scope lists (#113) 2026-09-30 22:09:37 -04:00
n30nex 6de673b6a0 Prepare Beacon 2.0.0 (#105) 2026-09-30 21:18:14 -04:00
MrAlders0n 85e4d90cbe Analyzer: one observations list, transport scope breakdown (#112) 2026-09-30 21:18:10 -04:00
MrAlders0n e2d272e08e Drop the Observer section from Analytics (#111) 2026-09-30 16:09:13 -04:00
MrAlders0n fb0994bd05 One observations list in the packet analyzer (#110) 2026-09-30 15:43:44 -04:00
MrAlders0n 61ab6697d9 Labelled observer details and stacked header actions (#109) 2026-09-30 14:42:55 -04:00
MrAlders0n 31d01a8425 Shared observer sidebar and header actions (#108) 2026-09-30 14:36:17 -04:00
MrAlders0n b1f41dea1d Observer header details, channel row cleanup, tab order (#107) 2026-09-30 14:10:18 -04:00
MrAlders0n 63344af365 Polish observer cards and clock drift on phones (#106) 2026-09-30 13:47:10 -04:00
MrAlders0n 8d1f30d553 Bring back the Analytics observer tab and tidy analytics (#104) 2026-09-30 13:24:54 -04:00
MrAlders0n 00d859d9a2 fix(nodes): clear a node's position when nodeUpdate sends null (#103)
The server now nulls a location on an explicit 0/0 advert and the WS nodeUpdate
event mirrors that: omitted lat/lng keeps the current position, null clears it.
patchNodeSummary used ?? so a clear was ignored.
2026-09-30 11:29:35 -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
MrAlders0n 39b85a9032 fix: follow up on the #75-#99 stack review (#101) 2026-09-30 08:35:07 -04:00
dependabot[bot] 9058665af0 build(deps-dev): bump brace-expansion from 5.0.9 to 5.0.12 (#100)
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 5.0.9 to 5.0.12.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/v5.0.9...v5.0.12)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 5.0.12
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-30 08:11:10 -04:00
n30nex d259be512e feat: observer monitoring, retained evidence and channel scopes (#75-#99)
Lands the stacked web PRs #75, #79, #80, #81, #83, #85, #87, #89, #92, #95 and #99 in one squash. Server counterparts #166-#176 are merged. Remaining review items follow in a fix PR.
2026-09-30 08:03:13 -04:00
MrAlders0n 17f48fb932 chore(types): mirror ws opt-in fields from the server (#91) 2026-09-27 20:38:55 -04:00
MrAlders0n 54b5093ac0 fix(packets): fold summaries into the endpoints cell (#73) 2026-09-25 11:37:57 -04:00
n30nex 9cd2e8f6db fix(stats): hide unavailable Mesh overview data (#72) 2026-09-25 11:21:29 -04:00
n30nex dce4e49900 fix(stats): hide unavailable Talkers results (#68) 2026-09-25 11:21:07 -04:00
n30nex 9423059b6f feat(i18n): translate stats analytics, clock drift and timestamps (#70) 2026-09-25 11:20:27 -04:00
n30nex 6d3edbb61b feat(i18n): add English and French navigation foundation (#62) 2026-09-24 08:53:32 -04:00
n30nex 0f0a6ca51c fix(map): omit reset and invalid node locations (#61) 2026-09-23 20:16:26 -04:00
n30nex 929ba83cf1 feat(stats): add Paths and Hashes analytics (#57) 2026-09-23 20:16:23 -04:00
n30nex 2405e1ac96 feat(stats): add RF and signal analytics (#55) 2026-09-23 20:14:03 -04:00
n30nex c2ab29a540 fix(stats): distinguish analytics navigation icons (#59) 2026-09-23 20:11:26 -04:00
n30nex e01c090c8e feat(stats): add hourly traffic and region-aware scope analytics (#53)
Adds the Traffic and Scopes analytics tabs. Includes the hourly traffic work from #52, which this PR contains in full.

Closes #50. Closes #51.
2026-09-20 11:41:43 -04:00
n30nex 3178713bdb feat(nodes): display the foreign-repeater indication (#49)
* feat(nodes): display the server foreign-repeater indication

* style(ws): align node update event declaration
2026-09-19 22:58:52 -04:00
n30nex 88e2c0f319 feat(stats): compare flood packets heard by two observers (#48) 2026-09-19 22:58:36 -04:00
MrAlders0n d5d9c0870c fix(layout): keep region picker right-anchored on desktop (#47) 2026-09-18 06:12:14 -04:00