Commit graph

  • 4124ec2e25 docs: добавить подробное руководство для контрибьюторов CONTRIBUTING.md qwen.ai[bot] 2026-08-12 13:09:56 +00:00
  • da4396ae07 chore: добавить конфигурацию flake8 и mypy в pyproject.toml qwen.ai[bot] 2026-08-12 13:09:23 +00:00
  • 7f4861f153 chore: добавить pre-commit хуки для ruff, flake8, pytest и проверок кода qwen.ai[bot] 2026-08-12 13:09:15 +00:00
  • 908fc75a1f ci: добавить GitHub Actions workflow для тестов, линтинга и типизации qwen.ai[bot] 2026-08-12 13:09:08 +00:00
  • 510ec457c9 fix: изменить минимальную версию Python с 3.14 на 3.11 для совместимости qwen.ai[bot] 2026-08-12 13:09:00 +00:00
  • a43b10ceec Update README with test badge and ignore rule clarification qwen.ai[bot] 2026-08-12 12:50:07 +00:00
  • 3a0f95c793 document L4-L7 diagnostic modules and the python 3.14 bump Andrew Pimenov 2026-08-10 21:26:46 +03:00
  • a21197f83b actually stage the bgp_path.py half of the international-loop fix Andrew Pimenov 2026-08-10 21:18:42 +03:00
  • 938c715a04 fix international-loop detection: drop dead ip_country parameter Andrew Pimenov 2026-08-10 21:18:28 +03:00
  • 4ed455700b wire TLS, prefix bench, DPI check, DNS advanced, path diversity into the CLI pipeline Andrew Pimenov 2026-08-10 21:18:19 +03:00
  • 342d92e709 render TLS, DNS advanced, path diversity, prefix bench, DPI sections in reports Andrew Pimenov 2026-08-09 17:56:07 +03:00
  • fc502f1756 add finding rules for TLS, prefix bench, DPI, DNS advanced, path diversity Andrew Pimenov 2026-08-09 17:49:30 +03:00
  • 1874f3f3c2 add Cloudflare CF-RAY edge/anycast path diversity probe Andrew Pimenov 2026-08-09 17:45:37 +03:00
  • 63e7597520 add system DNS vs DoH comparison and transparent proxy detection Andrew Pimenov 2026-08-09 17:45:33 +03:00
  • a000a12b19 add single-host DPI/TCP-RST self-diagnostic probe Andrew Pimenov 2026-08-09 17:45:27 +03:00
  • 10fa9f8052 add AS prefix latency benchmark probe Andrew Pimenov 2026-08-09 17:43:10 +03:00
  • e34d8f27f4 add TLS handshake RTT / TTFB probe Andrew Pimenov 2026-08-09 17:42:02 +03:00
  • c63c179b57 add config sections for TLS, prefix bench, DPI check, DNS advanced, path diversity Andrew Pimenov 2026-08-09 17:37:48 +03:00
  • 33d7d2d942 add L4-L7 diagnostic models (TLS, DPI, DNS, anycast, prefix bench) Andrew Pimenov 2026-08-09 17:35:37 +03:00
  • 51d82d997f add jitter matrix (p95/p99/cv) to ping stats Andrew Pimenov 2026-08-09 17:34:06 +03:00
  • d1d774a199 bump minimum python to 3.14 Andrew Pimenov 2026-08-09 17:31:07 +03:00
  • 9ef6f2e536 document per-platform setup for optional install extras Andrew Pimenov 2026-08-09 16:46:11 +03:00
  • 387e58949f add specific unit tests for parse_traceroute Andrew Pimenov 2026-08-09 16:21:23 +03:00
  • 9a01b2abe2 add test coverage for throughput_from_samples Andrew Pimenov 2026-08-09 16:20:50 +03:00
  • f80ebfe217 add tests for parse_server_timing_cfl4 edge cases Andrew Pimenov 2026-08-09 16:20:23 +03:00
  • 7fb13a87ef add tests for identity_changes Andrew Pimenov 2026-08-09 16:20:11 +03:00
  • 19c06279fe add test coverage for fetch_internetdb Andrew Pimenov 2026-08-09 16:19:59 +03:00
  • 058b873445 add tests for decode_dnsbl fallback and mixed responses Andrew Pimenov 2026-08-09 16:18:57 +03:00
  • d5b8d27bfd add test coverage for fetch_abuseipdb Andrew Pimenov 2026-08-09 16:18:46 +03:00
  • 053e42c811 expand classify_ip_type test coverage Andrew Pimenov 2026-08-09 16:17:49 +03:00
  • 1554af5943 add tests for summarize_dnsbl Andrew Pimenov 2026-08-09 16:17:35 +03:00
  • 0be881b96a add tests for merge_geo edge cases and improve ip_geo coverage Andrew Pimenov 2026-08-09 16:16:47 +03:00
  • bc5b01ae58 add test coverage for refresh_netsets Andrew Pimenov 2026-08-09 16:16:32 +03:00
  • 15d4d745c4 improve test coverage for latency_changes Andrew Pimenov 2026-08-09 16:15:18 +03:00
  • 2a72bdb441 cover empty exception message branch in run_speed_cascade Andrew Pimenov 2026-08-09 16:15:08 +03:00
  • 8e7d5bba5b add tests for tier_cloudflare Andrew Pimenov 2026-08-09 16:14:55 +03:00
  • 24f08acd79 add test coverage for tier_ookla Andrew Pimenov 2026-08-09 16:14:42 +03:00
  • d42a236d3a add test coverage for finding_changes Andrew Pimenov 2026-08-09 16:14:16 +03:00
  • b3971375c2 add tests for speed_changes Andrew Pimenov 2026-08-09 16:14:00 +03:00
  • be99c19cfd add async tests for query_dnsbl Andrew Pimenov 2026-08-09 16:13:42 +03:00
  • 2473822b93 add tests for finalize_hop Andrew Pimenov 2026-08-09 16:13:29 +03:00
  • 8aa806881e add test coverage for tier_fastcom Andrew Pimenov 2026-08-09 16:13:19 +03:00
  • 768490562c guard tier_fastcom against a falsy target url Andrew Pimenov 2026-08-09 16:13:10 +03:00
  • 52c0647e77 run refresh_netsets provider fetches concurrently with asyncio.gather Andrew Pimenov 2026-08-09 16:12:15 +03:00
  • 6810c0f753 optimize first_loss_jump with zip pairwise iteration Andrew Pimenov 2026-08-09 16:11:43 +03:00
  • 93c6ac526a use zip for pairwise hop iteration in path_findings Andrew Pimenov 2026-08-09 16:11:29 +03:00
  • fb3c6ca77f optimize overall_verdict by combining severity iterations Andrew Pimenov 2026-08-09 16:10:45 +03:00
  • ab39922bf6 cache dataclass_fields lookup in merge_geo Andrew Pimenov 2026-08-09 16:10:29 +03:00
  • 329ff15e74 make _resolve async to avoid blocking the event loop Andrew Pimenov 2026-08-09 16:10:17 +03:00
  • e4c51546ba use list comprehension for _unix_probes Andrew Pimenov 2026-08-09 16:09:29 +03:00
  • 85da4aab1f optimize _unix_annotations dedup with dict.fromkeys Andrew Pimenov 2026-08-09 16:09:05 +03:00
  • f59f860327 group build_trace_result arguments into TraceConfig dataclass Andrew Pimenov 2026-08-09 16:08:52 +03:00
  • 4c290ec309 refactor build_reputation to use ReputationContext dataclass Andrew Pimenov 2026-08-09 16:08:29 +03:00
  • fc37ff369d extract NDT7 consent check into a helper function Andrew Pimenov 2026-08-09 16:07:44 +03:00
  • d2ab0caafd refactor gather_vpn_signals to use VpnContext dataclass Andrew Pimenov 2026-08-09 16:07:27 +03:00
  • 5f51e70d5e extract BgpContext dataclass for build_bgp_intel Andrew Pimenov 2026-08-09 16:06:55 +03:00
  • d88b1bd95a Revert "uncomment pypi publish job, gated on manual environment approval" Andrew Pimenov 2026-08-09 13:52:23 +03:00
  • 46ced3da51 uncomment pypi publish job, gated on manual environment approval Andrew Pimenov 2026-08-09 13:43:55 +03:00
  • aefb41a463 fix dead icmplib traceroute tier importing a nonexistent symbol Andrew Pimenov 2026-08-09 13:39:35 +03:00
  • fd72604240 add --interface flag to force outbound probing through a specific adapter Andrew Pimenov 2026-08-09 13:36:06 +03:00
  • 51c01bd8c3 fix default gateway detection picking wrong route with multiple adapters Andrew Pimenov 2026-08-09 13:00:24 +03:00
  • 4888862305 fix false-positive sustained-loss verdict on long runs of silent hops Andrew Pimenov 2026-08-09 13:00:19 +03:00
  • 4ffc39906b add --format/--ru/--json flags to control which report artifacts get written Andrew Pimenov 2026-08-09 13:00:13 +03:00
  • 29b3fb1bb4 fill in real github url in readmes and license notice Andrew Pimenov 2026-08-09 11:49:11 +03:00
  • 031f85df5e netsleuth in docs, license, env example and release workflow Andrew Pimenov 2026-08-09 11:43:03 +03:00
  • 483989c1bc rename package netcheck to netsleuth (name taken on pypi) Andrew Pimenov 2026-08-09 11:43:00 +03:00
  • 0336be4080 gitignore agent process docs: tasks.md and specs/plans stay local only Andrew Pimenov 2026-08-09 11:37:36 +03:00
  • f031a0b48f ci: add release build workflow, gate pypi publish on name conflict Andrew Pimenov 2026-08-09 11:29:38 +03:00
  • 286e684d41 cli: remember ndt7 consent in a cache marker so repeat runs stop re-prompting Andrew Pimenov 2026-08-09 11:28:18 +03:00
  • 168cd14f51 ip_geo: russian dual-stack mismatch note alongside english Andrew Pimenov 2026-08-09 11:27:20 +03:00
  • ce97958cc9 netinfo: relay powershell adapter names as base64 to dodge codepage corruption Andrew Pimenov 2026-08-09 11:25:29 +03:00
  • b4c541aecf docs: sync readme, architecture and tasks with the russian report feature Andrew Pimenov 2026-08-09 11:14:56 +03:00
  • 2e84c434c0 exporter: translate module skip/warning reasons into russian Andrew Pimenov 2026-08-09 11:11:08 +03:00
  • 1821674376 cli: write and print the russian sibling report Andrew Pimenov 2026-08-09 11:07:19 +03:00
  • d53ab9a0d6 exporter: render russian markdown report alongside english Andrew Pimenov 2026-08-09 11:06:24 +03:00
  • 4c2da2e831 dns_leak: russian note alongside english Andrew Pimenov 2026-08-09 04:10:44 +03:00
  • 9e5ea923aa reputation: russian rationale alongside english Andrew Pimenov 2026-08-09 04:10:08 +03:00
  • db407595d6 interpret: russian title/detail/advice alongside english findings Andrew Pimenov 2026-08-09 04:09:01 +03:00
  • 04cf37ef7e models: add optional russian translation fields to finding, reputation, dns leak Andrew Pimenov 2026-08-09 04:07:34 +03:00
  • 6f47ea7736 license: finalize as PolyForm Noncommercial 1.0.0 Andrew Pimenov 2026-08-09 04:05:11 +03:00
  • 21d38d7acb add TASKS.md tracking outstanding work Andrew Pimenov 2026-08-09 03:59:21 +03:00
  • 4497e2a871 docs: sync readme and architecture with the final module and flag set Andrew Pimenov 2026-08-09 03:58:54 +03:00
  • 5da12ae629 ip_geo: never let cf-trace's own ip leak into a target lookup Andrew Pimenov 2026-08-09 03:52:25 +03:00
  • 5e4aa8b101 exporter: surface a skipped module's warning as its placeholder reason Andrew Pimenov 2026-08-09 03:49:53 +03:00
  • 44b1c4a39d cli: treat asn target mode as own-network identity like auto mode Andrew Pimenov 2026-08-09 03:47:59 +03:00
  • bfe9529667 exporter: name the report after the target, not always the local egress asn Andrew Pimenov 2026-08-09 03:47:55 +03:00
  • 3425e87dbf interpret: label a non-responding hop instead of printing None Andrew Pimenov 2026-08-09 03:43:57 +03:00
  • be03dd4f04 cli: force ipv4 for the egress_v4 identity lookup Andrew Pimenov 2026-08-09 03:43:54 +03:00
  • 10c5939bcb bgp: clamp cache age to zero against windows mtime clock skew Andrew Pimenov 2026-08-09 03:39:35 +03:00
  • 0d6d5405b3 watch: cycle scheduling, live dashboard and one time-series artifact per session Andrew Pimenov 2026-08-09 03:37:01 +03:00
  • 21b71a4056 icmp_win: bound trace_hops_win to a total timeout budget and stop it blocking process exit Andrew Pimenov 2026-08-09 03:33:12 +03:00
  • 3bf021e1f1 cli: force utf-8 console output on windows to stop compare crashing Andrew Pimenov 2026-08-09 03:26:16 +03:00
  • 4e4956ceeb compare: diff identity, latency, speed and findings between two reports Andrew Pimenov 2026-08-09 03:24:03 +03:00
  • 335ff0975e cli: typer app, phase pipeline and opt-in tcp-syn trace tier Andrew Pimenov 2026-08-09 03:24:00 +03:00
  • e4f9c3b5b7 exporter: explicit placeholders so a failed section never reads as a healthy one Andrew Pimenov 2026-08-09 02:46:53 +03:00
  • 879b974e57 exporter: markdown rendering with sparklines and hop bars Andrew Pimenov 2026-08-09 02:44:43 +03:00
  • 71b1fc95e3 exporter: report assembly, strict json and atomic writes Andrew Pimenov 2026-08-09 02:42:22 +03:00
  • 62040021af speed: bufferbloat probe running concurrently with saturation Andrew Pimenov 2026-08-09 02:39:24 +03:00
  • 36b2941667 speed: ookla, cloudflare, fast.com and ndt7 cascade tiers Andrew Pimenov 2026-08-09 02:38:19 +03:00
  • 5eec7aacab speed: throughput math, cfL4 header parsing, bufferbloat delta Andrew Pimenov 2026-08-09 02:37:14 +03:00