Commit Graph

37 Commits

Author SHA1 Message Date
Will Greenberg 9627cec737 Refactors in response to review comments
A few minor refactors, and a more major one that renames
RecordingStore's update_entry_qmdl_size to
update_current_entry_qmdl_size, since the only time we're ever updating
an entry's QMDL size is when it's the current one.
2026-06-22 19:40:54 -07:00
Will Greenberg 76ae8fccd9 run cargo fmt 2026-06-22 19:40:54 -07:00
Will Greenberg 94b989c3c0 Add support for compressed QMDL
Major changes:
* QmdlWriter now outputs gzipped QMDL files by default
* QmdlReader renamed to QmdlMessageReader, and reads both compressed and
  uncompressed QMDL. It no longer requires bounding to avoid reading
  partially written files.
2026-06-22 19:40:54 -07:00
Markus Unterwaditzer 754faf10d9 Remove redundant helper functions 2026-05-27 18:51:32 +02:00
Markus Unterwaditzer 0c90f8910a Use latest packet timestamp in GPS file, move writing into DiagTask to eliminate RwLocks, remove "sidecar" word from codebase 2026-05-18 15:30:55 -07:00
Markus Unterwaditzer 19df99d663 fix clippy 2026-05-18 15:30:55 -07:00
Markus Unterwaditzer 3aa3ce89c8 remove format! calls entirely 2026-05-18 15:30:55 -07:00
Markus Unterwaditzer bd5dfb1a75 address most of wills review feedback, fix serialization and stringly error handling in DiagTask::start 2026-05-18 15:30:55 -07:00
Carlos Guerra 5a4a3034be requests addressed, better error handling, more logging, small text corrections 2026-05-18 15:30:55 -07:00
Carlos Guerra ba78c7bd01 new merge conflict addressed, to_datetime unused code removed, some refactoring to appease tests 2026-05-18 15:30:55 -07:00
Carlos Guerra fee082cde4 replacing numbered options in config with rust enum implementation, unique commit to make easier to debug or rollback 2026-05-18 15:30:55 -07:00
Carlos Guerra 0b91a6e5d3 PR chage requests, revision to GPS logging feature, code cleanup 2026-05-18 15:30:55 -07:00
Carlos Guerra 5451e23293 added documentation and polishing UI around GPS mode 2026-05-18 15:30:55 -07:00
Jack Lund 38b1dd3de2 Move creation of the diag device into read thread
Moved the creation of the DiagDevice into the diag read task thread.
2026-04-26 20:55:59 +02:00
Markus Unterwaditzer ca30a146b2 Fix clippy for Rust 1.95 2026-04-16 12:31:08 -07:00
Andrej Walilko 9b6c4cee0b api documentation (#876)
* api documentation

* utoipa openapi docs generator

---------

Co-authored-by: Andrej Walilko <awalilko@liquidweb.com>
2026-02-17 01:41:15 +01:00
Ember d41c4bba3e messages could be larger than 1MB when 100 messages are combined, changed to every 256KB space is checked. 2026-02-12 18:06:42 -08:00
Ember 1d5ed54033 deduplicated code a bit with a wrapper 2026-02-12 18:06:42 -08:00
Ember 24e79aad9d Handled suggestions from PR. 2026-02-12 18:06:42 -08:00
Ember 480b6f8681 Add visual for GUI; fix clippy issue. 2026-02-12 18:06:42 -08:00
Ember 0c624c2bc2 Add disk space monitoring to recording lifecycle 2026-02-12 18:06:42 -08:00
Markus Unterwaditzer b341ef2d1e Fix stuck green display after restarting recording
Rayhunter keeps track of the highest-severity warning seen during a
recording, and only updates the display color when a new event
exceeds that level. When a double-tap restarts recording, this
threshold isn't reset, so it retains the old session's maximum. Since no
new event can surpass the stale threshold, the display stays stuck on
green even when warnings are detected.

Fix #794
2026-01-26 10:33:56 -08:00
Simon Fondrie-Teitler 1b5575e5a6 Update ConfigForm.svelte
Signed-off-by: Simon Fondrie-Teitler <simonft@riseup.net>
2025-09-22 12:31:57 -07:00
Cooper Quintin 898bdbb6cd include event severity in message 2025-08-20 17:11:04 -07:00
Markus Unterwaditzer 375789aad9 cargo fmt 2025-08-20 17:11:04 -07:00
Markus Unterwaditzer 781d11ed72 Expose severity to display
See https://github.com/EFForg/rayhunter/issues/334

Severity levels low, medium, high are now exposed to the UI in form of
dotted, dashed and solid lines. The line on the UI represents the
highest-so-far severity seen.

Originally this was intended to be represented by Yellow/Orange/Red, but
this would mean yet another divergence for colorblind mode. This is
colorblind-friendly by default (I think...)

As part of this, simplify EventType so that it becomes a flat "level"
enum without nested variants.

There is also a new debug endpoint that allows one to overwrite the
display level directly for testing.
2025-08-20 17:11:04 -07:00
Simon Fondrie-Teitler a8667cc3a0 Pass notification_channel in diag_task constructor 2025-08-11 13:59:42 -04:00
Simon Fondrie-Teitler 16ec9e28df Remove a couple unnecssary whitespace changes 2025-08-09 15:03:08 -04:00
Simon Fondrie-Teitler 5bd2d9a58e Merge branch 'main' into notifications 2025-08-09 14:17:22 -04:00
Markus Unterwaditzer 5249714717 Fix clippy lints and warnings in Rust 1.89
This will also require Rust 1.89 due to if-let.
2025-08-08 03:02:07 +02:00
Simon Fondrie-Teitler dd78f5007d Specify ntfy notification is from rayhunter 2025-08-06 13:07:25 -04:00
Simon Fondrie-Teitler 481f02f81f Merge branch 'main' into notifications 2025-08-05 17:30:07 -04:00
Sashanoraa 398997af67 Refactor diag thread to have full control over the QMDL store
Fixes #269. Refactor also pull diag thread logic out into state machine
object for better encapsulation and reuse.
2025-07-31 11:47:11 +02:00
Sashanoraa b16b1af65e Fixes #433 do not stop recording when deleting a past entry 2025-07-20 18:07:24 -04:00
Will Greenberg 1011c4b123 daemon: don't track analysis file bytes written
We don't actually use this for anything
2025-07-17 10:41:54 -07:00
Will Greenberg 0915103ede Flattens analysis structure a bit
Instead of mirroring the QMDL container format exactly, let our analysis
files just be flat lists of packet analysis. Also removes the dummy
analyzer and adds version numbers to analysis reports and Analyzers
2025-07-16 13:20:14 -07:00
Will Greenberg da18a1f9da Split bin dir into separate daemon and check dirs
This lets us manage their increasingly disparate dependencies separately
2025-07-16 13:20:14 -07:00