• v0.0.10
    Release / guard (push) Successful in 38s
    Gates / frontend (push) Successful in 1m40s
    Gates / test (push) Successful in 2m29s
    Gates / test-aarch64 (push) Successful in 7m53s
    Gates / package (push) Successful in 4m17s
    Gates / container (push) Successful in 15s
    Release / gates (push) Successful in 14m58s
    Release / publish (push) Failing after 6m21s
    Stable

    mokhtar released this 2026-08-30 09:15:42 +00:00 | 43 commits to master since this release

    Configuration goes live: when the database owns the configuration, saving a setting reconfigures the running process instead of asking for a restart. The restart-required set shrinks to the listen sockets and the admin interface switch.

    Changed

    • Almost every settings change now applies while the server runs. When the database owns the configuration, saving a setting takes effect immediately — the blocking response, upstream timeouts, cache size, rate limits, session lifetime, log level and destination, blocklist update schedule, privacy flags, disk thresholds and the query-log buffer all reconfigure the running process, exactly as Pi-hole and AdGuard Home do. Nothing is written to the database unless the running server already accepted it, so the API can never report a value the process refused. The restart-required set shrinks from every scalar key to the twelve that genuinely need one: listen addresses and ports, and turning the admin interface itself on or off. The admin pages drop their restart notices for everything else, and an upstream edit — the loudest offender — now applies to the next query. A configuration file still works the way it always has: edit the file, restart the process.
    • The release cut refuses to ship an undisclosed query-log schema change. zig build cut now compares the querylog.db schema fingerprint of the previous release tag against this tree's, and when they differ it requires the changelog section for the version being cut to state that the upgrade discards the stored query history. 0.0.9 changed the schema and its announcement did not mention it; the file is never migrated, so that upgrade silently threw every logged query away.

    Artifacts

    b206d7af478ad4e2329c58673e4d3eb59b97451b81a673c625f6b323451006be  nxdns-0.0.10-x86_64-linux-musl.tar.gz
    097ad1c7a486afdf6857b8f79e2e6e46e07f3195c2e18795234054bc5d594731  nxdns-0.0.10-aarch64-linux-musl.tar.gz
    c05828c26c0fd2ed90bb4770a8bef632a9c75e8cbeb335b9e14ba512eba5f0a1  IMAGE-DIGEST.txt
    
    git.mial.net/mokhtar/nxdns:0.0.10@sha256:15d120f48e4a856f62a7a7235d9365f38de144474be59df8b2e5620fdd3f3327
    

    Compare v0.0.8...v0.0.10

    Commits since v0.0.8
    091962a build: bump version to 0.0.10
    4fcbd0a changelog: 0.0.10
    d961b15 db-mode config changes apply live in-process
    17e6e93 admin: only the content region scrolls on wide screens
    8a44d90 cut: schema gate — refuse to release an undisclosed querylog schema change
    03149b5 ci: drop the one-insn-per-tb workaround, the qemu panic is an 11.1.0-only regression
    a972c8d logger tests: join every writer future before its database closes, fix the gate-open race
    78d688a ci: run the aarch64 suite with one qemu insn per tb, tcg optimization falsely trips the ubsan pointer check
    fe5bd96 admin: live ring capacity is injectable, eviction test no longer timing-bound
    1f215ac build: bump version to 0.0.9
    2f86cd7 changelog: 0.0.9 releases today
    51cda8b milestone 33: contract closure — samples, file-authority enumeration, dead code, bundle ceiling
    e5f23d5 querylog: return to the default checkpoint cadence
    24521ab milestone 32: task-shaped configuration, file mode as a rendering, config status api
    c99a37d milestone 31: concurrent upstream exchanges, dot session reuse, queue metrics
    623667e milestone 30: overview as a dashboard, explicit health contract, period aggregations
    0e83477 agents: move opus-coder to the global scope
    fa323c7 milestone 29: activity — history, live and policy simulation on one surface
    0fd6bbd milestone 28: query provenance — every logged query is exactly explainable
    7e6cb50 release cut: bump-kind justfile recipe and a compiled, tested cut tool
    8a17e9e admin: fix dashboard phantom scroll, drop last-failure column from upstream table
    0107df5 spec: measurement window is the deployment side's call
    
    Downloads