fix: prevent matrix-js-sdk plugin load crash (#56273) (thanks @aquaright1)

* Fix matrix-js-sdk multiple entrypoint crash on plugin load

* test(matrix): cover runtime bundle import regression

* fix: prevent matrix-js-sdk plugin load crash (#56273) (thanks @aquaright1)

* fix: widen matrix-js-sdk bundle import guard (#56273) (thanks @aquaright1)

---------

Co-authored-by: Kenny Xie <kennyxie@Mac-mini-von-Kenny.local>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
This commit is contained in:
Kenny Xie
2026-03-28 01:57:54 -07:00
committed by GitHub
parent 3c0cf26e16
commit cb5afdf108
6 changed files with 48 additions and 9 deletions

View File

@@ -2,13 +2,13 @@ import { readFileSync } from "node:fs";
import fs from "node:fs/promises";
import {
Category,
MemoryStore,
SyncAccumulator,
type ISyncData,
type IRooms,
type ISyncResponse,
type IStoredClientOpts,
} from "matrix-js-sdk";
import { MemoryStore } from "matrix-js-sdk/lib/store/memory.js";
import { SyncAccumulator } from "matrix-js-sdk/lib/sync-accumulator.js";
} from "matrix-js-sdk/lib/matrix.js";
import { writeJsonFileAtomically } from "../../runtime-api.js";
import { createAsyncLock } from "../async-lock.js";
import { LogService } from "../sdk/logger.js";

View File

@@ -175,8 +175,8 @@ function createMatrixJsClientStub(): MatrixJsClientStub {
let matrixJsClient = createMatrixJsClientStub();
let lastCreateClientOpts: Record<string, unknown> | null = null;
vi.mock("matrix-js-sdk", async (importOriginal) => {
const actual = await importOriginal<typeof import("matrix-js-sdk")>();
vi.mock("matrix-js-sdk/lib/matrix.js", async (importOriginal) => {
const actual = await importOriginal<typeof import("matrix-js-sdk/lib/matrix.js")>();
return {
...actual,
ClientEvent: { Event: "event", Room: "Room" },

View File

@@ -8,7 +8,7 @@ import {
createClient as createMatrixJsClient,
type MatrixClient as MatrixJsClient,
type MatrixEvent,
} from "matrix-js-sdk";
} from "matrix-js-sdk/lib/matrix.js";
import { VerificationMethod } from "matrix-js-sdk/lib/types.js";
import { KeyedAsyncQueue } from "openclaw/plugin-sdk/core";
import type { SsrFPolicy } from "../runtime-api.js";

View File

@@ -1,5 +1,5 @@
import { MatrixEventEvent, type MatrixEvent } from "matrix-js-sdk";
import { CryptoEvent } from "matrix-js-sdk/lib/crypto-api/CryptoEvent.js";
import { MatrixEventEvent, type MatrixEvent } from "matrix-js-sdk/lib/matrix.js";
import { LogService, noop } from "./logger.js";
type MatrixDecryptIfNeededClient = {