diff --git a/extensions/telegram/src/bot-handlers.runtime.ts b/extensions/telegram/src/bot-handlers.runtime.ts index 00be09bef1b..84d7a61c45d 100644 --- a/extensions/telegram/src/bot-handlers.runtime.ts +++ b/extensions/telegram/src/bot-handlers.runtime.ts @@ -1764,8 +1764,8 @@ export const registerTelegramHandlers = ({ ? "reset to default" : `changed to ${escapeHtml(selection.provider)}/${escapeHtml(selection.model)}`; const scopeText = isDefaultSelection - ? "Session selection cleared. New replies use the agent's configured default." - : "Session-only selection. The agent default in openclaw.json is unchanged; /reset or a new session may return to that default."; + ? "Session selection cleared. Runtime unchanged. New replies use the agent's configured default." + : `Session-only model selection. Runtime unchanged. Use /model ${escapeHtml(selection.provider)}/${escapeHtml(selection.model)} --runtime <runtime> to switch harnesses. The agent default in openclaw.json is unchanged; /reset or a new session may return to that default.`; await editMessageWithButtons( `✅ Model ${actionText}\n\n${scopeText}`, [], // Empty buttons = remove inline keyboard diff --git a/extensions/telegram/src/bot.create-telegram-bot.test.ts b/extensions/telegram/src/bot.create-telegram-bot.test.ts index 2c8546e5088..1d6c747f93f 100644 --- a/extensions/telegram/src/bot.create-telegram-bot.test.ts +++ b/extensions/telegram/src/bot.create-telegram-bot.test.ts @@ -3768,7 +3768,7 @@ describe("createTelegramBot", () => { expect(editMessageTextSpy).toHaveBeenCalledTimes(1); expect(String(editMessageTextSpy.mock.calls.at(-1)?.[2] ?? "")).toContain( - "Session-only selection. The agent default in openclaw.json is unchanged", + "Session-only model selection. Runtime unchanged.", ); expect( editMessageTextSpy.mock.calls.some((call) => diff --git a/extensions/telegram/src/bot.test.ts b/extensions/telegram/src/bot.test.ts index 63ed0cd1edc..6666167b17d 100644 --- a/extensions/telegram/src/bot.test.ts +++ b/extensions/telegram/src/bot.test.ts @@ -1062,7 +1062,7 @@ describe("createTelegramBot", () => { `${CHECK_MARK_EMOJI} Model reset to default`, ); expect(editMessageTextSpy.mock.calls[0]?.[2]).toContain( - "Session selection cleared. New replies use the agent's configured default.", + "Session selection cleared. Runtime unchanged. New replies use the agent's configured default.", ); const entry = Object.values(loadSessionStore(storePath, { skipCache: true }))[0]; @@ -1209,7 +1209,7 @@ describe("createTelegramBot", () => { `${CHECK_MARK_EMOJI} Model reset to default`, ); expect(editMessageTextSpy.mock.calls[0]?.[2]).toContain( - "Session selection cleared. New replies use the agent's configured default.", + "Session selection cleared. Runtime unchanged. New replies use the agent's configured default.", ); const entry = Object.values(loadSessionStore(storePath, { skipCache: true }))[0]; @@ -1281,7 +1281,7 @@ describe("createTelegramBot", () => { expect(editMessageTextSpy).toHaveBeenCalledWith( 1234, 17, - `${CHECK_MARK_EMOJI} Model changed to openai/gpt-5.4\n\nSession-only selection. The agent default in openclaw.json is unchanged; /reset or a new session may return to that default.`, + `${CHECK_MARK_EMOJI} Model changed to openai/gpt-5.4\n\nSession-only model selection. Runtime unchanged. Use /model openai/gpt-5.4 --runtime <runtime> to switch harnesses. The agent default in openclaw.json is unchanged; /reset or a new session may return to that default.`, expect.objectContaining({ parse_mode: "HTML" }), );