Markus Unterwaditzer
754faf10d9
Remove redundant helper functions
2026-05-27 18:51:32 +02:00
Markus Unterwaditzer
4bad8356ac
Refactor record deletion to use FileKind
2026-05-27 18:51:32 +02:00
Markus Unterwaditzer
7aaa7e589e
Fix similar bug in zip download, also use FileKind there
2026-05-27 18:51:32 +02:00
Markus Unterwaditzer
e3e84a0185
Fix WebDAV not uploading GPS files
...
When merging WebDAV and GPS features, we forgot to update the WebDAV
feature to also upload the GPS files.
WebDAV had hardcoded knowledge of which files exist and its own FileKind
enum. Move the FileKind enum into QMDL store so that webdav can be
agnostic over which files belong to a recording, so this is less likely
to happen again.
(This refactor was AI-assisted)
2026-05-27 18:51:32 +02:00
recanman
517a17db14
Software update notification ( #1002 ) ( #1054 )
...
* add `auto_check_updates` config value
* add `auto_check_updates` to dist config
* add `Update` `NotificationType`
* implement update checker and worker
* add endpoint, add to documentation, add worker
* clone update_status_lock Arc
* fmt
* add more tests
* remove todo
* add to docs
* frontend update notice
* improve name in documentation
* add user-agent to update check request
* add update check request timeout
* openapi trait bound
* do not enable `auto_check_updates` by default
* remove redundant documentation
* surface fetch of update status error
* fail on version with pre-release for now, add additional test cases
* Update configuration.md
---------
Co-authored-by: Markus Unterwaditzer <markus-tarpit+git@unterwaditzer.net >
2026-05-24 22:59:18 +02:00
recanman
e86d30a0c6
frontend bugfix: Handle null input in ExpandableInput, make ntfy_url nullable ( #1055 )
...
* handle `null` input in `ExpandableInput`
* correct `ntfy_url` config type
* remove extra space
2026-05-22 22:10:04 +02:00
dependabot[bot]
e83ba9922d
Bump @sveltejs/kit ( #1049 )
...
Bumps the security group with 1 update in the /installer-gui directory: [@sveltejs/kit](https://github.com/sveltejs/kit/tree/HEAD/packages/kit ).
Updates `@sveltejs/kit` from 2.57.1 to 2.60.1
- [Release notes](https://github.com/sveltejs/kit/releases )
- [Changelog](https://github.com/sveltejs/kit/blob/main/packages/kit/CHANGELOG.md )
- [Commits](https://github.com/sveltejs/kit/commits/@sveltejs/kit@2.60.1/packages/kit )
---
updated-dependencies:
- dependency-name: "@sveltejs/kit"
dependency-version: 2.60.1
dependency-type: direct:development
dependency-group: security
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-22 16:08:24 +02:00
dependabot[bot]
7e525c5c02
Bump @sveltejs/kit ( #1050 )
...
Bumps the security group with 1 update in the /daemon/web directory: [@sveltejs/kit](https://github.com/sveltejs/kit/tree/HEAD/packages/kit ).
Updates `@sveltejs/kit` from 2.58.0 to 2.60.1
- [Release notes](https://github.com/sveltejs/kit/releases )
- [Changelog](https://github.com/sveltejs/kit/blob/main/packages/kit/CHANGELOG.md )
- [Commits](https://github.com/sveltejs/kit/commits/@sveltejs/kit@2.60.1/packages/kit )
---
updated-dependencies:
- dependency-name: "@sveltejs/kit"
dependency-version: 2.60.1
dependency-type: direct:development
dependency-group: security
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-22 16:08:21 +02:00
recanman
22259dbbcc
improve installation docs consistency ( #1051 )
...
Co-authored-by: Markus Unterwaditzer <markus-github@unterwaditzer.net >
2026-05-22 00:31:52 +02:00
Markus Unterwaditzer
4526203af8
Do not recompile installer if files are missing
...
Currently the installer is recompiled everytime a file is missing, even
if the file has been missing before and after the last compilation.
That is because rerun-if-changed on a nonexistent filepath constantly
busts the cache.
2026-05-19 10:35:35 -07:00
Markus Unterwaditzer
3e53aef145
Collapse ntfy settings if unused
...
Like in the webdav settings, have a checkbox that expands a few form
fields.
2026-05-19 19:34:24 +02:00
Ember
c2ba5a2a6c
Add daemon startup smoke test and let it run on a PC in debug_mode
...
v0.11.0 shipped a daemon binary that built fine but didn't actually serve
a working frontend. CI was green. Nothing in the pipeline asserted that
the built binary comes up and serves something.
Add daemon/tests/smoke.rs as an integration test that spawns the built
binary against a tempdir-backed config with debug_mode = true, picks an
ephemeral port, and asserts:
- GET /index.html is 2xx and the decompressed body contains "Rayhunter"
- GET /api/qmdl-manifest is 2xx
- the daemon exits cleanly on SIGINT
Captures the daemon's stderr into a buffer so startup/shutdown failures
print actionable context instead of just "did not start listening".
Runs as part of the regular cargo test invocation, no new CI job.
For the smoke test (and #826 ) to work, the daemon needs to come up on a
PC without /dev/diag, a screen, or wpa_supplicant. The DIAG read thread,
display driver, and key input were already gated on debug_mode. Gate the
two remaining device-dependent workers the same way:
- run_battery_notification_worker (polls battery sysfs paths)
- wifi_station::run_wifi_client (talks to wpa_supplicant)
doc/installing-from-source.md gains a "Running the daemon on your PC"
section. doc/porting.md drops its duplicate debug_mode line and links to
the new section.
Closes #826 .
2026-05-19 10:31:21 -07:00
Markus Unterwaditzer
5636cf4311
fix js formatting
2026-05-18 15:30:55 -07: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
2ada840919
fix js lints
2026-05-18 15:30:55 -07:00
Markus Unterwaditzer
19df99d663
fix clippy
2026-05-18 15:30:55 -07:00
Markus Unterwaditzer
0259b101b5
compact UI a bit
2026-05-18 15:30:55 -07:00
Markus Unterwaditzer
9823fd3205
fix bad color in configform, move some docs into api docs
2026-05-18 15:30:55 -07:00
Markus Unterwaditzer
0783db6e01
reformat gps docs
2026-05-18 15:30:55 -07:00
Markus Unterwaditzer
0033b762d9
reformat frontend and refactor gps mode display
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
Markus Unterwaditzer
a58bad09fc
Remove unused import
2026-05-18 15:30:55 -07:00
Carlos Guerra
fc5593f00b
rebasing with upsream (webdav and wifi client)
2026-05-18 15:30:55 -07:00
Carlos Guerra
049a842987
suggested fix for gps feature, sorting timestamps
2026-05-18 15:30:55 -07:00
Carlos Guerra
7bae34061d
fixes requested, gps timestamp corrected, more error managing, more border conditions covered
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
dbe102e366
including documentation changes
2026-05-18 15:30:55 -07:00
Carlos Guerra
43d9b278cd
trimming gps.rs to go under 400 loc changed
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
Carlos Guerra
66f0c2a336
Kismet GPS option section per packet dcriped, refactoring to reduce loc
2026-05-18 15:30:55 -07:00
Carlos Guerra
adb316e2d7
GPS information included in PCAP files as comment and with Kismet proposed standard
2026-05-18 15:30:55 -07:00
Carlos Guerra
c107314194
GPS feature webapp side: GPS mode selector, fixed mode lat/lon, API endpoint. Merging with Wifi client and webdav features
2026-05-18 15:30:55 -07:00
Markus Unterwaditzer
ac33ebaf53
Remove stdout redirects
...
See #1016
2026-05-18 09:59:39 -07:00
Markus Unterwaditzer
047fbc216f
Fix CI: MacOS runner update breaks rust-cache action
...
https://github.com/Swatinem/rust-cache/issues/341
2026-05-15 09:19:43 -07:00
dependabot[bot]
d43aa28294
Bump svelte in /daemon/web in the security group across 1 directory
...
Bumps the security group with 1 update in the /daemon/web directory: [svelte](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte ).
Updates `svelte` from 5.55.5 to 5.55.7
- [Release notes](https://github.com/sveltejs/svelte/releases )
- [Changelog](https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md )
- [Commits](https://github.com/sveltejs/svelte/commits/svelte@5.55.7/packages/svelte )
---
updated-dependencies:
- dependency-name: svelte
dependency-version: 5.55.7
dependency-type: direct:development
dependency-group: security
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-15 00:40:16 +02:00
dependabot[bot]
af09802573
Bump svelte in /installer-gui in the security group across 1 directory
...
Bumps the security group with 1 update in the /installer-gui directory: [svelte](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte ).
Updates `svelte` from 5.55.4 to 5.55.7
- [Release notes](https://github.com/sveltejs/svelte/releases )
- [Changelog](https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md )
- [Commits](https://github.com/sveltejs/svelte/commits/svelte@5.55.7/packages/svelte )
---
updated-dependencies:
- dependency-name: svelte
dependency-version: 5.55.7
dependency-type: direct:development
dependency-group: security
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-15 00:39:59 +02:00
Markus Unterwaditzer
866b269dbd
Release 0.11.1
v0.11.1
2026-05-12 12:32:37 -07:00
Markus Unterwaditzer
da4e723eff
Revert "Compress the web frontend using brotli"
...
This reverts commit 00e4cb7a75 .
2026-05-12 12:18:17 -07:00
Markus Unterwaditzer
a3e7d0ef43
Fix CI: installer-gui needs wpa-supplicant
2026-05-12 19:52:49 +02:00
Cooper Quintin
d941021853
bump version to 0.11.0
v0.11.0
2026-05-12 09:37:02 -07:00
Markus Unterwaditzer
3fcd908d68
Add config UI for webdav uploader
2026-05-12 00:32:05 +02:00
Markus Unterwaditzer
e7ffebbb30
Add upload indicator to UI
2026-05-12 00:32:05 +02:00
Markus Unterwaditzer
6aa3491a6c
Fix config template: host/path -> url
2026-05-12 00:32:05 +02:00
Cooper Quintin
f079bda4fe
remove incorrect documentation
2026-05-11 14:48:34 -07:00
Markus Unterwaditzer
00e4cb7a75
Compress the web frontend using brotli
...
We can save 10 kB of binary size by compressing the frontend using
brotli on max settings instead of gzip. Any browser beyond 2017 will be
able to handle this, and since the Tailwind upgrade we already require
browsers from 2024. (see also #903 )
Also we can stop using whatever gzlip cli is on the system, node has
some stuff builtin.
Source for the claim we require chrome 2023/firefox 2024 baseline right
now: https://tailwindcss.com/docs/compatibility
Compression comparison:
| codec | size (bytes) | vs gzip -9 | wire format | `Content-Encoding` |
|---|---:|---:|---|---|
| (uncompressed) | 171,833 | +210.6% | — | — |
| gzip -9 | 55,313 | — | gzip | `gzip` |
| pigz -9 | 55,436 | +0.2% | gzip | `gzip` |
| brotli q=4 | 55,085 | -0.4% | brotli | `br` |
| brotli q=6 | 51,518 | -6.9% | brotli | `br` |
| brotli q=9 | 51,243 | -7.4% | brotli | `br` |
| **pigz -11** (zopfli) | **53,340** | **-3.6%** (~2 KB) | **gzip** | `gzip` |
| **brotli q=11** | **47,712** | **-13.7%** (~7.4 KB) | **brotli** | `br` |
2026-05-11 14:04:26 -07:00
Markus Unterwaditzer
c4eca245b9
CI: Rebuild everything if Cargo.lock, dist/ or scripts/ changes
...
See https://github.com/EFForg/rayhunter/pull/1020
2026-05-08 17:22:22 -07:00