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

This commit is contained in:
2026-08-07 20:39:27 +02:00
parent 6f67940995
commit 6c507992e4
59 changed files with 1020 additions and 382 deletions
+2 -2
View File
@@ -9,8 +9,8 @@
//! a test helper — it deliberately does not answer that question.
//!
//! The import path is list / insert / deleteAll / count, plus the two runtime
//! calls `upsertSeen` and `pruneStale` that the Phase 7 client tracker owns.
//! Phase 8's REST surface is the third section: it speaks row ids and shows
//! calls `upsertSeen` and `pruneStale` that `server/clients.zig`'s tracker owns.
//! The REST surface is the third section: it speaks row ids and shows
//! every client, materialised ones included.
const std = @import("std");
+1 -1
View File
@@ -4,7 +4,7 @@
//! stable across an import, so an export carrying them would not re-import into
//! the same shape.
//!
//! The import path is list / insert / deleteAll / count. Phase 8's REST surface
//! The import path is list / insert / deleteAll / count. The REST surface
//! is the second half of this file: it speaks row ids, because that is what a
//! `/api/groups/{id}` request names.
+1 -1
View File
@@ -1,6 +1,6 @@
//! `local_records` and `forward_zones`.
//!
//! The import path is list / insert / deleteAll / count. Phase 8's REST surface
//! The import path is list / insert / deleteAll / count. The REST surface
//! follows each table's section: it speaks row ids, because that is what an
//! `/api/local-records/{id}` or `/api/forward-zones/{id}` request names.
+1 -1
View File
@@ -12,7 +12,7 @@
//! order as a whole is: `import` inserts the rules in export order, so the new
//! ids ascend in exactly the order this statement produced.
//!
//! The import path is list / insert / deleteAll / count. Phase 8's REST surface
//! The import path is list / insert / deleteAll / count. The REST surface
//! is the second half of this file: it speaks row ids, because that is what an
//! `/api/rules/{id}` request names.
+1 -1
View File
@@ -6,7 +6,7 @@
//! defaults so two exports taken minutes apart stay identical.
//!
//! The import path is list / insert / deleteAll / count; the runtime columns and
//! Phase 8's REST surface follow it, both keyed by row id.
//! the REST surface follow it, both keyed by row id.
const std = @import("std");
const Allocator = std.mem.Allocator;
+1 -1
View File
@@ -4,7 +4,7 @@
//! meaningful order — it matches what `Pool.init` expects — and `url` breaks
//! ties uniquely, which is what makes an export byte-stable.
//!
//! The import path is list / insert / deleteAll / count. Phase 8's REST surface
//! The import path is list / insert / deleteAll / count. The REST surface
//! is the second half of this file: it speaks row ids, because that is what an
//! `/api/upstreams/{id}` request names.