Commit Graph

  • 0118ab0f44 feat: embed git SHA in version string via build.rs Razvan Dimescu 2026-04-16 13:02:25 +03:00
  • a87f907d20 Merge pull request #109 from razvandimescu/feat/dashboard-version Razvan Dimescu 2026-04-16 11:29:54 +03:00
  • 1c5e703330 fix(dashboard): collapse header on mobile (≤700px) #109 Razvan Dimescu 2026-04-16 06:39:29 +03:00
  • cc635f2f73 feat(dashboard): show version in header, restructure footer Razvan Dimescu 2026-04-16 06:15:48 +03:00
  • 7bb484ada3 refactor(windows): deduplicate after simplify review Razvan Dimescu 2026-04-15 23:48:09 +03:00
  • b610160cd1 feat(windows): run numa as a real SCM service, drop Run-key autostart Razvan Dimescu 2026-04-15 22:24:23 +03:00
  • cea4b0ef88 feat(windows): add windows-service crate + SCM dispatcher scaffold Razvan Dimescu 2026-04-15 22:14:36 +03:00
  • 4afc56a052 Merge main into feat/forwarding-array-upstream Razvan Dimescu 2026-04-15 21:28:04 +03:00
  • 43a5ca4bd5 Merge pull request #105 from razvandimescu/chore/audit-rustls-webpki Razvan Dimescu 2026-04-15 14:41:19 +03:00
  • b403671e11 chore(deps): bump rustls-webpki to 0.103.12 #105 Razvan Dimescu 2026-04-15 14:27:17 +03:00
  • 6f0144b237 Merge pull request #103 from razvandimescu/feat/upstream-log-label Razvan Dimescu 2026-04-15 14:00:28 +03:00
  • fef43635d6 fix(ci): rustfmt import order and gate Upstream import for Windows Razvan Dimescu 2026-04-15 04:11:27 +03:00
  • 9a0d586b13 feat: accept array of upstreams in [[forwarding]] Razvan Dimescu 2026-04-15 04:03:38 +03:00
  • 4bd08e206d feat(dashboard): hide zero-count path and transport rows #103 Razvan Dimescu 2026-04-14 21:25:11 +03:00
  • ebb2a5db39 refactor: simplify upstream-path test — reuse pool mutex, drop narrating comment Razvan Dimescu 2026-04-14 18:26:45 +03:00
  • e0e0f50838 feat: distinguish UPSTREAM vs FORWARD in logs and stats Razvan Dimescu 2026-04-14 18:18:32 +03:00
  • 120ba5200e chore: bump version to 0.13.1 v0.13.1 Razvan Dimescu 2026-04-14 13:31:35 +03:00
  • 45046bcf6e Merge pull request #101 from razvandimescu/fix/forward-tls-upstream Razvan Dimescu 2026-04-14 13:09:58 +03:00
  • b4b939c78b fix: accept tls:// and https:// in [[forwarding]] upstreams #101 Razvan Dimescu 2026-04-14 09:22:24 +03:00
  • 9a85e271ec Merge pull request #99 from razvandimescu/fix/aur-llvm-libs Razvan Dimescu 2026-04-13 17:09:08 +03:00
  • 7dc1a0686f fix: add llvm-libs to AUR makedepends #99 Razvan Dimescu 2026-04-13 15:58:52 +03:00
  • a02722cdf9 Merge pull request #98 from razvandimescu/docker-support Razvan Dimescu 2026-04-13 15:53:56 +03:00
  • 3b77dcff61 feat: Docker support — multi-arch GHCR images on release #98 Razvan Dimescu 2026-04-13 15:48:29 +03:00
  • 7cc110a0a1 ci: skip CI and AUR builds for blog/site-only changes Razvan Dimescu 2026-04-13 15:02:19 +03:00
  • 75fe625f39 blog: drop redundant Numa intro from opening paragraph Razvan Dimescu 2026-04-13 14:48:34 +03:00
  • 908d076d9b blog: pain-first opening, I-voice, forward-looking close Razvan Dimescu 2026-04-13 14:37:24 +03:00
  • 5381e65be4 Merge pull request #96 from razvandimescu/blog/fixing-doh-tail-latency Razvan Dimescu 2026-04-13 14:08:40 +03:00
  • 6b0a30d004 blog: add fixing DoH tail latency post + blog infrastructure #96 Razvan Dimescu 2026-04-13 13:49:40 +03:00
  • 169679bfe4 Merge pull request #95 from razvandimescu/fix/forwarding-precedes-special-use Razvan Dimescu 2026-04-13 09:37:19 +03:00
  • d3f046da4c style: assert loopback addr in subdomain test, trim verbose comment #95 Razvan Dimescu 2026-04-13 08:10:26 +03:00
  • 0bdde40f40 test: verify forwarded response content from mock upstream Razvan Dimescu 2026-04-13 08:07:58 +03:00
  • 155c1c4da0 test: full-pipeline coverage for every resolve_query step Razvan Dimescu 2026-04-13 08:04:59 +03:00
  • b40004fe5e refactor: extract shared test infrastructure into testutil module Razvan Dimescu 2026-04-13 07:56:47 +03:00
  • b8ddc16027 refactor: return QueryPath from resolve_query, add mock upstream to tests Razvan Dimescu 2026-04-13 07:51:14 +03:00
  • 48f67be2f1 refactor: deduplicate test_ctx by delegating to test_ctx_with_forwarding Razvan Dimescu 2026-04-13 07:39:55 +03:00
  • ca00846393 fix: forwarding rules override special-use NXDOMAIN for private PTR zones Razvan Dimescu 2026-04-13 07:36:53 +03:00
  • 4d4e48bbd6 chore: bump version to 0.13.0 v0.13.0 Razvan Dimescu 2026-04-13 01:05:20 +03:00
  • 724c4a6017 Merge pull request #91 from razvandimescu/docs/readme-update Razvan Dimescu 2026-04-13 01:03:16 +03:00
  • 2b29a44ee0 docs: remove unfair NextDNS comparison from performance section #91 Razvan Dimescu 2026-04-13 01:02:10 +03:00
  • 588e5226fd Merge pull request #92 from razvandimescu/bench/vs-adguard Razvan Dimescu 2026-04-13 01:00:20 +03:00
  • 501902d569 bench: add --vs-adguard mode for Numa vs AdGuard Home comparison #92 Razvan Dimescu 2026-04-13 00:56:58 +03:00
  • 77d2c8bbcd docs: update README comparison table, performance, and roadmap Razvan Dimescu 2026-04-13 00:18:52 +03:00
  • 274338e7f9 Merge pull request #88 from razvandimescu/fix/doh-loopback-san Razvan Dimescu 2026-04-13 00:03:30 +03:00
  • 305935ed98 style: rustfmt strip_port #88 Razvan Dimescu 2026-04-12 23:59:51 +03:00
  • bd505813b6 test: verify TLS cert SANs (wildcard, services, loopback, localhost, bare TLD) Razvan Dimescu 2026-04-12 23:42:45 +03:00
  • 115a55b199 fix: bracketed IPv6, localhost SAN, split host-check helpers Razvan Dimescu 2026-04-12 22:26:44 +03:00
  • 3665deb56b fix: accept loopback addresses for DoH and add IP SANs to TLS cert Razvan Dimescu 2026-04-12 17:56:39 +03:00
  • c074d728e9 Merge pull request #90 from razvandimescu/feat/wire-forwarding-hedging Razvan Dimescu 2026-04-12 23:38:57 +03:00
  • 2101dfcf17 feat: transport protocol tracking (UDP/TCP/DoT/DoH) with dashboard visualization #90 Razvan Dimescu 2026-04-12 22:14:26 +03:00
  • 27dc53aebb Merge pull request #85 from razvandimescu/feat/wire-forwarding-hedging Razvan Dimescu 2026-04-12 22:02:45 +03:00
  • 8085c10687 docs: document hedge_ms, tls:// upstream, update max_entries default in numa.toml #85 Razvan Dimescu 2026-04-12 21:37:59 +03:00
  • 02e1449a45 feat: enable request hedging for all upstream protocols Razvan Dimescu 2026-04-12 21:34:47 +03:00
  • 50828c411a fix: cold benchmark uses 1 round per domain for genuine cold measurements Razvan Dimescu 2026-04-12 20:54:27 +03:00
  • 5184891985 fix: cold benchmark cache-busting with PID prefix and flush Razvan Dimescu 2026-04-12 20:43:46 +03:00
  • 6d9ee14ea6 refactor: unify warm_stale/warm_domain, remove raw_wire alloc, add Freshness enum Razvan Dimescu 2026-04-12 19:56:42 +03:00
  • 3c49b0e65d fix: deduplicate background refresh with per-domain guard Razvan Dimescu 2026-04-12 19:49:23 +03:00
  • 8ef95383a2 feat: prefetch at <10% TTL remaining, add stale behavior tests Razvan Dimescu 2026-04-12 19:46:14 +03:00
  • 571ce2f013 feat: background refresh on stale cache hit (RFC 8767 revalidation) Razvan Dimescu 2026-04-12 19:42:56 +03:00
  • 043a7e1ba5 feat: raise cache default to 100K entries, evict stalest instead of dropping Razvan Dimescu 2026-04-12 19:23:28 +03:00
  • 05d5a5145f refactor: remove unused extract_question and read_wire_qname from wire.rs Razvan Dimescu 2026-04-12 18:46:03 +03:00
  • 15058aea83 bench: add --vs-nextdns, --vs-unbound-cold modes with mode validation Razvan Dimescu 2026-04-12 18:35:40 +03:00
  • 628ed00074 refactor: extract cache_and_parse, remove dead truncation log, restore TCP_TIMEOUT to 400ms Razvan Dimescu 2026-04-12 13:08:37 +03:00
  • 85cff052a4 fix: restore TCP_TIMEOUT to 400ms (test race was the real issue) Razvan Dimescu 2026-04-12 12:34:20 +03:00
  • 67b472fea7 fix: serialize tests that share global UDP_DISABLED state Razvan Dimescu 2026-04-12 11:47:48 +03:00
  • 700cca9cb6 style: rustfmt warm_domain Razvan Dimescu 2026-04-12 11:09:20 +03:00
  • f705f8c49f fix: bump TCP_TIMEOUT to 800ms to fix flaky CI test Razvan Dimescu 2026-04-12 06:45:10 +03:00
  • 17a1a6ddba refactor: remove forward_with_failover duplication, fix warm-branch hedge bug Razvan Dimescu 2026-04-12 06:42:59 +03:00
  • 72b540a44a feat: wire-level cache, serve-stale, raw wire passthrough Razvan Dimescu 2026-04-12 06:27:38 +03:00
  • c1b651aa63 chore: remove obsolete bash benchmark script Razvan Dimescu 2026-04-12 06:25:42 +03:00
  • 5d9a3a809b feat: DoT client, recursive optimization, bench refactor Razvan Dimescu 2026-04-12 06:22:42 +03:00
  • 7efac85836 feat: wire-level forwarding, cache, request hedging, and DoH keepalive Razvan Dimescu 2026-04-12 04:20:18 +03:00
  • 4f46550283 Merge pull request #89 from razvandimescu/feat/dot-client Razvan Dimescu 2026-04-12 18:39:17 +03:00
  • 05baad0cc0 feat: DoT (DNS over TLS) client upstream #89 Razvan Dimescu 2026-04-12 18:35:06 +03:00
  • 7047767dc2 feat: per-suffix conditional forwarding rules (#82) (#84) Razvan Dimescu 2026-04-12 06:12:08 +03:00
  • 22bebb85a0 fix: config path advisory ignores XDG file on interactive root (#81) (#83) Razvan Dimescu 2026-04-12 02:17:33 +03:00
  • 289f2b973b chore: remove built blog HTML from tracking (built by CI) Razvan Dimescu 2026-04-11 14:10:13 +03:00
  • fb4cbe0b2a chore: update DoT blog post — mark DoH server as shipped in v0.12.0 Razvan Dimescu 2026-04-11 14:08:09 +03:00
  • 2de1bc2efc chore: bump version to 0.12.0 v0.12.0 Razvan Dimescu 2026-04-11 12:15:40 +03:00
  • 156b68de87 fix: replace unscannable QR art with placeholder in blog post (#80) Razvan Dimescu 2026-04-11 04:17:46 +03:00
  • 7d6b0ed568 feat: DoH server endpoint + DoT enabled by default (#79) Razvan Dimescu 2026-04-11 04:06:17 +03:00
  • 7770129589 feat: cache warming — proactive DNS resolution for configured domains (#78) Razvan Dimescu 2026-04-11 01:14:04 +03:00
  • 8abcd91f95 feat: multi-forwarder with SRTT-based failover (#77) Razvan Dimescu 2026-04-11 00:26:58 +03:00
  • a96b84fdeb ci: use pandoc/actions/setup instead of apt-get (#76) Razvan Dimescu 2026-04-10 23:16:59 +03:00
  • 23ff3ce455 chore: blog full QR output + dashboard screenshot, hero script phone setup scene (#75) Razvan Dimescu 2026-04-10 22:34:41 +03:00
  • 2c20c56421 feat: mobile setup — QR onboarding, Wi-Fi scoped mobileconfig (#73) Razvan Dimescu 2026-04-10 22:21:51 +03:00
  • 921ed68d54 fix: allowlist parent domain unblocks subdomains (#74) Razvan Dimescu 2026-04-10 21:43:40 +03:00
  • c3138990a8 refactor: extract normalize() for domain lowering + dot stripping #74 fix/allowlist-parent-unblocks Razvan Dimescu 2026-04-10 21:37:24 +03:00
  • e5c6caba1f style: rustfmt add_to_allowlist Razvan Dimescu 2026-04-10 21:33:38 +03:00
  • ec44829c30 perf: zero-alloc is_blocked hot path, normalize trailing dots Razvan Dimescu 2026-04-10 21:33:26 +03:00
  • c452f99a45 style: rustfmt blocklist tests Razvan Dimescu 2026-04-10 21:15:24 +03:00
  • d66a88f467 fix: allowlist parent domain unblocks subdomains in blocklist Razvan Dimescu 2026-04-10 21:15:15 +03:00
  • 8da03b1b8c chore: GoatCounter analytics, README v0.11.0, DoT blog post (#72) Razvan Dimescu 2026-04-10 19:23:11 +03:00
  • 652fca5b80 chore: bump version to 0.11.0 v0.11.0 Razvan Dimescu 2026-04-10 19:10:58 +03:00
  • de15b32325 feat: numa setup-phone — QR-based mobile DoT onboarding (#38) Razvan Dimescu 2026-04-10 19:08:56 +03:00
  • 6f961c5ec2 fix: push only specific tag when releaseing a new version Razvan Dimescu 2026-04-10 09:03:03 +03:00
  • 20bf14e91c chore: bump version to 0.10.3 v0.10.3 Razvan Dimescu 2026-04-10 08:59:46 +03:00
  • e860731c01 fix: escape DNS label text per RFC 1035 §5.1 (closes #36) (#54) Razvan Dimescu 2026-04-10 08:53:46 +03:00
  • f556b60ce4 fix: suppress recursive hint in install when already configured (#71) Razvan Dimescu 2026-04-10 08:32:51 +03:00
  • 422726f1c8 chore(deps): bump rcgen from 0.13 to 0.14 (#70) Razvan Dimescu 2026-04-10 08:28:07 +03:00
  • dd021d8642 chore(deps)(deps): bump socket2 from 0.5.10 to 0.6.3 (#67) dependabot[bot] 2026-04-10 07:58:07 +03:00