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
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
9b0b7c19f4
querylog: checkpoint every 8192 wal pages instead of 1000
2026-08-21 18:43:45 +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
e0a7cd8a6b
milestone 26: upstream health answers for the selected period
2026-08-17 18:21:56 +02:00
mokhtar
794ea6541f
admin: live and query log pages show client names
2026-08-16 23:00:31 +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
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
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
2ab7c1f1de
milestone 21: abp list exceptions and a regex rule kind
2026-08-13 19:14:47 +02:00
mokhtar
e576704fad
spec milestone 23: record the readme and conversion-order findings as closed by decision
2026-08-12 23:45:34 +02:00
mokhtar
4aaf6d3815
milestone 23: close the remaining codex findings
...
the vitest "something prevents Vite server from exiting" warning was
@stylexjs/unplugin, not our code: configureServer starts a 150ms polling
interval for HMR and clears it from server.httpServer's close event, which
vitest resolves to null in middleware mode. drop that one hook under VITEST
and keep the transform.
textMuted was swept rather than judged. measured against their grounds, the
39 flat text-zinc-500 sites went 4.12:1 -> 7.56:1 in dark mode, repairing a
WCAG AA failure, so that stands; the 4 already-adaptive sites went 7.40:1 ->
4.62:1 in light mode for nothing, so a textSecondary token restores their
original zinc-600/zinc-400 pair.
append the symbol families to the reset's font stack: Select renders U+25BE
and Segoe UI does not carry it.
correct two acceptance criteria that were literally false: both greps match
only comments.
2026-08-12 23:43:22 +02:00
mokhtar
0ea2e2905a
milestone 23: restore the focus ring on select options, check layer order, close preflight gaps
2026-08-12 23:27:28 +02:00
mokhtar
ac0699faa1
milestone 23: amend two rulings the s2 review found the code in breach of
2026-08-12 22:26:42 +02:00
mokhtar
01e455c8af
milestone 23 s2: react aria primitives and their cluster
2026-08-12 22:12:18 +02:00
mokhtar
c5e6ab9180
spec milestones 22 and 23: typescript 7, stylex and react aria
2026-08-12 21:30:35 +02:00
mokhtar
79a161e73a
spec milestone 21: re-verify anchors against m20, record authority-mode interaction
Gates / test (push) Successful in 1m27s
Gates / test-aarch64 (push) Successful in 5m56s
Gates / frontend (push) Successful in 49s
Gates / package (push) Successful in 3m54s
Gates / container (push) Failing after 2m20s
CI / gates (push) Failing after 14m27s
2026-08-11 23:37:20 +02:00
mokhtar
d76afc147a
milestone 20: declarative configuration for iac
2026-08-11 23:31:40 +02:00
mokhtar
2f29121e27
spec milestone 21: abp list exceptions and operator regex rules
2026-08-11 19:03:58 +02:00
mokhtar
9aa396a65a
spec milestone 20: declarative configuration for iac
2026-08-11 18:49:03 +02:00
mokhtar
929626b1dc
milestone 14: verify-a-release walkthrough run against v0.0.1, acceptance closed
2026-08-09 01:35:43 +02:00
mokhtar
3c38e18027
changelog and spec: dry run complete, restore 0.0.1, record deviations 25 and 26
2026-08-08 21:43:36 +02:00
mokhtar
d7f63b9f6e
release: move publication orchestration into tools/release.zig, pin rotated subkey
2026-08-08 20:22:04 +02:00
mokhtar
cdacc560b7
milestone 14: build, package, sign and publish releases
2026-08-08 12:38:29 +02:00
mokhtar
6c507992e4
milestone 19: hygiene sweep - dead ecs surface, single-source constants, tls classification, frontend state hazards, docker smoke network fix
CI / test (push) Successful in 1m46s
CI / test-aarch64 (push) Successful in 5m30s
CI / frontend (push) Successful in 46s
CI / cross (push) Successful in 8m12s
CI / docker (push) Successful in 3m46s
2026-08-07 20:39:27 +02:00
mokhtar
6f67940995
milestone 18: collapse duplicated infrastructure into shared listener core, crud list helper, resource shells, transport race, name and line helpers, ui modules
CI / test (push) Successful in 1m22s
CI / test-aarch64 (push) Successful in 5m6s
CI / frontend (push) Successful in 45s
CI / cross (push) Successful in 7m53s
CI / docker (push) Failing after 1h10m57s
2026-08-07 18:20:30 +02:00
mokhtar
c50c6d285a
milestone 17: real deadlines, validator holes, upstream editor, trusted proxies, contract samples, badvers
CI / test (push) Successful in 1m22s
CI / test-aarch64 (push) Successful in 4m55s
CI / frontend (push) Successful in 39s
CI / cross (push) Successful in 7m57s
CI / docker (push) Failing after 1h10m42s
2026-08-07 17:55:59 +02:00
mokhtar
25455e5ae2
milestone 16: behavioral fixes for silent failures, locks, counters and the query log
CI / test (push) Failing after 11s
CI / cross (push) Failing after 25s
CI / docker (push) Failing after 24s
CI / test-aarch64 (push) Failing after 2m22s
CI / frontend (push) Successful in 43s
2026-08-07 01:54:40 +02:00
mokhtar
9f8a5cd753
milestone 15: make a green run mean a real pass
CI / test (push) Failing after 1m12s
CI / test-aarch64 (push) Failing after 2m27s
CI / frontend (push) Successful in 1m28s
CI / cross (push) Failing after 27s
CI / docker (push) Failing after 24s
2026-08-07 01:28:13 +02:00
mokhtar
f47967ec0d
tech debt audit and cleanup specs for milestones 15-19
2026-08-07 00:57:59 +02:00
mokhtar
8c3328562e
milestone 13 discrepancies: redact credentials from urls in logs, metrics and cli output
2026-08-07 00:45:17 +02:00
mokhtar
1ff727feb8
milestone 14 spec: build, package and publish releases
2026-08-05 21:40:16 +02:00
mokhtar
16c9de2414
milestone 13: restructure docs to diataxis, tutorial, every command executed
2026-08-02 18:02:58 +02:00
mokhtar
d522b1f947
milestone 12: performance bench harness, measured docs, aarch64 tests under qemu and no-dist size assert
2026-08-02 16:08:23 +02:00
mokhtar
bdb6ffab7a
milestone 11: systemd and docker packaging, operator and architecture docs, config and api reference, docs drift guards
2026-08-02 15:24:10 +02:00
mokhtar
a589df7515
milestone 10: doh and dot listeners, cert store with hot reload and cert reload api
2026-08-02 14:39:18 +02:00
mokhtar
617cc966a2
milestone 9: react spa admin ui, frontend ci and embedded dist
2026-08-02 13:04:09 +02:00
mokhtar
5253c47303
milestone 8: web server, rest api, sse, auth, metrics and static assets
2026-08-02 00:54:13 +02:00
mokhtar
a8092bb1b9
milestone 7: serving pipeline, client tracking, pause and lifecycle
2026-08-01 21:43:52 +02:00
mokhtar
8c50b6617f
milestone 6: dns cache, rate limiting, query logging, disk monitoring and retention
2026-08-01 17:48:12 +02:00
mokhtar
59d94df722
milestone 5: blocklist filtering, local records and conditional forwarding
2026-08-01 16:43:55 +02:00
mokhtar
3baf5d6581
dot upstreams: per-upstream tls_name for sni and cert verification by dns name
2026-08-01 14:38:45 +02:00
mokhtar
70bff22d75
storage and config: sqlite wrapper, migrations, querylog policy, repositories, zon config with import/export/check cli
2026-08-01 14:21:44 +02:00
mokhtar
17d0401f8a
resolver transport: udp/tcp servers, doh/dot clients, pool failover with health
2026-08-01 12:36:50 +02:00
mokhtar
346f2dc502
milestone-2 spec and api notes: as-built sync
2026-08-01 01:06:11 +02:00
mokhtar
bf02f83adc
sync milestone-1 spec and api notes with as-built findings
2026-07-31 23:59:40 +02:00