From abd26b6e54d3623889e7e7f997aced7e8665653d Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 16 Feb 2026 03:35:31 +0100 Subject: [PATCH] refactor(ui): reuse Control UI bootstrap path constant --- .../ui/controllers/control-ui-bootstrap.test.ts | 5 +++-- ui/src/ui/controllers/control-ui-bootstrap.ts | 15 ++++++--------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/ui/src/ui/controllers/control-ui-bootstrap.test.ts b/ui/src/ui/controllers/control-ui-bootstrap.test.ts index 3c9e73fa09..7efe0b09b6 100644 --- a/ui/src/ui/controllers/control-ui-bootstrap.test.ts +++ b/ui/src/ui/controllers/control-ui-bootstrap.test.ts @@ -1,6 +1,7 @@ /* @vitest-environment jsdom */ import { describe, expect, it, vi } from "vitest"; +import { CONTROL_UI_BOOTSTRAP_CONFIG_PATH } from "../../../../src/gateway/control-ui-contract.js"; import { loadControlUiBootstrapConfig } from "./control-ui-bootstrap.ts"; describe("loadControlUiBootstrapConfig", () => { @@ -26,7 +27,7 @@ describe("loadControlUiBootstrapConfig", () => { await loadControlUiBootstrapConfig(state); expect(fetchMock).toHaveBeenCalledWith( - "/openclaw/__openclaw/control-ui-config.json", + `/openclaw${CONTROL_UI_BOOTSTRAP_CONFIG_PATH}`, expect.objectContaining({ method: "GET" }), ); expect(state.assistantName).toBe("Ops"); @@ -50,7 +51,7 @@ describe("loadControlUiBootstrapConfig", () => { await loadControlUiBootstrapConfig(state); expect(fetchMock).toHaveBeenCalledWith( - "/__openclaw/control-ui-config.json", + CONTROL_UI_BOOTSTRAP_CONFIG_PATH, expect.objectContaining({ method: "GET" }), ); expect(state.assistantName).toBe("Assistant"); diff --git a/ui/src/ui/controllers/control-ui-bootstrap.ts b/ui/src/ui/controllers/control-ui-bootstrap.ts index b161cf150d..a996e1265d 100644 --- a/ui/src/ui/controllers/control-ui-bootstrap.ts +++ b/ui/src/ui/controllers/control-ui-bootstrap.ts @@ -1,13 +1,10 @@ +import { + CONTROL_UI_BOOTSTRAP_CONFIG_PATH, + type ControlUiBootstrapConfig, +} from "../../../../src/gateway/control-ui-contract.js"; import { normalizeAssistantIdentity } from "../assistant-identity.ts"; import { normalizeBasePath } from "../navigation.ts"; -type ControlUiBootstrapConfig = { - basePath?: string; - assistantName?: string; - assistantAvatar?: string; - assistantAgentId?: string; -}; - export type ControlUiBootstrapState = { basePath: string; assistantName: string; @@ -25,8 +22,8 @@ export async function loadControlUiBootstrapConfig(state: ControlUiBootstrapStat const basePath = normalizeBasePath(state.basePath ?? ""); const url = basePath - ? `${basePath}/__openclaw/control-ui-config.json` - : "/__openclaw/control-ui-config.json"; + ? `${basePath}${CONTROL_UI_BOOTSTRAP_CONFIG_PATH}` + : CONTROL_UI_BOOTSTRAP_CONFIG_PATH; try { const res = await fetch(url, {