Collapse repeated daily IP records into summaries ordered by last seen.
Keep country and IP-type filters across both views and expand dates only
for IPs recorded on multiple days. Preserve the daily storage format.
Co-Authored-By: GPT-6 <noreply@openai.com>
Return null for invalid options or limits instead of throwing during
BigInt conversion. Preserve zero, default, and safe integer limits.
Co-Authored-By: GPT-6 <noreply@openai.com>
Validate both network and address against the selected IP family.
Cover negative values, overflow, and valid IPv4 and IPv6 boundaries.
Co-Authored-By: GPT-6 <noreply@openai.com>
Avoid Number overflow when parsing long standalone or dotted octal
input. Cover oversized values, leading zeros, and IPv4 boundaries.
Co-Authored-By: GPT-6 <noreply@openai.com>
Update the input and query parameter when a slider change is committed.
Preserve the host address and other query parameters, and keep dragging
from replacing the URL. Cover IPv4, IPv6, and numeric inputs.
Co-Authored-By: GPT-6 <noreply@openai.com>
Reject ambiguous IPv4 input before geolocation requests reach upstreams.
Cover shared validation, public-IP checks, and the API guard while
preserving valid zero octets and IPv6 leading zeros.
Co-Authored-By: GPT-6 <noreply@openai.com>
Adds SkyDNS (193.58.251.251) to api/data/dns-resolvers.js, giving
Russia a second public resolver alongside Yandex.DNS, as invited
in #390.
UDP entry only: SkyDNS's DoH endpoint serves RFC 8484 wire format
rather than the application/dns-json API this handler appends
name=&type= to (same call as Yandex.DNS and CZ.NIC ODVR).
Verified from outside RU: RA set, honest NXDOMAIN, non-truncated.
Connectivity, WebRTC, DNS Leak and Rule Test cards only knew "Awaiting
Test" and the final verdict, so a manual refresh left the label saying
the test had not started while it was already running. A new
StatusTesting sentinel is written the moment a run is scheduled, on boot
and on refresh alike; "Awaiting Test" now only means the test has not
been triggered (Connectivity with auto-run off). Tone and pulse stay on
the wait level, the info mask skips the new placeholder, and the English
ruletest.StatusWait drops its stray "or Test Error" suffix along with
the translations derived from it.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Show a fixed preliminary test before the selected measurements and keep
formal results independent. Start testing without waiting for charts or
connection metadata, buffering samples until charts are ready.
Add localized phase labels and immediate startup progress, reduce the
formal latency sample count to 20, and document the improvement.
Validation: pnpm check (1533 tests passed and build succeeded).
Co-Authored-By: GPT-6 <noreply@openai.com>
Add Perplexity to the AI import list, plus its favicon.
Hugging Face is already on the list. The earlier Replicate change was closed unmerged, so this uses a different site.
Related to #399
Add a Sports import list (ESPN, NBA, FIFA, Premier League, Formula 1, DAZN, Flashscore, Sofascore, Sky Sports, beIN Sports, MLB, NFL), locale names, and favicons.
Cricbuzz is already on the India list, so it is not duplicated.
Closes#402