Commit Graph

324 Commits

Author SHA1 Message Date
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 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 5da6e19c9b Add repeater region discover 2026-07-10 15:00:14 -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
Jack Kingsman f9b991b1a8 Fix giphy rendering issue. Closes #291. 2026-07-08 17:23:51 -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
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
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 06556a853d Add draft reactions + gifs; region resolution 2026-06-20 21:30:51 -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
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
Jack Kingsman be2b7fdacc Actually fix the test issues 2026-06-01 20:27:01 -07:00
Jack Kingsman 257f09c2b4 Be more gentle during test runs 2026-06-01 19:21:02 -07:00
Jack Kingsman c721e7461a Don't display blocked contacts on the map. Closes #269. 2026-06-01 18:10:45 -07:00
jkingsman f4dd6b44a1 Fix flaky tests 2026-05-19 17:45:33 -07:00
Jack Kingsman 2462e40379 (feat) chain app nav to browser history state. Closes #250.
Hook browser back/forward to nav state
2026-05-15 22:49:20 -07:00
Jack Kingsman 84aa352be3 Split up setting to be a bit neater 2026-05-13 17:30:06 -07:00
Jack Kingsman 0bd0c062f2 Initial tracke telemetry for contacts 2026-05-13 17:30:05 -07:00
Jack Kingsman 83da01fe45 Test fixtures matching contact shape 2026-05-13 17:20:58 -07:00
Jack Kingsman b77660196b Persist login status for room servers. Closes #244. 2026-05-13 16:52:32 -07:00
Jack Kingsman f1eca53625 Add packet scope to inspection. Closes #256 2026-05-13 16:06:44 -07:00
Martin Fournier 76f3a59d83 Hook browser back/forward to nav state
Push history on user-initiated navigation so 'Back' moves between
views instead of leaving the app.

- urlHash: add pushUrlHash/pushSettingsHash (pushState variants)
- useConversationRouter: pushState on nav; popstate resolves hash
  to conversation without re-pushing; switch over if-chain
- useAppShell: pushState on settings open; popstate syncs
  visibility; close via history.back() when we own the entry
- Tests: popstate coverage in appStartupHash + useAppShell
2026-05-11 01:53:49 -04:00
jkingsman 70cb133b24 Revise hop length buckets. Closes #240. 2026-05-03 12:32:50 -07:00
Jack Kingsman e76d922752 Add recieved time to packet display. Closes #238. 2026-04-30 19:07:50 -07:00
Jack Kingsman a9ac87e668 Allow newlines in text input. Closes #234. 2026-04-30 18:36:36 -07:00
Jack Kingsman 047d713003 Permit hourly checks for direct/routed repeaters. Closes #226. 2026-04-27 09:51:57 -07:00
Jack Kingsman 25041e1367 Add dynamic text replacement. Closes #223. 2026-04-25 15:00:36 -07:00
Jack Kingsman b37ce89c96 Add repeater telemetry error count 2026-04-25 13:45:17 -07:00
Jack Kingsman 55f05bf03b Add dropdown to choose contact addition type. Closes #216. 2026-04-22 17:43:01 -07:00
Jack Kingsman 5f78294cd1 Longer linger for web push mobile error 2026-04-19 23:04:36 -07:00
Jack Kingsman cc2b16e53f Test fix 2026-04-19 21:14:38 -07:00
Jack Kingsman 330007e120 Be smarter about web push not being available on snakeoil certs for mobile 2026-04-19 21:10:17 -07:00