Commit Graph
513 Commits
Author SHA1 Message Date
Sven van GinkelandGitHub 2e9f4ef4a7 fix(docker): build arm/v6 images with GOARM=6 (#2637) 2026-10-17 12:53:30 -04:00
henrygd cc98299a72 refactor(ui): match token mask length and place copy buttons beside values 2026-10-17 10:09:18 -04:00
Daniel JeremiahandGitHub 74b02cbe0d Mask agent tokens until explicitly revealed (#2625) 2026-10-17 10:06:32 -04:00
henrygd e8970e4679 fix(site): show spinner in systems table until systems are loaded 2026-10-15 09:53:58 -04:00
4aee1668fe fix(agent): bind connection lifecycle to a cancellable context (#2464)
Agent.Start and ConnectionManager.Start now take a context.Context. The
manager runs until that context is cancelled or the process receives
SIGINT/SIGTERM. On shutdown it waits for in-flight reconnect attempts
before closing connections.

The reconnect delay, WebSocket dial and pending handshake now stop when
the context is cancelled. A context-aware dialer keeps proxy selection
from the environment. WebSocket callbacks no longer block on eventChan
after the event loop exits. A late reconnect can no longer restart the
SSH server once shutdown begins.

BREAKING CHANGE: agent.Agent.Start now requires a context.Context.

---------

Co-authored-by: hank <hank@henrygd.me>
2026-10-13 12:32:26 -04:00
032c03b0f7 fix(ui): sort monitor targets without URL scheme, show HTTPS in badge (#2501)
Co-authored-by: hank <hank@henrygd.me>
2026-10-13 09:38:26 -04:00
henrygd d5f50fa461 feat(users): warn on invalid OAUTH_DEFAULT_USER_ROLE values 2026-10-13 08:39:37 -04:00
Sven van GinkelandGitHub 13ea8106eb users: add OAUTH_DEFAULT_USER_ROLE and make USER_EMAIL user admin (#2516) 2026-10-13 08:37:04 -04:00
spatiumstasandGitHub 17dcd96efc fix(site): improve accessibility and preserve login translation (#2604) 2026-10-13 07:52:23 -04:00
henrygd 2fea95b3f1 chore(hub): update bun + npm lockfiles 2026-10-13 07:33:25 -04:00
spatiumstasandGitHub 9e60049248 fix(site): support Tailwind directives in Biome (#2603) 2026-10-13 07:31:01 -04:00
spatiumstasandGitHub 4886479cd4 fix(site): preserve lazy loading of the systemd table (#2602) 2026-10-13 07:20:45 -04:00
spatiumstasandGitHub 9cf75cca7a fix(site): stabilize system dialog layout across tabs (#2571) 2026-10-12 12:53:11 -04:00
MarrrrrrrrryandGitHub a1d86d120f refactor(ui): measure y-axis labels via textContent instead of innerHTML (#2536) 2026-10-12 11:41:10 -04:00
Rajeev GadgilandGitHub a1cbdc980e fix(hub): omit zero GPU package power from stored stats (#2551) 2026-10-12 11:08:53 -04:00
Sven van GinkelandGitHub 665bcb3e53 refactor(agent): consolidate smartctl JSON types and SMART parsers (#2584) 2026-10-12 10:34:37 -04:00
Mario MoharandGitHub da51dfd598 fix(site): unsubscribe live metrics that resolve after leaving 1m (#2599)
pb.realtime.subscribe() resolves only once the server has confirmed the
subscription. When the chart time changed away from 1m before that, the
effect cleanup ran with the initial no-op, the subscription stayed active,
and its 1m points kept overwriting the 1h history. Track cancellation,
unsubscribe as soon as the late subscription resolves, and ignore messages
that arrive after cleanup. Fixes #2598.
2026-10-12 09:14:31 -04:00
Mario MoharandGitHub 596f96442e fix(hub): keep the updater running when the system record lookup fails (#2588)
getRecord removed the system from the manager on any error, so a query that
timed out while the hub was stalled stopped the updater for good. The system
stayed 'up' in the database and was never polled again until a restart.
Only a record that is really gone removes the system now. (#2544)
2026-10-11 13:39:00 -04:00
henrygd f8d3fe1817 fix: use omitzero for scalar JSON fields under json v2
PocketBase now marshals record JSON fields with encoding/json/v2, where
omitempty no longer omits zero numbers or false. This roughly doubled the
size of stored system_stats rows with zero-value keys. Switch scalar
fields to omitzero to restore the v1 output shape, and add a test that
compares v1 and v2 output for zero-heavy values.
2026-10-11 09:47:30 -04:00
Bharat KauravandGitHub 383e9c7072 fix(agent): widen NVMe unsafe_shutdowns to uint (#2583)
unsafe_shutdowns was uint16, so drives reporting more than 65535 unsafe
shutdowns made json.Unmarshal fail and the entire NVMe SMART record was
discarded with only "no valid SMART data found" in the logs. Widen it
to uint, matching power_cycles (#2484), and log the unmarshal error at
debug level so similar failures are diagnosable.

Fixes #2582
2026-10-11 09:17:17 -04:00
spatiumstasandhank 13bdd05934 fix: handle cached NVMe failures and empty SMART responses 2026-10-09 14:40:55 -04:00
017ebb091a feat: surface zpool status messages in pool health (#2509)
Co-authored-by: henrygd <hank@henrygd.me>
2026-10-09 13:57:40 -04:00
Sven van GinkelandGitHub 5714643ff9 fix(site): keep last known update count in systems table when host is down (#2559) 2026-10-09 12:10:46 -04:00
henrygd e30e980854 deps: update npm / bun lockfiles 2026-10-09 11:19:45 -04:00
Sven van GinkelandGitHub 195afc10b8 deps(site): bump npm packages with security alerts (#2575) 2026-10-09 11:17:25 -04:00
henrygd d91f06f3c5 fix(hub): stop keepalive pings after prolonged agent silence
The keepalive ping on a failed fetch re-arms the read deadline without needing
a reply, so a dead peer (power loss, partition) kept its connection until TCP
gave up. Track when the agent last sent a message and only ping while that is
under maxAgentSilence (3m). A live agent always answers within interval + its
own 120s deadline, so slow agents are unaffected; a dead one is now released
by the read deadline and falls back through the normal down/SSH path.
2026-10-09 11:09:43 -04:00
Mario MoharandGitHub 7305eda972 fix(hub): ping a slow agent so its connection survives between polls (#2435) 2026-10-09 10:51:42 -04:00
bc2278e7e9 feat(agent): Handle update package check for xbps package manager (#2522)
Co-authored-by: hank <hank@henrygd.me>
2026-10-06 12:10:12 -04:00
Sven van GinkelandGitHub 965518e63c fix(site): restore latency tolerance in 1m realtime charts (#2521) 2026-10-05 12:48:46 -04:00
Sven van GinkelandGitHub ca40b5b38f fix(charts): show isolated points and stop endless spinner on empty values (#2514) 2026-10-05 12:39:14 -04:00
Sven van GinkelandGitHub d89f844a2a feat(monitors): add option to ignore TLS errors for HTTPS monitors (#2500) 2026-10-05 12:01:51 -04:00
Julio LinsandGitHub dcae7682cd fix(hub): add missing testing build tag to hub tests (#2525) 2026-10-05 10:54:21 -04:00
henrygd ec96c13466 release 0.21.0 2026-10-02 13:13:54 -04:00
henrygd 49f4f652e1 i18n: update translations 2026-10-02 12:20:06 -04:00
henrygd 25132b73ff ui: paginate the package updates table 2026-10-02 11:37:18 -04:00
hankandGitHub 49ad3fe533 New Crowdin updates (#2485) 2026-10-02 10:34:35 -04:00
henrygd da742a70ab ui: bump default layout width to 1600 2026-10-02 10:25:23 -04:00
8a173e2643 feat(hub): add DISABLE_SSH option to skip SSH fallback (#2469)
Co-authored-by: hank <hank@henrygd.me>
2026-10-01 11:20:00 -04:00
henrygd 5b0952ffcf ui: persist log timestamp toggle and add tooltips to log buttons 2026-09-30 21:26:28 -04:00
Jeroen De WildeandGitHub 2502dd9626 feat: add toggle for log timestamps (#2471) 2026-09-30 21:14:13 -04:00
hankandGitHub 8a91a0b5ab New Crowdin updates (#2412) 2026-09-30 21:12:07 -04:00
henrygd 6ff9b4cfea feat(ui): add MB/s and GB/s unit select to bandwidth alert
Raises the bandwidth threshold max to 5 GB/s without making the MB/s
slider less precise. Values are still stored in MB/s, and the unit is
inferred from the stored value when the alert sheet opens.
2026-09-30 20:24:04 -04:00
Sven van GinkelandGitHub 87f1efdfd9 fix(ui): reject IP targets for DNS monitors (#2483) 2026-09-30 18:12:14 -04:00
Bartu ÖzenandGitHub dd3a769d18 Widen NVMe power-cycle SMART fields to uint (#2484) 2026-09-30 17:50:12 -04:00
Sven van GinkelandGitHub 15c29fee92 feat(site): allow dismissing the active alerts banner and soften its red (#2478) 2026-09-30 12:17:02 -04:00
Sven van GinkelandGitHub 2ca5e727f9 refactor(ui): remove "Copy to system" from network monitor actions (#2480) 2026-09-30 12:13:31 -04:00
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
spatiumstasandGitHub 3cc19602c1 hotfix: remove unused useLingui (#2476) 2026-09-29 17:21:45 -04:00
spatiumstasandGitHub 6c47ca8ecc fix(site): refresh interpolated translations on locale change (#2405) 2026-09-29 12:57:57 -04:00
JuankersandGitHub 3281055d95 fix(ui): prevent status ping from being clipped on desktop (#2470) 2026-09-29 12:24:44 -04:00