dependabot[bot]
512e0ccdbb
Bump ws in /frontend in the npm_and_yarn group across 1 directory
...
Bumps the npm_and_yarn group with 1 update in the /frontend directory: [ws](https://github.com/websockets/ws ).
Updates `ws` from 8.19.0 to 8.21.1
- [Release notes](https://github.com/websockets/ws/releases )
- [Commits](https://github.com/websockets/ws/compare/8.19.0...8.21.1 )
---
updated-dependencies:
- dependency-name: ws
dependency-version: 8.21.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-26 06:18:37 +00:00
Jack Kingsman
2601a9c0d1
Merge pull request #340 from rgregg/perf/virtualize-message-list
...
Virtualize the message list
2026-07-25 23:16:25 -07:00
Jack Kingsman
4f783f4f59
Fix ANOTHER failing test. God I'm tired tonight.
2026-07-25 21:57:48 -07:00
Jack Kingsman
462f895e3e
Merge branch 'main' into perf/virtualize-message-list
2026-07-25 21:40:38 -07:00
Jack Kingsman
8af7622bb0
Fix e2e tests
2026-07-25 21:38:58 -07:00
Jack Kingsman
fc8dec3417
Fix busted tests
2026-07-25 21:02:53 -07:00
Jack Kingsman
d267075127
Add testing harness and fix up a few niggling bugs
2026-07-25 19:35:40 -07:00
Jack Kingsman
f2006e15ba
Optimize jump to unread to reduce flicker on large backlog load.
2026-07-25 17:53:34 -07:00
Jack Kingsman
1584151000
Don't strand at the top of the list and override pending pins with manual scroll action
2026-07-25 16:22:42 -07:00
Jack Kingsman
8cb7c13a14
Merge pull request #339 from rgregg/perf/decouple-raw-packet-stream
...
Keep overheard packet traffic out of the chat render path
2026-07-25 15:23:08 -07:00
Jack Kingsman
40f202dbeb
Merge branch 'main' into pr-339
...
# Conflicts:
# frontend/AGENTS.md
2026-07-25 15:19:51 -07:00
Jack Kingsman
4559fd34c2
Test improvements and trimming
2026-07-25 15:12:21 -07:00
Jack Kingsman
1fb716aed3
Add retry on flood for repeater login
2026-07-25 15:12:12 -07:00
Jack Kingsman
50d063b195
Show statistics for regional messages. Closes #338 .
2026-07-25 12:46:38 -07:00
Ryan Gregg
fab331e67e
Virtualize the message list
...
A conversation rendered every message it had loaded. Nothing bounded that
work, so cost grew with history: at 2000 messages the list mounted ~20k DOM
nodes, took ~285ms to mount, and ~212ms to re-render on any update. While
that runs, nothing else on the main thread gets a turn, typing included.
Only the visible window is mounted now, measured in Chromium with the real
component tree:
history mount re-render DOM nodes
2000 285ms -> 4ms 212ms -> 2.2ms 22038 -> 225
Rendered rows stay at ~17 regardless of how much history is loaded.
Row heights are measured rather than assumed, since messages vary from one line
to a wrapped paragraph with path badges, so the scroll behaviors that used
to do height arithmetic now anchor by index instead, which is exact even
when off-screen rows still carry estimated heights:
- opening a conversation, and following new messages, anchor to the last row
- loading older messages anchors to the message that was on top
- jump-to-message and jump-to-unread scroll by index, since the target row
may not be mounted yet
Two degenerate cases are handled explicitly: a viewport that measures zero
(before first layout, hidden tab) falls back to a nominal height instead of
collapsing the window to nothing, and a row that measures zero keeps its
estimate instead of ballooning the window.
Most of the diff is re-indentation from the new wrapper element; the real
change is 112 added / 36 removed lines (git diff -w).
2026-07-25 12:32:14 -07:00
Ryan Gregg
5e5ab7db4d
Keep overheard packet traffic out of the chat render path
...
Typing in a conversation got progressively slower as its history grew.
The cause was not the input: every packet the node overhears was stored
in App state, so each one re-rendered the whole tree, including the
un-memoized MessageList. That cost scales with history length, and on a
busy mesh it saturated the main thread so keystrokes queued behind it.
Measured in Chromium with the real components, cost per overheard packet:
history before after
50 7.3ms ~0ms
500 48.5ms ~0ms
1000 97.7ms ~0ms
2000 228.4ms ~0ms
The packet stream now lives in a small external store that views subscribe
to individually, so only the map, visualizer, raw feed, and cracker re-render
when a packet arrives, so the chat view is no longer along for the ride.
This also retires useRawPacketStatsSession, whose session state was App
state for the same reason.
2026-07-25 12:32:14 -07:00
Jack Kingsman
58cd61dc61
Fix doc drift.
2026-07-25 11:46:38 -07:00
Jack Kingsman
889bb19ef5
Updating changelog + build for 3.17.0
3.17.0
2026-07-21 12:12:55 -07:00
Jack Kingsman
9fc343c4fd
Add telemetry CSV export. Closes #334 .
2026-07-21 12:06:52 -07:00
Jack Kingsman
6f743446b0
Add customizable date binning on map. Closes #330 .
2026-07-21 11:54:09 -07:00
Jack Kingsman
bc22f537d9
Add packet analyzer launch to visualizer feed. Closes #328 .
2026-07-21 11:42:34 -07:00
Jack Kingsman
0b53534ec0
Tidy up issue templates
2026-07-21 10:32:46 -07:00
Jack Kingsman
d2e3b05a38
Add hop width bit display display. Closes #323 .
2026-07-10 15:34:12 -07:00
Jack Kingsman
f8f6842d1d
Updating changelog + build for 3.16.2
3.16.2
2026-07-10 15:05:04 -07:00
Jack Kingsman
5da6e19c9b
Add repeater region discover
2026-07-10 15:00:14 -07:00
Jack Kingsman
789d37e240
Updating changelog + build for 3.16.1
3.16.1
2026-07-10 13:04:30 -07:00
Jack Kingsman
ed7954552d
Merge pull request #322 from jkingsman/alternate-repeater-detail-fetch
...
Try using direct admin-binary fetch
2026-07-10 12:49:27 -07:00
jkingsman
6f21a6c364
Maybe we actually fixed the flaky test this time
2026-07-09 17:08:32 -07:00
jkingsman
6c977f9108
Add repeater region display. Closes #309 .
2026-07-09 16:37:14 -07:00
jkingsman
387c9b0e0a
Add packet search to raw feed. Closes #320 .
2026-07-09 14:56:31 -07:00
jkingsman
ee32a266db
Try using direct admin-binary fetch
2026-07-09 14:33:59 -07:00
jkingsman
1b83616db4
Add clearer error on missing privkey export for community MQTT
2026-07-09 14:08:23 -07:00
Jack Kingsman
0633ab724c
Misc bugs around dm region scope + scope display, and flood-scope leak
2026-07-08 20:11:57 -07:00
Jack Kingsman
db954c0f26
Bump some deps
2026-07-08 19:49:11 -07:00
Jack Kingsman
b6706497c2
Merge pull request #295 from jkingsman/dependabot/npm_and_yarn/frontend/npm_and_yarn-a11d9bf118
...
Bump the npm_and_yarn group across 1 directory with 3 updates
2026-07-08 19:10:17 -07:00
Jack Kingsman
80d82160b5
Merge pull request #294 from jkingsman/dependabot/uv/uv-740b34f595
...
Bump the uv group across 1 directory with 2 updates
2026-07-08 18:49:33 -07:00
dependabot[bot]
61e6ff216a
Bump the npm_and_yarn group across 1 directory with 3 updates
...
Bumps the npm_and_yarn group with 3 updates in the /frontend directory: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ), [form-data](https://github.com/form-data/form-data ) and [js-yaml](https://github.com/nodeca/js-yaml ).
Updates `vite` from 6.4.2 to 8.1.3
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v8.1.3/packages/vite )
Updates `form-data` from 4.0.5 to 4.0.6
- [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md )
- [Commits](https://github.com/form-data/form-data/compare/v4.0.5...v4.0.6 )
Updates `js-yaml` from 4.1.1 to 4.3.0
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md )
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.1...4.3.0 )
---
updated-dependencies:
- dependency-name: form-data
dependency-version: 4.0.6
dependency-type: indirect
- dependency-name: js-yaml
dependency-version: 4.2.0
dependency-type: indirect
- dependency-name: vite
dependency-version: 8.0.16
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-09 00:47:46 +00:00
Jack Kingsman
560538a1f4
Updating changelog + build for 3.16.0
3.16.0
2026-07-08 17:44:56 -07:00
Jack Kingsman
f9b991b1a8
Fix giphy rendering issue. Closes #291 .
2026-07-08 17:23:51 -07:00
Jack Kingsman
4385ea5703
Add clearer regional scoping for bots. Closes #300 .
2026-07-08 17:08:04 -07:00
Jack Kingsman
97b873e991
Defer chart render until flyin is settled. Closes #317 .
2026-07-08 16:47:41 -07:00
jkingsman
0c8039cc44
Try out request-scoped subscription for console commands
2026-07-08 16:40:53 -07:00
Jack Kingsman
0db80dd054
Merge pull request #307 from Bjorkan/fixRegions. Closes #303 .
...
Fix unscoped flood-scope handling
2026-07-08 15:51:50 -07:00
Jack Kingsman
6edd2927b1
Gate scoping-safety on firmware ref, and and make per-channel override tristate.
2026-07-08 15:45:58 -07:00
Jack Kingsman
f45b84b15c
Add more aggressive packet validity checking. Closes #315 .
2026-07-08 15:16:21 -07:00
Jack Kingsman
84e6c34255
Allow favorites to be sorted by type. Closes #314 .
2026-07-08 14:57:29 -07:00
Jack Kingsman
2fcbefac3b
Add duty cycle display to repeaters. Closes #308 .
2026-07-08 14:47:50 -07:00
Jack Kingsman
a6c64279e8
Plumb through total neighbor count from radio and expose that in the UI. Closes #310 .
2026-07-08 14:09:08 -07:00
Jack Kingsman
7fe15d0fd4
Add issue template. Closes #313 .
2026-07-08 13:57:30 -07:00
Björkan
30e9a77cdc
Clarify flood scope setup warning
2026-07-03 19:07:55 +02:00