Auto-reply: normalize stop matching and add multilingual triggers (#25103)

* Auto-reply tests: cover multilingual abort triggers

* Auto-reply: normalize multilingual abort triggers

* Gateway: route chat stop matching through abort parser

* Gateway tests: cover chat stop parsing variants

* Auto-reply tests: cover Russian and German stop words

* Auto-reply: add Russian and German abort triggers

* Gateway tests: include Russian and German stop forms

* Telegram tests: route Russian and German stop forms to control lane

* Changelog: note multilingual abort stop coverage

* Changelog: add shared credit for abort shortcut update
This commit is contained in:
Vincent Koc
2026-02-24 01:07:25 -05:00
committed by GitHub
parent b817600533
commit 4b316c33db
6 changed files with 76 additions and 7 deletions

View File

@@ -147,6 +147,25 @@ describe("abort detection", () => {
"STOP OPENCLAW",
"stop openclaw!!!",
"stop dont do anything",
"detente",
"detén",
"arrête",
"停止",
"やめて",
"止めて",
"रुको",
"توقف",
"стоп",
"остановись",
"останови",
"остановить",
"прекрати",
"halt",
"anhalten",
"aufhören",
"hoer auf",
"stopp",
"pare",
];
for (const candidate of positives) {
expect(isAbortTrigger(candidate)).toBe(true);
@@ -164,6 +183,12 @@ describe("abort detection", () => {
expect(isAbortRequestText("stop")).toBe(true);
expect(isAbortRequestText("stop action")).toBe(true);
expect(isAbortRequestText("stop openclaw!!!")).toBe(true);
expect(isAbortRequestText("やめて")).toBe(true);
expect(isAbortRequestText("остановись")).toBe(true);
expect(isAbortRequestText("halt")).toBe(true);
expect(isAbortRequestText("stopp")).toBe(true);
expect(isAbortRequestText("pare")).toBe(true);
expect(isAbortRequestText(" توقف ")).toBe(true);
expect(isAbortRequestText("/stop@openclaw_bot", { botUsername: "openclaw_bot" })).toBe(true);
expect(isAbortRequestText("/status")).toBe(false);