mirror of
https://github.com/morluto/rea
synced 2026-10-26 22:28:27 -04:00
perf(javascript): validate semantic factory inputs once
Construct typed semantic records directly from cloned, normalized input and derived commitments instead of reparsing the same fields. Keep full graph integrity validation and verify caller mutation isolation. Four alternating cold runs preserved complete result digests while median projection time fell about 8 percent and 17 percent for the two 20,000-node capacity workloads.
This commit is contained in:
@@ -140,6 +140,44 @@ it("accepts semantic module paths longer than the former schema ceiling", () =>
|
||||
).toBe(modulePath);
|
||||
});
|
||||
|
||||
it("captures caller-owned node identity, properties, and provenance", () => {
|
||||
const contexts = new JavaScriptSemanticEvidenceContextRegistry();
|
||||
const input = {
|
||||
kind: "literal",
|
||||
identity: {
|
||||
artifact_sha256: SHA,
|
||||
module_path: "bundle.js",
|
||||
source_range: null,
|
||||
role_key: "literal",
|
||||
},
|
||||
function_node_id: null,
|
||||
application_node_ids: [],
|
||||
label: "literal",
|
||||
properties: { nested: ["original"] },
|
||||
evidence: evidence(),
|
||||
};
|
||||
const captured = createJavaScriptSemanticGraphNode(input, contexts);
|
||||
const expected = structuredClone(captured);
|
||||
const expectedEvidence = structuredClone(input.evidence);
|
||||
|
||||
input.identity.module_path = "replaced.js";
|
||||
input.properties.nested[0] = "replaced";
|
||||
input.evidence.limitations.push("later mutation");
|
||||
if (input.evidence.location.available)
|
||||
input.evidence.location.value = {
|
||||
kind: "artifact-path",
|
||||
path: "replaced.js",
|
||||
};
|
||||
|
||||
expect(captured).toEqual(expected);
|
||||
expect(
|
||||
resolveJavaScriptSemanticEvidence(
|
||||
{ evidence_contexts: contexts.contexts },
|
||||
captured.evidence,
|
||||
),
|
||||
).toEqual(expectedEvidence);
|
||||
});
|
||||
|
||||
const fixtureInput = (withUnknown = false): JavaScriptSemanticGraphInput => {
|
||||
const evidenceContexts = new JavaScriptSemanticEvidenceContextRegistry();
|
||||
const module = node("module", "module", {}, evidenceContexts);
|
||||
|
||||
Reference in New Issue
Block a user