i18n(abort): add Turkish, Korean, and Italian abort triggers#30102
i18n(abort): add Turkish, Korean, and Italian abort triggers#30102AytuncYildizli wants to merge 6 commits intoopenclaw:mainfrom
Conversation
Add missing language coverage to the ABORT_TRIGGERS set: - Turkish (tr): 'dur', 'iptal' - Korean (ko): '멈춰' - Italian (it): 'fermati' These languages were omitted from the multilingual expansion in openclaw#25103. Follows the same conservative pattern: 1-2 entries per language, matching the baseline established for Arabic (1), Hindi (1), Chinese (1), and Portuguese (1). Relates to openclaw#26113 (configurable abort triggers) — this is a stopgap fix for the most-requested missing languages. A proper config-driven solution is tracked in that issue. Tests: extended isAbortTrigger and isAbortRequestText coverage for all three new locales.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0ce471f30a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| "pare", | ||
| // Turkish (tr) | ||
| "dur", | ||
| "iptal", |
There was a problem hiding this comment.
Handle Turkish dotted-I spelling for new
iptal trigger
Adding only "iptal" misses a common Turkish uppercase form: İPTAL lowercases to i̇ptal (with a combining dot) under JavaScript’s default toLowerCase, so isAbortTrigger/isAbortRequestText will not recognize it even though this change advertises Turkish abort support. This affects users typing in uppercase or title case on Turkish keyboards, where İ is the expected capital letter.
Useful? React with 👍 / 👎.
Greptile SummaryThis PR extends Key changes:
Confidence Score: 4/5
Last reviewed commit: 0ce471f |
'dur' means 'hard/tough' in French — keeping only 'iptal' for Turkish as the unambiguous abort signal, per Greptile review feedback.
…hrases Implements openclaw#26113: users can now extend the built-in ABORT_TRIGGERS set with their own language-specific or workflow-specific stop phrases via openclaw.json, without waiting for a release. { "session": { "abortTriggers": ["dur", "yeter", "그만", "custom-stop"] } } Changes: - abort.ts: isAbortTrigger() and isAbortRequestText() accept optional extraTriggers param; normalization pipeline (lowercase, trim, punctuation strip) applies to extra triggers consistently - command-detection.ts: passes cfg.session?.abortTriggers through isControlCommandMessage for the main detection path - get-reply-inline-actions.ts: passes cfg.session?.abortTriggers into isAbortRequestText for the inline abort path - types.base.ts: SessionConfig gains optional abortTriggers field - zod-schema.session.ts: SessionSchema gains optional abortTriggers string array - schema.labels.ts + schema.help.ts: documentation for the new field The built-in ABORT_TRIGGERS set is preserved as-is and remains the baseline. extraTriggers augments it — no existing behaviour changes for users who do not set the new config field. Closes openclaw#26113 Related: openclaw#25103, openclaw#30102
|
Update: dropped |
…-italian-abort-triggers
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4f8b35e4d9
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| "stopp", | ||
| "pare", | ||
| // Turkish (tr) | ||
| "iptal", |
There was a problem hiding this comment.
Add missing Turkish
dur abort trigger
The Turkish section currently adds only iptal, so dur is still treated as a non-abort input because matching is exact against ABORT_TRIGGERS (isAbortTrigger/isAbortRequestText only return true for listed phrases). In practice this leaves a very common Turkish "stop" command unsupported, so Turkish users can still fail to cancel an in-flight run even after this i18n expansion.
Useful? React with 👍 / 👎.
…-italian-abort-triggers
|
See #3460 |
Summary
Extends the
ABORT_TRIGGERSset with three languages that were missing from the multilingual expansion in #25103:dur,iptal멈춰fermatiMotivation
Turkish (~85M speakers), Korean (~80M), and Italian (~65M) are among the largest language communities without abort trigger coverage. A real-world case surfaced this gap: a user unfamiliar with
/stophad no native-language fallback.Design Decisions
Conservative scope by design. The existing pattern in #25103 is 1–2 entries per language (Arabic: 1, Hindi: 1, Chinese: 1, Portuguese: 1). This PR follows that convention — no phrase variants, no extended forms.
Turkish gets 2 entries because
dur(imperative "stop") andiptal("cancel") map to distinct user intents that both clearly signal abort. This mirrors how Spanish got bothdeténanddeten(accented/unaccented variants), and French gotarrêtealongside the shareddetente.Not the long-term solution. The hardcoded set doesn't scale. Issue #26113 proposes a config-driven
extraTriggersapproach that would make per-language additions unnecessary. This PR is an explicit stopgap for the highest-impact missing languages until that ships.Testing
Extended
isAbortTriggerandisAbortRequestTexttest coverage for all three new locales. All 16 tests pass.Related