Repository navigation
Releases
Data Watch 1.5.0: Process stop controls
The Memory tab now lists the individual processes behind each program group, with PID, RAM, and swap. A process owned by your user account can be stopped with SIGTERM from the live details card using a two-step confirmation; processes owned by other users are labelled and cannot be stopped from the dashboard.
Stopping sends the same default signal as the kill command, so the program exits as if asked to close and unsaved work can be lost. Nothing is ever stopped automatically. Process IDs are read live for the dialog and are not saved to history, and the stop endpoint is limited to your own processes, the loopback dashboard, and same-origin requests with the dashboard header.
No runtime dependencies or privileged helper changes are required. Existing memory and network history remains intact.
Validation: 26 Rust tests, clippy with warnings denied, formatting, JavaScript controller checks, a standalone-binary smoke test that stops a real spawned process end-to-end, and a headless Chrome check that clicks through the confirmation and confirms the process exits passed. The pre-existing browser-check timing races (dialog focus restoration, Enter activation, capture-mode wait) were fixed in the test script.
Download the x86-64 Ubuntu archive, verify SHA256SUMS, extract, and run ./data-watch install. The README documents the stop control, its limits, and the SIGTERM behavior.
Data Watch 1.4.0: Memory observability
Data Watch now observes memory alongside network traffic. Open the new Memory tab or http://127.0.0.1:8765/#memory to inspect RAM headroom, swap, paging, Linux memory pressure, kernel OOM-kill counters, and programs ranked by resident memory.
The existing Rust service samples every six seconds independently of the network connection. It keeps 30 days of memory history: system summaries by minute and top-program peaks in five-minute windows. Select a timeline bar to inspect recorded peaks, or Return to live. Program rows open details; the list starts with ten groups and expands for scrolling.
No runtime dependencies or privileged helper changes are required. Existing network history remains intact. RSS can double-count shared memory; pressure and low-headroom indicators are heuristics, and the monitor does not stop programs or change cache/swap settings. Earlier freezes cannot be reconstructed.
A short 20-second measurement on the development PC observed 5.5 MiB RSS for the service versus 5.2 MiB for the previous version. CPU was 2.9% versus 2.3% of one core, including waited child processes. This excludes the browser and packet helper and is not a long-term benchmark.
Validation: 24 Rust tests, clippy with warnings denied, JavaScript syntax checks, network and memory UI controller checks, standalone binary HTTP/assets/notifications/memory smoke checks, installer checks, and installed memory persistence plus network-capture reconnection checks passed. Browser automation was unavailable; visual layout and native browser interactions remain unverified.
Download the x86-64 Ubuntu archive, verify SHA256SUMS, extract, and run ./data-watch install. Installation opens the local dashboard in a graphical session. The README lists Linux requirements and measurement limits.
Data Watch 1.3.1
Saved usage remains available when the hotspot disconnects. Automatic mode now keeps its historical interface separately from the live connection, restores it across offline service restarts, clears live rates, and labels offline exports correctly.
A successful graphical installation opens the dashboard after its local HTTP server is ready. Headless installations print the URL, and browser launch failure leaves monitoring installed.
The README now lists Linux architecture, glibc, systemd, collection, browser, and notification requirements. A new investigation explains the observed coding-agent traffic, repeated context and tool exchanges, measurement limits, and practical ways to reduce mobile-data use.
Download the Ubuntu x86-64 archive, verify SHA256SUMS, extract it, and run ./data-watch install. The dashboard, font, favicon, and SQLite engine are embedded. Continuous TCP/UDP attribution is enabled separately with data-watch full; existing helpers remain compatible.
Validation: 21 Rust tests; clippy with warnings denied; JavaScript syntax and open-source checks; isolated installer checks for desktop, headless, and missing-browser behavior; single-binary HTTP/assets/notifications smoke check; installed binary checksum and continuous capture reconnection verified. Browser automation was unavailable, so visual verification remains open.
Data Watch 1.3.0
What's new
- Select any part of a program row to open its details card with downloads, uploads, total usage, live rate, connection share, last observation, and history.
- The details card follows the selected time interval, supports native keyboard navigation, and closes with Escape, the close button, or a backdrop click.
- Show ten programs initially, then expand the full list into a scrollable area with position preserved during refreshes.
- Program details and list expansion reuse already-loaded data and do not add network requests.
- README dashboard screenshot and reusable project logo.
Validation: 17 Rust tests, Clippy, JavaScript syntax, controller interaction checks, and installed asset/API checks passed. Browser smoke coverage was updated; live browser verification was unavailable in this session.
Download data-watch-linux-x86_64.tar.gz for Ubuntu 22.04+ on x86-64. Verify it with sha256sum -c SHA256SUMS before installing.
Data Watch 1.2.0
What's new
- Seven daily bars for the last seven days, plus calendar-based weekly, monthly, and yearly views.
- Detailed minute history remains for 30 days. Older traffic and program totals compact into daily summaries kept for up to five years.
- The dashboard footer shows current history database size, including pending SQLite write-ahead log data.
Download data-watch-linux-x86_64.tar.gz for Ubuntu 22.04+ on x86-64. Verify it with sha256sum -c SHA256SUMS before installing.
Data Watch 1.1.1
What's fixed
- The live-throughput and connection cards now size to their contents on mobile instead of inheriting desktop flex dimensions as tall fixed heights.
Download data-watch-linux-x86_64.tar.gz for Ubuntu 22.04+ on x86-64. Verify it with sha256sum -c SHA256SUMS before installing.
Data Watch 1.1.0
What's new
- A prominent live local clock with timezone in the dashboard header.
- Selecting a timeline interval updates the data totals, download/upload percentages, and program list. Return to today restores the current readings.
- Daily limit alerts and test alerts request the desktop system sound.
- Responsive layout refinements for narrow screens.
- A project development story documenting the hotspot investigation and the collector's attribution limits.
Download data-watch-linux-x86_64.tar.gz for Ubuntu 22.04+ on x86-64. Verify it with sha256sum -c SHA256SUMS before installing.
Data Watch 1.0.0 - Ubuntu Linux
Data Watch 1.0.0 is the first Ubuntu Linux release, built to explain unexpected mobile hotspot usage.
The application runs from one executable with an embedded dashboard, SQLite engine, font, and favicon. It includes local usage history, per-program history, CSV export, daily desktop alerts, a Matrix-inspired interface, and a desktop launcher.
Continuous native TCP/UDP capture includes QUIC and short transfers. Run data-watch full once as your normal user and authenticate locally to enable the persistent capture service. The dashboard and history database remain unprivileged. The monitor and capture helper start at boot.
Download data-watch-linux-x86_64.tar.gz and SHA256SUMS, verify with sha256sum -c SHA256SUMS, extract the archive, and run ./data-watch install from its directory. Then run ~/.local/bin/data-watch full to enable packet attribution. The archive contains the executable and license notices. No Rust toolchain or separate database/web server is required.
Prebuilt target: Ubuntu 22.04 or later, Linux x86-64 (glibc 2.34+). Windows and macOS are later milestones. Other Linux architectures can build from source.
Validation passed: 16 Rust tests, formatting, clippy, isolated live IPv4/IPv6 UDP and sub-second TCP transfers, helper restarts/replay/fallback, SQLite persistence, browser interactions, desktop notification stubs, service configuration, and installed host TCP/UDP capture.
Program attribution can still miss sockets that close before their owner is identified, some VPN/container traffic, and link overhead. Interface totals also include local traffic and may differ from carrier billing. Earlier incomplete history is preserved rather than guessed. No URLs, packet contents, remote addresses, or command arguments are stored by the monitor.
Project license: Apache-2.0. Bundled third-party notices accompany the executable.