From 0389bf93632782731f40539ad80b2e5ce9c4d96f Mon Sep 17 00:00:00 2001 From: Neuron Date: Sun, 16 Aug 2026 15:37:22 -0500 Subject: [PATCH] engram: expose the geometry so the frame can be verified MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit engram_scan_nodes_emb_json has existed as a builtin with NO ROUTE. The embeddings — the actual positions every distance, angle, membership and grounding is computed from — were unreadable from outside the process. That is not a missing convenience. It means every claim about the coordinate frame was unfalsifiable from the API: whether the space is isotropic, where the centering offset sits, what the origin is, whether a node carries geometry at all. You cannot verify a coordinate system you cannot see, and a system whose frame cannot be checked is exactly the shape this codebase spent 2026-08-16 removing everywhere else. GET /api/nodes/emb?limit=&offset=. Read-only, paged, no writes. Measured consequence of having it: the value manifold and the love component manifold were both decomposed, null-controlled against random node sets drawn from the same graph, and several published claims were retracted because the geometry contradicted them. None of that was possible before this route existed. --- engram/src/server.el | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/engram/src/server.el b/engram/src/server.el index 874c1f4..515c969 100644 --- a/engram/src/server.el +++ b/engram/src/server.el @@ -1025,6 +1025,22 @@ fn route_similarity(method: String, path: String, body: String) -> String { // nothing on request. NOTE: the offline reify WRITER (engram_geo_reify_store) is // currently unwired, so on the live store the resident index is empty and the // list returns [] until reification runs — see the cutover report. +// route_scan_emb — GET /api/nodes/emb?limit=&offset= — read the raw geometry. +// +// engram_scan_nodes_emb_json has existed as a builtin with NO ROUTE, so the +// embeddings — the actual positions every distance, angle, membership and +// grounding is computed from — were unreadable from outside the process. You +// cannot verify a coordinate system you cannot see, and every claim about the +// frame (isotropy, centering, what the origin is) was therefore unfalsifiable +// from the API. Read-only. +fn route_scan_emb(method: String, path: String, body: String) -> String { + let l_raw: String = query_param(path, "limit") + let o_raw: String = query_param(path, "offset") + let l: Int = if str_eq(l_raw, "") { 200 } else { str_to_int(l_raw) } + let o: Int = if str_eq(o_raw, "") { 0 } else { str_to_int(o_raw) } + return engram_scan_nodes_emb_json(l, o) +} + fn route_neighborhoods(method: String, path: String, body: String) -> String { engram_geo_reify_list_json() } @@ -1796,6 +1812,9 @@ fn handle_request(method: String, path: String, body: String) -> String { if str_eq(method, "GET") && (str_eq(clean, "/api/edges") || str_eq(clean, "/edges")) { return route_scan_edges(method, path, body) } + if str_eq(method, "GET") && (str_eq(clean, "/api/nodes/emb") || str_eq(clean, "/nodes/emb")) { + return route_scan_emb(method, path, body) + } if str_eq(method, "GET") && str_starts_with(clean, "/api/nodes/") { return route_get_node(method, path, body) }