mokhtar
08d756cc87
build: bump version to 0.0.10
Gates / frontend (push) Successful in 2m1s
Gates / test (push) Successful in 3m6s
Gates / test-aarch64 (push) Successful in 9m28s
Gates / package (push) Successful in 9m12s
Gates / container (push) Successful in 14s
CI / gates (push) Successful in 22m4s
Release / guard (push) Successful in 1m32s
Gates / frontend (push) Successful in 1m28s
Gates / test (push) Successful in 1m53s
Gates / package (push) Successful in 23s
Gates / container (push) Successful in 17s
Release / gates (push) Successful in 9m33s
Gates / test-aarch64 (push) Successful in 6m58s
Release / publish (push) Successful in 10m46s
v0.0.10
2026-08-24 00:05:33 +02:00
mokhtar
44ecc2c4ae
changelog: 0.0.10
Gates / frontend (push) Successful in 1m31s
Gates / test (push) Successful in 1m53s
Gates / test-aarch64 (push) Successful in 7m2s
Gates / package (push) Successful in 5m44s
Gates / container (push) Successful in 9s
CI / gates (push) Successful in 48m46s
2026-08-24 00:05:21 +02:00
mokhtar
ce143d1d87
db-mode config changes apply live in-process
...
Gates / frontend (push) Successful in 1m43s
Gates / test (push) Successful in 2m14s
Gates / test-aarch64 (push) Successful in 8m3s
Gates / package (push) Successful in 5m42s
Gates / container (push) Successful in 54s
CI / gates (push) Successful in 50m24s
settings and upstream writes now follow a prepare, commit, publish, retire
contract: candidates are built and validated before the database transaction,
published as infallible pointer swaps, and old generations retire after their
readers drain. per-query policy values snapshot once per query; upstream pool,
cache, rate limiter, sessions, api limiter, log sink, blocklist scheduler and
the query-log queue each gained one named live operation. restart_required
shrinks from every scalar key to the bind keys and web.enabled; the admin ui
drops its restart notices for everything else. file mode is unchanged.
2026-08-24 00:04:28 +02:00
mokhtar
f7f4c8be09
admin: only the content region scrolls on wide screens
...
the shell grid grew past the viewport and scrolled the document,
carrying the sidebar with it. the shell is now viewport-height at the
wide breakpoint with main as the sole scroll container; the nav list
scrolls inside the pinned rail; router scroll restoration targets the
inner scroller so navigation resets it and back/forward restores it.
2026-08-23 15:17:51 +02:00
mokhtar
fe71efe335
cut: schema gate — refuse to release an undisclosed querylog schema change
...
the gate recomputes the previous release tag's ddl fingerprint from the
remote peeled object and compares it against the tree's; a change must
be disclosed by 'resets your query history' in the version's changelog
section. the 0.0.9 reset shipped with an announcement claiming no
schema change; this makes the impact mechanical instead of remembered.
2026-08-23 15:07:27 +02:00
mokhtar
a8fd9fee48
ci: drop the one-insn-per-tb workaround, the qemu panic is an 11.1.0-only regression
...
Gates / frontend (push) Successful in 1m33s
Gates / test-aarch64 (push) Successful in 7m18s
Gates / container (push) Successful in 18s
CI / gates (push) Successful in 13m41s
Gates / test (push) Successful in 1m47s
Gates / package (push) Successful in 4m12s
Gates / package (push) Successful in 38s
Release / guard (push) Successful in 20s
Gates / frontend (push) Successful in 1m27s
Gates / test (push) Successful in 1m43s
Gates / test-aarch64 (push) Successful in 7m1s
Gates / container (push) Successful in 9s
Release / gates (push) Successful in 9m33s
Release / publish (push) Successful in 4m43s
the bisect proved the runner image's qemu 8.2 was never affected; the
hangs this masked were the logger deadlock fixed in f1a85d3 . the 10x
slowdown it cost also broke the full-batch flush timing test in run 592.
v0.0.9
2026-08-23 13:55:22 +02:00
mokhtar
f1a85d3dab
logger tests: join every writer future before its database closes, fix the gate-open race
Gates / test (push) Successful in 1m50s
Gates / package (push) Successful in 4m6s
Gates / frontend (push) Successful in 1m49s
Gates / test-aarch64 (push) Failing after 1h13m21s
Gates / container (push) Successful in 10s
CI / gates (push) Failing after 1h23m35s
2026-08-23 12:26:09 +02:00
mokhtar
72dbcbe24f
ci: run the aarch64 suite with one qemu insn per tb, tcg optimization falsely trips the ubsan pointer check
2026-08-23 12:26:05 +02:00
mokhtar
c5875af8c8
admin: live ring capacity is injectable, eviction test no longer timing-bound
Gates / test-aarch64 (push) Failing after 3h1m47s
Gates / package (push) Successful in 4m17s
Gates / container (push) Successful in 15s
CI / gates (push) Failing after 4h45m14s
Gates / frontend (push) Successful in 1m21s
Gates / test (push) Successful in 1m42s
2026-08-23 09:04:18 +02:00
mokhtar
409384ee9e
build: bump version to 0.0.9
Gates / container (push) Successful in 15s
CI / gates (push) Failing after 6h11m8s
Gates / frontend (push) Successful in 1m26s
Gates / test (push) Successful in 1m45s
Gates / package (push) Successful in 34s
Gates / test-aarch64 (push) Failing after 3h6m37s
2026-08-22 23:32:47 +02:00
mokhtar
9eb78f6171
changelog: 0.0.9 releases today
Gates / frontend (push) Successful in 1m29s
Gates / test (push) Successful in 1m53s
Gates / test-aarch64 (push) Successful in 7m38s
Gates / package (push) Successful in 3m49s
Gates / container (push) Successful in 10s
CI / gates (push) Successful in 6h29m21s
2026-08-22 23:32:36 +02:00
mokhtar
cc23c97218
milestone 33: contract closure — samples, file-authority enumeration, dead code, bundle ceiling
Gates / frontend (push) Successful in 1m34s
Gates / test (push) Successful in 2m3s
Gates / test-aarch64 (push) Failing after 3h13m33s
Gates / package (push) Successful in 5m20s
Gates / container (push) Successful in 15s
CI / gates (push) Failing after 6h30m45s
2026-08-22 23:31:37 +02:00
mokhtar
5da4652e89
querylog: return to the default checkpoint cadence
2026-08-22 23:10:17 +02:00
mokhtar
7e0df5fd94
milestone 32: task-shaped configuration, file mode as a rendering, config status api
Gates / frontend (push) Successful in 1m22s
Gates / test (push) Successful in 1m54s
Gates / test-aarch64 (push) Successful in 7m57s
Gates / package (push) Successful in 5m29s
Gates / container (push) Successful in 10s
CI / gates (push) Successful in 32m51s
2026-08-22 22:42:50 +02:00
mokhtar
025edbb093
milestone 31: concurrent upstream exchanges, dot session reuse, queue metrics
Gates / frontend (push) Successful in 1m26s
Gates / test (push) Successful in 1m55s
Gates / test-aarch64 (push) Failing after 3h1m8s
Gates / package (push) Successful in 3m55s
Gates / container (push) Successful in 15s
CI / gates (push) Failing after 3h21m29s
2026-08-22 19:54:02 +02:00
mokhtar
648d9b4496
milestone 30: overview as a dashboard, explicit health contract, period aggregations
Gates / frontend (push) Successful in 1m32s
Gates / test (push) Successful in 1m54s
Gates / package (push) Successful in 5m28s
Gates / container (push) Successful in 14s
Gates / test-aarch64 (push) Failing after 3h10m0s
CI / gates (push) Failing after 3h11m55s
2026-08-22 16:45:15 +02:00
mokhtar and Claude Fable 5
17422fac21
agents: move opus-coder to the global scope
...
The routing rule is global, so the agent it names lives next to it now
(~/.claude/agents/opus-coder.md), at medium effort and without the
milestone-spec wording that only fit this repository.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-22 10:53:19 +02:00
mokhtar
fa323c7ed4
milestone 29: activity — history, live and policy simulation on one surface
...
Gates / test (push) Successful in 1m40s
Gates / package (push) Successful in 3m58s
Gates / container (push) Successful in 14s
CI / gates (push) Successful in 12m51s
Gates / frontend (push) Successful in 1m18s
Gates / test-aarch64 (push) Successful in 6m57s
query log, live and lookup merge into /activity. history filters live
in the url, so a pasted link or back/forward reproduces the exact
view; the result column separates servfail and nxdomain from success
in the list. live is follow-by-default with freeze, and a streamed
row opens its in-memory provenance detail — no correlation invented
for rows sqlite has not written. lookup survives as the current
policy simulation under /activity/test. investigation links carry
absolute bounds, and the diagnostics page now honors since/until
instead of ignoring them. the old routes are gone without aliases.
2026-08-22 10:52:56 +02:00
mokhtar
0fd6bbd312
milestone 28: query provenance — every logged query is exactly explainable
...
Gates / frontend (push) Successful in 1m36s
Gates / test (push) Successful in 1m56s
Gates / test-aarch64 (push) Successful in 7m37s
Gates / package (push) Successful in 9m12s
Gates / container (push) Successful in 13s
CI / gates (push) Successful in 19m4s
query rows gain qclass, rcode, group, policy action and reason, the
matched rule or list entry with its source, cname and safe-search
targets, route kind, forward zone, and the resolver that actually
answered — the pool and local markers die. servfails are logged and
name the resolver that lost; post-parse protocol refusals become rows.
a detail page at /queries/:id renders the ordered explanation, and
coverage watermarks distinguish an empty history from a missing one.
the schema fingerprint changes: existing query history is recreated
with the old file kept aside and the reset filed as a resolved
diagnostic. fixes an oversized udp reply being rebuilt as noerror,
which handed clients a truncated nxdomain as success.
2026-08-22 09:16:40 +02:00
mokhtar
7e6cb507d2
release cut: bump-kind justfile recipe and a compiled, tested cut tool
Gates / frontend (push) Successful in 1m11s
Gates / test (push) Successful in 1m38s
Gates / test-aarch64 (push) Successful in 6m31s
Gates / container (push) Successful in 9s
CI / gates (push) Successful in 26m52s
Gates / package (push) Successful in 5m27s
2026-08-21 23:34:13 +02:00
mokhtar
8a17e9ed21
admin: fix dashboard phantom scroll, drop last-failure column from upstream table
...
Gates / frontend (push) Successful in 1m11s
Gates / test (push) Successful in 1m40s
Gates / test-aarch64 (push) Successful in 6m38s
Gates / package (push) Successful in 5m42s
Gates / container (push) Successful in 17s
CI / gates (push) Successful in 27m54s
the chart's screen-reader table wore srOnly directly; overflow and
height do not apply to a table box, so it laid out 1200px tall below
the page while clip-path hid the paint. wrap it in a hidden div, which
clips properly and keeps the table role. failure detail is the
diagnostics page's job since milestone 27; the column and the now
dead formatAge go.
2026-08-21 23:33:32 +02:00
mokhtar
0107df5f99
spec: measurement window is the deployment side's call
Gates / frontend (push) Successful in 1m13s
Gates / test (push) Successful in 1m37s
Gates / test-aarch64 (push) Successful in 6m35s
Gates / package (push) Successful in 5m40s
Gates / container (push) Successful in 9s
CI / gates (push) Successful in 22m27s
2026-08-21 18:49:05 +02:00
mokhtar
b6cea3f539
build: bump version to 0.0.8
Gates / frontend (push) Successful in 1m34s
Gates / test (push) Successful in 1m53s
Gates / test-aarch64 (push) Successful in 6m34s
Gates / package (push) Successful in 43s
Gates / test-aarch64 (push) Successful in 7m23s
Gates / package (push) Successful in 4m11s
Gates / container (push) Successful in 18s
CI / gates (push) Successful in 27m37s
Release / guard (push) Successful in 18s
Gates / frontend (push) Successful in 1m9s
Gates / test (push) Successful in 1m36s
Gates / container (push) Successful in 10s
Release / gates (push) Successful in 9m6s
Release / publish (push) Successful in 4m33s
v0.0.8
2026-08-21 18:43:49 +02:00
mokhtar
9b0b7c19f4
querylog: checkpoint every 8192 wal pages instead of 1000
2026-08-21 18:43:45 +02:00
mokhtar
324704b53f
build: bump version to 0.0.7
Gates / package (push) Successful in 41s
Gates / test (push) Successful in 1m35s
Gates / test-aarch64 (push) Successful in 6m48s
Gates / frontend (push) Successful in 1m22s
Gates / container (push) Successful in 9s
CI / gates (push) Successful in 23m18s
Gates / frontend (push) Successful in 1m8s
Gates / package (push) Successful in 40s
Release / guard (push) Successful in 17s
Gates / test (push) Successful in 1m35s
Gates / test-aarch64 (push) Successful in 6m55s
Gates / container (push) Successful in 9s
Release / gates (push) Successful in 9m23s
Release / publish (push) Successful in 4m26s
v0.0.7
2026-08-20 22:34:13 +02:00
mokhtar
addf24f92c
query log batching: one transaction per flush interval, not per query
Gates / frontend (push) Successful in 1m18s
Gates / test (push) Successful in 2m46s
Gates / test-aarch64 (push) Successful in 7m33s
Gates / package (push) Successful in 5m34s
Gates / container (push) Successful in 17s
CI / gates (push) Successful in 16m16s
Gates / frontend (push) Successful in 1m8s
Gates / container (push) Successful in 9s
Release / gates (push) Successful in 9m15s
Release / guard (push) Successful in 19s
Gates / test (push) Successful in 1m34s
Gates / test-aarch64 (push) Successful in 6m46s
Gates / package (push) Successful in 39s
Release / publish (push) Failing after 4m7s
2026-08-20 20:57:11 +02:00
mokhtar
037f209179
milestone 27: diagnostics — operational failures land in one curated log, resolved history purgeable
Gates / frontend (push) Successful in 1m33s
Gates / test (push) Successful in 1m48s
Gates / test-aarch64 (push) Successful in 7m10s
Gates / package (push) Successful in 5m31s
Gates / container (push) Successful in 15s
CI / gates (push) Successful in 14m51s
2026-08-20 20:05:59 +02:00
mokhtar
3dd8214ef2
dashboard: a success rate never rounds up to 100.0% while failures stand
Gates / frontend (push) Successful in 1m27s
Gates / test (push) Successful in 1m53s
Gates / test-aarch64 (push) Successful in 7m7s
Gates / package (push) Successful in 3m57s
Gates / container (push) Successful in 15s
CI / gates (push) Successful in 13m15s
2026-08-19 17:54:02 +02:00
mokhtar
64c0d723a6
querylog: the aside file's name says why, so a schema change is not called corrupt
2026-08-17 20:24:21 +02:00
mokhtar
377f00a35f
changelog: 0.0.6 releases today
Release / guard (push) Successful in 22s
Gates / frontend (push) Successful in 1m30s
Gates / test (push) Successful in 1m50s
Gates / frontend (push) Successful in 1m9s
Gates / test-aarch64 (push) Successful in 6m55s
Gates / test (push) Successful in 1m34s
Gates / test-aarch64 (push) Successful in 6m9s
Gates / package (push) Successful in 3m49s
Gates / package (push) Successful in 32s
Gates / container (push) Successful in 15s
CI / gates (push) Successful in 21m28s
Gates / container (push) Successful in 9s
Release / gates (push) Successful in 20m7s
Release / publish (push) Successful in 4m26s
v0.0.6
2026-08-17 18:22:54 +02:00
mokhtar
e0a7cd8a6b
milestone 26: upstream health answers for the selected period
2026-08-17 18:21:56 +02:00
mokhtar
3ed9a57822
changelog: 0.0.5 releases today
Gates / test (push) Successful in 1m44s
Gates / frontend (push) Successful in 1m2s
Gates / test-aarch64 (push) Successful in 5m55s
Gates / package (push) Successful in 28s
Gates / container (push) Successful in 16s
CI / gates (push) Successful in 20m25s
Release / guard (push) Successful in 18s
Gates / frontend (push) Successful in 1m5s
Gates / test-aarch64 (push) Successful in 6m33s
Gates / test (push) Successful in 1m31s
Gates / package (push) Successful in 3m41s
Gates / container (push) Successful in 9s
Release / gates (push) Successful in 19m27s
Release / publish (push) Successful in 5m43s
v0.0.5
2026-08-16 23:55:19 +02:00
mokhtar
0601098ab0
admin: drop the learned tag from the query tables
2026-08-16 23:55:10 +02:00
mokhtar
49c7da2381
changelog: 0.0.4 releases today
Release / guard (push) Successful in 26s
Gates / frontend (push) Successful in 1m26s
Gates / test (push) Successful in 1m44s
Gates / frontend (push) Successful in 1m6s
Gates / test-aarch64 (push) Successful in 6m36s
Gates / test (push) Successful in 1m33s
Gates / test-aarch64 (push) Successful in 5m50s
Gates / package (push) Successful in 5m5s
Gates / package (push) Successful in 30s
Gates / container (push) Successful in 15s
CI / gates (push) Successful in 21m58s
Gates / container (push) Successful in 10s
Release / gates (push) Successful in 20m42s
Release / publish (push) Successful in 4m41s
v0.0.4
2026-08-16 23:00:41 +02:00
mokhtar
794ea6541f
admin: live and query log pages show client names
2026-08-16 23:00:31 +02:00
mokhtar
ba037c5958
website: plan for the nxdns.sh marketing and docs site
Gates / frontend (push) Successful in 1m8s
Gates / test (push) Successful in 2m5s
Gates / test-aarch64 (push) Successful in 7m1s
Gates / package (push) Successful in 4m3s
Gates / container (push) Successful in 15s
CI / gates (push) Successful in 13m28s
2026-08-16 00:17:58 +02:00
mokhtar
1e97c80f6b
rename web/ to admin/, along with the web-named build and cli identifiers
2026-08-16 00:17:58 +02:00
mokhtar
5b3d1cd65c
docs: unwrap hand-wrapped prose repo-wide
Gates / frontend (push) Successful in 1m2s
Gates / test (push) Successful in 1m38s
Gates / package (push) Successful in 5m5s
Gates / test-aarch64 (push) Successful in 6m30s
Gates / container (push) Successful in 15s
CI / gates (push) Successful in 13m30s
2026-08-15 16:27:36 +02:00
mokhtar
50b8fd5c61
changelog: unwrap hand-wrapped lines, release bodies render newlines as breaks
Gates / frontend (push) Successful in 1m2s
Gates / test (push) Successful in 1m31s
Gates / package (push) Successful in 3m36s
Gates / container (push) Successful in 15s
CI / gates (push) Successful in 11m21s
Gates / test-aarch64 (push) Successful in 5m54s
2026-08-15 13:06:44 +02:00
mokhtar
efbe355070
changelog: 0.0.3 releases today
Gates / frontend (push) Successful in 1m3s
Gates / test (push) Successful in 1m39s
Gates / test-aarch64 (push) Successful in 6m28s
Gates / container (push) Successful in 18s
Release / guard (push) Successful in 1m30s
Gates / test-aarch64 (push) Successful in 5m45s
Gates / package (push) Successful in 24s
Release / gates (push) Successful in 7m54s
Gates / package (push) Successful in 5m34s
CI / gates (push) Successful in 14m5s
Gates / frontend (push) Successful in 58s
Gates / test (push) Successful in 1m29s
Gates / container (push) Successful in 10s
Release / publish (push) Successful in 9m12s
v0.0.3
2026-08-15 12:24:05 +02:00
mokhtar
fc60214b3e
ci: the container gate and the version parse move into a compiled tool
2026-08-15 12:24:05 +02:00
mokhtar
3c794b645b
milestone 25: client names learned over reverse dns
Gates / test (push) Successful in 2m58s
Gates / frontend (push) Successful in 3m57s
Gates / test-aarch64 (push) Successful in 8m20s
Gates / package (push) Successful in 7m27s
Gates / container (push) Successful in 17s
CI / gates (push) Successful in 19m9s
2026-08-15 11:18:44 +02:00
mokhtar
c428bc2398
ci: allow dispatching the gate set, a replaced runner pod kills the job it holds
Gates / frontend (push) Successful in 1m18s
Gates / test (push) Successful in 2m27s
Gates / test-aarch64 (push) Successful in 5m39s
Gates / package (push) Successful in 3m34s
Gates / container (push) Successful in 13s
CI / gates (push) Successful in 11m57s
Release / guard (push) Successful in 1m30s
Gates / frontend (push) Successful in 1m6s
Gates / test (push) Successful in 1m28s
Gates / test-aarch64 (push) Successful in 5m41s
Gates / package (push) Successful in 28s
Gates / container (push) Successful in 16s
Release / gates (push) Successful in 7m55s
Release / publish (push) Successful in 10m37s
v0.0.2
2026-08-14 02:34:06 +02:00
mokhtar
c7c1e21267
changelog: 0.0.2 releases today
Gates / frontend (push) Successful in 1m9s
Gates / test (push) Failing after 12m32s
Gates / test-aarch64 (push) Successful in 9m14s
Gates / package (push) Successful in 7m27s
Gates / container (push) Successful in 18s
CI / gates (push) Failing after 22m41s
2026-08-14 02:10:45 +02:00
mokhtar
21c5ce1f36
filter: separate the compiled bodies in the checksum, a name moving between them was invisible
2026-08-14 02:09:25 +02:00
mokhtar
1bce81eea0
milestone 24: persist and surface the unsupported-line count
2026-08-13 20:44:27 +02:00
mokhtar
21571e448e
schema: collapse config.db to a single baseline, ddl_v1 stays editable until v0.1
2026-08-13 19:14:54 +02:00
mokhtar
2ab7c1f1de
milestone 21: abp list exceptions and a regex rule kind
2026-08-13 19:14:47 +02:00
mokhtar
b340521716
web tests: raise the async query budget, ci contention timed out a suspended page
Gates / test (push) Successful in 1m35s
Gates / test-aarch64 (push) Successful in 6m0s
Gates / frontend (push) Successful in 1m12s
Gates / package (push) Successful in 5m17s
Gates / container (push) Successful in 16s
CI / gates (push) Successful in 13m10s
2026-08-13 00:20:08 +02:00
mokhtar
13458a980e
ci: run the frontend gate on the light runner
Gates / test (push) Successful in 1m37s
Gates / frontend (push) Failing after 3m23s
Gates / package (push) Skipped
Gates / container (push) Skipped
Gates / test-aarch64 (push) Successful in 6m2s
CI / gates (push) Failing after 7m41s
2026-08-12 23:46:07 +02:00