Upcoming
— targeted for the next release 2 itemsCode signing (OV certificate)
An OV code-signing certificate to remove the “unknown publisher” state on the installer. Skipping the EV tier deliberately — Microsoft removed EV’s instant SmartScreen bypass in 2024, so both tiers now build reputation the same way, through real download history.
Microsoft Store listing
A Store listing sidesteps SmartScreen entirely and gives free code signing and built-in updates through the Store’s own trusted install path. Direct .exe download stays available alongside it, same as our other products.
Planned
— committed, no ETA yet 4 itemswinget / Chocolatey / Scoop submission
Manifests for all three are already written and verified against the live installer’s SHA-256 — what’s left is the actual PR/publish step against each package manager’s own repo (winget-pkgs review, a Chocolatey publisher account, a Scoop bucket PR), not more building.
Simultaneous dual-WAN probing
Bind probes to each physical adapter and monitor both WAN connections at once, instead of only the currently-active one inferred from public-IP changes. The single most-requested capability from the dual-WAN homelab audience.
UniFi integration, take two
Re-adding UniFi WAN/public-IP integration using Ubiquiti’s official Network API key or local admin account — both bypass the unifi.ui.com 2FA/SSO flow that broke the original username/password approach.
Home Assistant & ntfy documentation
The webhook alert system already sends generic JSON on every event; documenting the payload against Home Assistant’s webhook trigger and ntfy’s publish API turns every outage into an automation trigger for users already running either.
Under Consideration
— community suggestions being evaluated 6 itemsOpt-in cross-user outage correlation
An anonymized, opt-in signal (timestamp, event class, ISP, coarse region only) that lets a report say “N other monitored connections on your ISP in your region saw the same failure in this window.” The biggest single differentiator being explored — needs a quorum threshold before any claim appears, same discipline as the existing internet-quorum check.
Tailscale-aware remote view
The remote status page is intentionally LAN-only with no auth. Detecting a local Tailscale interface and surfacing its address would let users reach their status page from anywhere without ClumsyLinkWatch having to build or secure its own remote-access layer.
Pro tier
Unlimited history, PDF report branding, dual-WAN reporting, scheduled auto-reports, and alerting beyond webhooks — the paid tier described in the product plan, priced as a one-time purchase rather than a subscription.
Consultant tier
White-label branding, multi-site profiles, and portable/USB mode for IT consultants and MSPs who drop the tool at a client site for a week. Pairs naturally with a CSV/JSON export aimed at PSA/RMM tools like Hudu or ITGlue.
MSP tooling export
A structured export of report data aimed at PSA/RMM documentation tools (Hudu, IT Glue) — a lighter lift than a full RMM integration, and the format MSPs actually discover tools through.
Light passive congestion sampling
Detect congestion-without-loss degradation (bufferbloat-style latency spikes under load) as a distinct signal from packet loss, giving DEGRADED events a clearer “why” than loss/latency thresholds alone.
Shipped
— already in your hands 37 featuresRemote status page: full app parity
The Remote LAN Status page previously only showed status, the probe ladder, and recent events. It now also shows an ISP/WAN panel, the 14-day latency trend chart, and a full Speed Test section (latest result, day/hour pattern heatmap, recent run history) — everything the desktop Dashboard shows, from your phone.
Remote event detail popup
Tap any event in the Remote Status page's Recent Events list to open the same evidence popup the desktop Event Detail view shows — full probe-ladder/DNS/quorum results, the "why" for DEGRADED, and a "what to do" suggestion, without needing to be at the monitoring host.
Speed test reliability fix
The speed test previously required a single 100MB+ request to complete without a hitch or it aborted the entire run — failing disproportionately on exactly the slower, flakier connections this app exists to diagnose. Chunk sizes are now capped at 25MB and total transfer per run cut from over 1GB to roughly 200MB, matching the estimate already shown in Settings. A mid-test hiccup now keeps whatever numbers were already measured instead of discarding the whole result, and History updates immediately after a run finishes instead of waiting on a background poll.
Event detail view
Click any event in the Events list to see the full evidence behind it — every probe-ladder rung, DNS resolver, and quorum anchor result, plus a plain-English "why" for DEGRADED — with a Copy Summary button to paste it into a ticket or message.
Actionable webhook alerts
Discord/Slack webhook notifications now include the specific DEGRADED reason(s) instead of just the bare class name, plus a plain-English "What to do" suggestion once the event resolves — tailored to the fault class and, for DEGRADED, which rung tripped it.
Multi-screen redesign
Rebuilt around four screens — Dashboard, Diagnostics, Speed Test, Events — instead of one long scrolling page, so the status you care about most reads at a glance without hunting through everything else.
Scheduled speed tests
Run automatically every 30 min / 1h / 4h / 12h / 24h (off by default), with a live data-cost estimate shown before you commit to an interval and an option to skip a run while a fault is already active.
Speed test history & pattern detection
Every run (manual or scheduled) is saved and sortable by worst download/upload/latency, plus a day-of-week × hour-of-day heatmap that automatically flags recurring slow windows — consistent with peak-hour congestion rather than a one-off.
Speed test self-interference guard
A running speed test saturates the link enough to cause transient latency spikes on the probe ladder's own pings — DEGRADED classification is now suppressed for the duration of any speed test so it can't trigger a false event against itself. Hard rung failures still classify normally.
Why DEGRADED was triggered
Every DEGRADED event now records exactly which rung, whether it was loss or latency, and the measured value against the threshold it crossed — shown live on the status card while it's happening, in event history, in evidence reports, and on the remote status page.
Remote LAN status page redesign
Was just a bare classification and timestamp — now shows the full probe ladder with live per-rung latency, rolling loss, a captive-portal warning banner, and color-coded recent events, styled to match the app itself.
SLA credit dollar calculation
An optional monthly bill amount field in the report generator converts measured ISP-attributable downtime into a straight-line prorated credit figure — turning “here’s what happened” into “here’s what it’s worth,” the number small-claims filings and billing disputes actually need.
Per-rung baseline auto-tuning
Baselines are now computed independently for the gateway, ISP-hop, and DNS rungs, not just quorum — a rung that’s quietly gotten slower now trips DEGRADED against its own normal, even while the quorum rung still looks perfectly healthy.
Package manager manifests
winget, Chocolatey, and Scoop manifests are written and verified against the live installer’s SHA-256, staged and ready for submission to each package manager’s own repository.
Settings window fix
Fixed a startup race where the Settings window could silently fail to open if it was requested before the local database finished starting up, with no retry — it now polls until settings are actually ready.
Check for updates from About
A refresh button in the About screen checks for a new version on demand, with inline status (checking / up to date / update available) and Download/Restart actions right there — no need to wait for the automatic background check.
Working speed test
Built-in download/upload/latency/jitter speed test using Cloudflare’s speed-test engine, served over a registered app scheme so the browser timing APIs it depends on report real numbers instead of collapsing to near-zero.
Five-rung probe ladder
Adapter, gateway, ISP first hop, DNS, and a quorum of independent internet anchors — every rung checked every cycle, cheapest and closest first, with confirmation retries before anything is declared down.
Fault classification
Every event is tagged ADAPTER_DOWN, GATEWAY_DOWN, LAST_MILE_DOWN, DNS_FAILURE, UPSTREAM_DOWN, DEGRADED, or HOST_SLEEP — and only the ISP-attributable classes count against your ISP in a report.
TTL-limited ISP-hop probing
Probes the ISP’s first hop at the depth discovered by traceroute rather than pinging it directly — avoids false last-mile-down readings on routers that answer TTL-expired traceroute probes but not direct ICMP echo.
Monotonic-time duration tracking
Outage durations are computed from a monotonic clock, not wall-clock time — so NTP corrections and DST shifts never produce negative or impossible durations in a report.
Sleep & hibernate detection
Subscribes to Windows power events and detects wall-clock gaps far larger than the sample interval, marking those spans HOST_SLEEP — rendered as hatched timeline gaps, never counted as uptime or downtime.
Adaptive probe scheduler
5-second interval while healthy, 2 seconds during an active event for resolution, backing off to 30 seconds after 10 minutes down — staggered and rate-limited so the tool never looks like a DoS source to the ISP.
SQLite history with configurable retention
Raw samples and events persist locally with a configurable retention window, so a year of 5-second samples doesn’t need to live in a JSON file or vanish after a week.
HTML & PDF evidence reports
A plain-English methodology paragraph, an ISP-attributable outage table, uptime percentage shown as “nines,” and an appendix listing every excluded event and why — nothing hidden.
Time-proportional timeline strip
Segment width proportional to real elapsed time rather than sample count, with Live/24h/7d/30d zoom and hover detail per segment — a 2-minute blip and a 2-hour outage no longer look the same width.
SLA calculator
Uptime percentage and total outage minutes for the period, shown in the same “nines” language SLAs use (99.5%, 99.9%).
Full-path hop table & 14-day latency trend
Every hop of the last full traceroute (not just the rung-2 ISP-hop depth), plus a rolling 14-day latency chart with baseline overlay, so degradation is visible as a trend, not just a single bad sample.
Captive-portal & DNS-hijack detection
A separate check against a known-good endpoint catches networks that intercept DNS or inject a captive-portal page — the false-healthy gap that could otherwise make the internet quorum check read as fine when the real connection is unusable.
Hardware panel & Starlink detection
Lists network adapters for dual-WAN visibility and detects a Starlink dish on the LAN, laying the groundwork for dish-specific obstruction/telemetry data.
Native, taskbar & webhook alerts
Desktop notifications and taskbar flash on real faults only (not DEGRADED or sleep), plus Discord/Slack-compatible webhook alerts and a color-coded system tray status.
LAN remote status page
A small unauthenticated status page reachable from any device on the same LAN — check current status and recent events from your phone without remoting into the desktop.
Auto-update
Built-in updater checks for new versions on launch and installs them with one click — no manual reinstalls for future releases.
Full product site
Product page, downloads with SHA-256 checksums, in-app-matching Help documentation, changelog, and legal pages (EULA, Privacy, Terms) — the complete public presence, not just an installer link.
Have a feature idea?
ClumsyLinkWatch is actively being shaped by early users. If there’s something missing that would make your evidence report stronger or your monitoring more useful, send it over — good suggestions land on this page and eventually in the app.
Bug reports: bugs@clumsyslab.tech