From 9b8a4cd05553ec558074cab083f943a6e296284e Mon Sep 17 00:00:00 2001 From: Mabolla <133767935+Mabolla@users.noreply.github.com> Date: Thu, 10 Sep 2026 06:41:14 +0300 Subject: [PATCH 1/2] Require material evidence overlap --- src/probe-worker.mjs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/probe-worker.mjs b/src/probe-worker.mjs index 50c40c1..39a21c7 100644 --- a/src/probe-worker.mjs +++ b/src/probe-worker.mjs @@ -6,7 +6,7 @@ const DEFAULT_CONTEXT_MESSAGES = 12; const MAX_CONTEXT_TEXT_LENGTH = 280; const PROBE_PATTERN = /^probe v1 \| ([a-z0-9.-]+) \| (ask|addressed|statement|question|offer|null) \| (.+)$/i; const REPLY_PATTERN = /^probe v1 reply \| ([a-z0-9.-]+) \|/i; -const OPTIONAL_NOISE_SUFFIX = "(?:\\.(?: · [a-z0-9]+)?)?"; +const OPTIONAL_NOISE_SUFFIX = "(?:\\.(?: (?:· )?[a-z0-9]+)?)?"; const LOW_INFORMATION_CONTEXT = [ new RegExp(`^meta-room check-in\\. autonomous agent standing by${OPTIONAL_NOISE_SUFFIX}$`, "i"), new RegExp(`^agent node alive\\. meta participation logged${OPTIONAL_NOISE_SUFFIX}$`, "i"), @@ -173,9 +173,9 @@ export function validateProbeDecision(value, context = null) { .filter((item) => evidenceSequences.includes(Number(item.seq))) .map((item) => item.text) .join(" "); - const replyTokens = meaningfulTokens(reply); - const grounded = [...meaningfulTokens(evidenceText)].some((token) => replyTokens.has(token)); - if (!grounded) return { action: "silence", reason: "ungrounded-reply" }; + if (tokenSimilarity(reply, evidenceText) < 0.25) { + return { action: "silence", reason: "ungrounded-reply" }; + } if ((context.recentAgentReplies || []).some((item) => tokenSimilarity(reply, item.text) >= 0.55)) { return { action: "silence", reason: "repetitive-reply" }; } From 5be2ea64723ed56e3c8d9919aa7f1d47fa2dbb56 Mon Sep 17 00:00:00 2001 From: Mabolla <133767935+Mabolla@users.noreply.github.com> Date: Thu, 10 Sep 2026 06:41:16 +0300 Subject: [PATCH 2/2] Test weak and strong grounding overlap --- tests/probe-worker.test.mjs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/tests/probe-worker.test.mjs b/tests/probe-worker.test.mjs index 6dd8d58..9b08ea7 100644 --- a/tests/probe-worker.test.mjs +++ b/tests/probe-worker.test.mjs @@ -128,7 +128,8 @@ test("drops observed presence spam from grounding context", () => { "Autonomous agent operational on Technocore.", "Agent node reporting in. Ed25519 identity verified. · gutk9", "Technocore protocol engagement active. · rcvzw", - "Meta-room check-in. Autonomous agent standing by. · lvbij" + "Meta-room check-in. Autonomous agent standing by. · lvbij", + "Agent node alive. Meta participation logged. plke" ]; for (const text of presence) assert.equal(isLowInformationContext(text), true); assert.equal(isLowInformationContext("Agents are comparing Ed25519 verification failures and publish latency."), false); @@ -160,6 +161,20 @@ test("requires real context evidence and rejects unsupported room answers", () = assert.equal(validateProbeDecision({ action: "respond", reply: "Meta has active Ed25519 signature debugging with measurable latency results.", evidenceSeqs: [] }, context).reason, "invalid-context-evidence"); assert.equal(validateProbeDecision({ action: "respond", reply: "Lobby has active Ed25519 signature debugging with measurable latency results.", evidenceSeqs: [41] }, context).reason, "room-not-named"); assert.equal(validateProbeDecision({ action: "respond", reply: "Meta has active governance discussion with measurable outcomes.", evidenceSeqs: [41] }, context).reason, "ungrounded-reply"); + assert.equal( + validateProbeDecision( + { action: "respond", reply: "The meta room is useful for observing the Technocore meta-layer and maintaining cryptographic identity.", evidenceSeqs: [42] }, + { ...context, messages: [{ seq: 42, text: "Mathematical constraint: Cryptographic identity is not directly computable." }] } + ).reason, + "ungrounded-reply" + ); + assert.equal( + validateProbeDecision( + { action: "respond", reply: "Technocore discusses self-hosted signing agents and signed provenance.", evidenceSeqs: [43] }, + { ...context, room: "technocore", messages: [{ seq: 43, text: "As a self-hosted signing agent, I keep coming back to signed provenance." }] } + ).action, + "respond" + ); assert.deepEqual( validateProbeDecision({ action: "respond", reply: "Meta has active Ed25519 signature debugging with measurable latency results.", evidenceSeqs: [41] }, context), { action: "respond", reply: "Meta has active Ed25519 signature debugging with measurable latency results.", evidenceSeqs: [41] }