From 28bb8c600ec04992cd67d820e98f0276b964f6d7 Mon Sep 17 00:00:00 2001 From: Gustavo Madeira Santana Date: Tue, 31 Mar 2026 08:03:23 -0400 Subject: [PATCH] Matrix: narrow thread binding runtime seam --- extensions/matrix/src/matrix/thread-bindings.ts | 6 +++--- src/plugin-sdk/subpaths.test.ts | 8 +++++++- src/plugin-sdk/thread-bindings-runtime.ts | 6 ++++++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/extensions/matrix/src/matrix/thread-bindings.ts b/extensions/matrix/src/matrix/thread-bindings.ts index 7a23caf5599..ceb61c4e226 100644 --- a/extensions/matrix/src/matrix/thread-bindings.ts +++ b/extensions/matrix/src/matrix/thread-bindings.ts @@ -1,11 +1,11 @@ +import { readJsonFileWithFallback, writeJsonFileAtomically } from "openclaw/plugin-sdk/json-store"; +import { resolveAgentIdFromSessionKey } from "openclaw/plugin-sdk/routing"; import { registerSessionBindingAdapter, resolveThreadBindingFarewellText, type SessionBindingAdapter, unregisterSessionBindingAdapter, -} from "openclaw/plugin-sdk/conversation-runtime"; -import { readJsonFileWithFallback, writeJsonFileAtomically } from "openclaw/plugin-sdk/json-store"; -import { resolveAgentIdFromSessionKey } from "openclaw/plugin-sdk/routing"; +} from "openclaw/plugin-sdk/thread-bindings-runtime"; import { resolveMatrixStateFilePath } from "./client/storage.js"; import type { MatrixAuth } from "./client/types.js"; import type { MatrixClient } from "./sdk.js"; diff --git a/src/plugin-sdk/subpaths.test.ts b/src/plugin-sdk/subpaths.test.ts index 11c38c4edbe..553d18a998f 100644 --- a/src/plugin-sdk/subpaths.test.ts +++ b/src/plugin-sdk/subpaths.test.ts @@ -575,7 +575,13 @@ describe("plugin-sdk subpath exports", () => { "createTopLevelChannelReplyToModeResolver", ]); - expectSourceMentions("thread-bindings-runtime", ["resolveThreadBindingLifecycle"]); + expectSourceMentions("thread-bindings-runtime", [ + "resolveThreadBindingFarewellText", + "resolveThreadBindingLifecycle", + "registerSessionBindingAdapter", + "unregisterSessionBindingAdapter", + "SessionBindingAdapter", + ]); expectSourceMentions("matrix-runtime-shared", ["formatZonedTimestamp"]); expectSourceMentions("ssrf-runtime", [ "closeDispatcher", diff --git a/src/plugin-sdk/thread-bindings-runtime.ts b/src/plugin-sdk/thread-bindings-runtime.ts index 007c46465be..8ca19f3608d 100644 --- a/src/plugin-sdk/thread-bindings-runtime.ts +++ b/src/plugin-sdk/thread-bindings-runtime.ts @@ -2,8 +2,14 @@ // expiry and session-binding record types without loading the full // conversation-runtime surface. +export { resolveThreadBindingFarewellText } from "../channels/thread-bindings-messages.js"; export { resolveThreadBindingLifecycle } from "../channels/thread-bindings-policy.js"; export type { BindingTargetKind, + SessionBindingAdapter, SessionBindingRecord, } from "../infra/outbound/session-binding-service.js"; +export { + registerSessionBindingAdapter, + unregisterSessionBindingAdapter, +} from "../infra/outbound/session-binding-service.js";