Sven van Ginkel
15c29fee92
feat(site): allow dismissing the active alerts banner and soften its red ( #2478 )
2026-09-30 12:17:02 -04:00
Sven van Ginkel
2ca5e727f9
refactor(ui): remove "Copy to system" from network monitor actions ( #2480 )
2026-09-30 12:13:31 -04:00
Sven van Ginkel
e01e2a20e9
feat(ui): compare network monitor targets within the same system ( #2477 )
...
Co-authored-by: henrygd <hank@henrygd.me >
2026-09-29 19:56:56 -04:00
spatiumstas
3cc19602c1
hotfix: remove unused useLingui ( #2476 )
2026-09-29 17:21:45 -04:00
spatiumstas
6c47ca8ecc
fix(site): refresh interpolated translations on locale change ( #2405 )
2026-09-29 12:57:57 -04:00
Juankers
3281055d95
fix(ui): prevent status ping from being clipped on desktop ( #2470 )
2026-09-29 12:24:44 -04:00
spatiumstas
67c5905b36
fix(agent): handle partial NVMe SMART data ( #2340 )
2026-09-29 12:09:32 -04:00
henrygd
1997984325
refactor(hub): make SSHTransport the single owner of each system's SSH connection
...
The updater and on-demand requests kept separate copies of the SSH client
(sys.client and the transport's client) and synced them after each request.
That allowed a closed client to be reinstalled over a newer one and leaked
connections that were replaced without being closed.
The updater now dials, opens sessions and tears down timed-out connections
through the transport. The dial keeps the TCP keepalive and handshake
deadline, and an OnConnect callback handles the per-connection resets.
The transport is created under a lock and agentVersion is now atomic.
2026-09-29 11:59:15 -04:00
user01010111
97db8bd199
fix(hub): honor SSH request cancellation ( #2450 )
...
Co-authored-by: hank <hank@henrygd.me >
2026-09-29 11:22:17 -04:00
user01010111
24881fbfdf
fix(hub): prevent proxy caching of systemd details ( #2456 )
...
Co-authored-by: hank <hank@henrygd.me >
2026-09-29 10:54:17 -04:00
user01010111
4422be717c
refactor(site): restore TypeScript checking in production builds ( #2457 )
2026-09-29 10:35:47 -04:00
user01010111
0484c54919
fix(hub): require system access for alert subscriptions and delivery ( #2455 )
...
Co-authored-by: hank <hank@henrygd.me >
2026-09-29 10:27:11 -04:00
user01010111
a77ed345d7
refactor(hub): scope monitor result writes to the reporting system ( #2449 )
...
Co-authored-by: hank <hank@henrygd.me >
2026-09-29 09:41:48 -04:00
henrygd
1ab38e57c5
chore(site): refresh bun lockfile
2026-09-29 08:52:33 -04:00
user01010111
5df0a256c6
fix(hub): pad short monitor IDs to the schema minimum ( #2454 )
2026-09-28 19:48:57 -04:00
user01010111
8b38db1ba0
test: initialise and stop hub fixture workers before cleanup ( #2463 )
2026-09-28 19:42:36 -04:00
user01010111
921ded1af0
fix(hub): synchronise WebSocket connection access ( #2453 )
...
Co-authored-by: user01010111 <lapses.50.booster@icloud.com >
2026-09-28 19:12:00 -04:00
user01010111
09a277f074
fix(hub): synchronise system status access ( #2452 )
2026-09-28 18:58:46 -04:00
user01010111
083b28a1fc
fix(hub): preserve custom DNS resolvers when syncing monitors ( #2448 )
2026-09-28 18:49:43 -04:00
user01010111
c556dc478d
test: preserve fixture errors and verify complete certificate pools ( #2462 )
2026-09-28 18:23:15 -04:00
user01010111
62f8a39c8a
test: make agent and systemd fixtures portable ( #2461 )
2026-09-28 18:19:02 -04:00
Sven van Ginkel
be3dad7ed4
fix(site): confirm before deleting a single network monitor ( #2467 )
2026-09-28 18:01:10 -04:00
Sven van Ginkel
666529e073
feat(site): compare network monitors across systems ( #2442 )
2026-09-28 17:45:54 -04:00
spatiumstas
7626e5e3c8
feat: show systemd service logs in service details ( #2440 )
...
Co-authored-by: hank <hank@henrygd.me >
2026-09-28 13:57:36 -04:00
Sven van Ginkel
ad215788ed
fix(site): even y-axis ticks on system charts ( #2466 )
2026-09-28 12:14:47 -04:00
henrygd
b684ac9910
fix(hub): bound SSH handshake so a silent peer can't hang the updater
...
ssh.ClientConfig.Timeout only covers the TCP connect. A peer that accepts
the connection but never sends an SSH banner blocked ssh.NewClientConn
forever, wedging the system's updater goroutine and leaking the socket.
Set a deadline on the conn for the handshake and clear it afterward.
2026-09-28 10:18:59 -04:00
Sven van Ginkel
65f00ae119
feat(site): replace active alerts grid with banner and sheet ( #2445 )
...
Co-authored-by: henrygd <hank@henrygd.me >
2026-09-27 20:33:06 -04:00
henrygd
4b4ef0a2fe
fix(ui): show grey agent version dot for paused systems
2026-09-27 13:25:29 -04:00
henrygd
81fd571169
refactor(site): move package updates to own tab and tweak table
...
- show package updates in a separate Updates tab in the tabbed layout
- sort major version changes first in the change column
- use text-sm for version numbers
2026-09-27 11:39:54 -04:00
Anand Hegde
8613cfe548
feat: list pending package updates on the system page ( #2427 )
2026-09-27 11:27:13 -04:00
Sven van Ginkel
c1505804bd
fix(site): show gaps in network monitor charts for failed probes and disconnects ( #2428 )
...
Co-authored-by: henrygd <hank@henrygd.me >
2026-09-27 11:08:50 -04:00
henrygd
b3feff9a28
fix(site): round network monitor res_avg and loss to two decimals
...
plus formatting in utils.ts
2026-09-26 12:53:39 -04:00
yi111
67c3c1cb43
fix(site): avoid duplicate y-axis labels on network monitor response charts ( #2426 )
...
Co-authored-by: hank <hank@henrygd.me >
2026-09-26 12:37:11 -04:00
henrygd
fb4e93f098
refactor(site): use globalThis to access BESZEL for base path
2026-09-26 12:26:39 -04:00
spatiumstas
1ed02bb517
feat(ui): add Twemoji Country Flags font to make sure flags always render ( #2363 )
2026-09-26 10:41:22 -04:00
henrygd
15994474f6
hub: return 404 status for unknown frontend routes ( #2414 )
2026-09-26 10:17:25 -04:00
henrygd
24ec18a937
refactor(hub): decode each agent response into a new struct
...
The WebSocket path reused sys.data, and CBOR leaves omitted fields
untouched, so stale values carried over (e.g. Details re-saved every
poll, SystemdServicesUpdated stuck true, old map entries kept).
sys.data is now set only by the regular update for alerts. Removes the
Wi-Fi-only workaround in UnmarshalResponse.
2026-09-26 09:43:33 -04:00
henrygd
c7f2177b08
wifi: hide chart without signal data, show unknown signal in table
...
The line chart never renders without values, leaving an endless spinner
when connected interfaces report no RSSI.
2026-09-25 20:09:34 -04:00
henrygd
fe83f5b831
add signal strength indicator dot to all systems table
2026-09-25 19:24:11 -04:00
henrygd
46fa7c581e
use tooltip for all systems table cell
2026-09-25 18:53:25 -04:00
henrygd
24792aa24f
wifi: omit empty info snapshot and tidy up
...
- Info.WiFi uses json "wf" with omitempty so systems without Wi-Fi no
longer store/broadcast "wifi":null
- move osascript exec into wifi_darwin.go; drop unused commandRunner
- share strongest-connection logic between table cell and sorting
- trim agent/wifi README
2026-09-25 18:43:05 -04:00
henrygd
16e3fbadce
store compact RSSI stats and skip real-time collection
...
Stats.WiFi is now map[string]int8 (json "wf") holding only available
RSSI
readings; SSID and unavailable signals stay in Info.WiFi. Averages are
rounded to whole dBm.
Wi-Fi is collected only on the default 60s interval; real-time requests
reuse the last snapshot to avoid spawning osascript / dumping the BSS
cache every second.
2026-09-25 18:02:34 -04:00
Vito Cappello
86ab0fae8b
feat: monitor connected Wi-Fi signal per interface ( #2367 )
2026-09-25 17:43:57 -04:00
henrygd
badd4c8245
fix(hub): improve GPU chart layout
...
- Let GPU Power Draw span full width when it's a lone card in the grid
- Split GPU charts into summary (power/engines) and per-GPU grids so
usage and VRAM charts stay paired side by side
2026-09-25 13:55:59 -04:00
henrygd
7bea20e3b6
refactor(agent): remove unused FsStats.Time
...
The disk I/O seed now reads from diskBaseline, so nothing reads
FsStats.Time anymore.
2026-09-25 13:50:19 -04:00
Anand Hegde
c25408651f
feat: show number of pending package updates ( #2357 )
2026-09-25 12:13:37 -04:00
henrygd
d80a2f49f9
fix(ui): hide stray 0 in info bar for paused systems
2026-09-24 19:56:23 -04:00
spatiumstas
21b648a005
fix(site): prevent scrollbar layout shifts ( #2406 )
2026-09-24 19:25:56 -04:00
henrygd
151423ac63
fix(ui): size monitors system column by systems in the table
...
Base the network monitors system column width on the longest name among
systems that have monitors in the table, rather than all systems.
2026-09-24 19:13:48 -04:00
Sven van Ginkel
f7528a0208
feat: Add option to define which DNS server a DNS monitor queries ( #2389 )
2026-09-24 19:01:10 -04:00