-
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