Commit Graph

865 Commits

Author SHA1 Message Date
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
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
Jack Kingsman 889bb19ef5 Updating changelog + build for 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 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 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 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
Jack Kingsman 0633ab724c Misc bugs around dm region scope + scope display, and flood-scope leak 2026-07-08 20:11:57 -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 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
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 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
Björkan 2118c83bc4 Stabilize app startup hash test timeout 2026-07-03 19:02:25 +02:00
Jack Kingsman 7b334160ce Be more forgiving around hashtag channel names 2026-06-30 14:43:05 -07:00
jkingsman ce4946351f Allow bots to send region scoped messages 2026-06-27 00:36:28 -07:00
jkingsman 4b4dfb0767 Add incoming region to kwargs 2026-06-26 21:26:58 -07:00
Jack Kingsman 1af9c3bfcf Fix floating point issues on recharts 2026-06-25 11:35:50 -07:00
Jack Kingsman 7560fe26ec Updating changelog + build for 3.15.2 2026-06-23 21:34:51 -07:00
Jack Kingsman 3a78bf36ac filter out geo from non-geo sensors, and publish gps for device tracking 2026-06-22 17:34:44 -07:00
Jack Kingsman 9f5bf2b159 Updating changelog + build for 3.15.1 2026-06-20 22:39:46 -07:00
Jack Kingsman 048e03d99b Maybe finally fix that flaky test?? 2026-06-20 22:12:51 -07:00
Jack Kingsman 8d8bc13a3b Add option to disable scroll. Closes #299. 2026-06-20 21:53:28 -07:00
Jack Kingsman 66148c2c39 Autobackfill regions 2026-06-20 21:48:16 -07:00
Jack Kingsman 06556a853d Add draft reactions + gifs; region resolution 2026-06-20 21:30:51 -07:00
Jack Kingsman cb4d4ca584 Merge pull request #274 from fred777/fred777-add_bot_globals
Introduce _bot_globals for persistent data storage between bot executions
2026-06-20 18:03:56 -07:00
jkingsman 85574f7747 Make repeater neighbor pane sortable. Closes #290. 2026-06-17 18:19:15 -07:00
jkingsman 7198d92c74 Use the correct last-heard time for repeater recency sorting 2026-06-15 22:13:38 -07:00
fred777 f1e853ea0a Merge remote-tracking branch 'origin/main' into fred777-add_bot_globals 2026-06-12 16:34:00 +02:00
Jack Kingsman 35c2371088 Updating changelog + build for 3.15.0 2026-06-11 22:27:51 -07:00
Jack Kingsman 9391116d53 Compact the trace panes. Closes #285. 2026-06-11 22:13:41 -07:00
Jack Kingsman 01c4dd1df7 Add recently traced contacts as a sort category in the trace pane. Closes #286. 2026-06-11 21:55:51 -07:00
Jack Kingsman e1e0b48437 Add 'Reverse Link' button to trace pane. Closes #287. 2026-06-11 21:22:07 -07:00
Jack Kingsman fb848d2e8d Add outbound message opt-in for apprise 2026-06-11 20:42:29 -07:00