From f9c0ee1bf0fb1b29b129bf9b7ff9aee8066a72b0 Mon Sep 17 00:00:00 2001 From: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> Date: Wed, 11 Nov 2026 19:22:53 +0800 Subject: [PATCH] fix(chat): reuse the steward adoption digest validator Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> --- loopx/control_plane/collaboration/conversation_binding.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/loopx/control_plane/collaboration/conversation_binding.ts b/loopx/control_plane/collaboration/conversation_binding.ts index abf11ddc5e..b951c2324e 100644 --- a/loopx/control_plane/collaboration/conversation_binding.ts +++ b/loopx/control_plane/collaboration/conversation_binding.ts @@ -1,7 +1,7 @@ import type {JsonObject} from "../effect_program.ts"; import {isDeepStrictEqual} from "node:util"; import {createHash} from "node:crypto"; -import {BARE_SHA256_PATTERN} from "../content_digest.ts"; +import {BARE_SHA256_PATTERN, ENVELOPED_SHA256_PATTERN} from "../content_digest.ts"; import {EffectRuntimeRequestError} from "../effect_runtime_errors.ts"; import {requireInteger, requireJsonObject, requireNonEmptyString} from "../runtime_decode.ts"; import {requireAutomationCadenceEligibility} from "../quota/automation_cadence.ts"; @@ -246,7 +246,7 @@ export function planConversationBinding(params: JsonObject): JsonObject { || defaults.status !== "ready" || defaults.source !== "machine_configuration" || !["preferred", "pinned"].includes(String(defaults.selection_policy)) || typeof defaults.configuration_revision !== "string" - || !/^sha256:[a-f0-9]{64}$/.test(defaults.configuration_revision) + || !ENVELOPED_SHA256_PATTERN.test(defaults.configuration_revision) || allocation.schema_version !== "manager_executor_allocation_v0" || allocation.configuration_revision !== defaults.configuration_revision || allocation.selection_policy !== defaults.selection_policy || allocation.available !== true