From d77b64e05af10cb8ff84284ea6c9df368d46e8ca Mon Sep 17 00:00:00 2001 From: Hao19911125 <99091644+Hao19911125@users.noreply.github.com> Date: Sun, 5 Apr 2026 23:52:59 +0800 Subject: [PATCH] Narrow trivial input skip rules --- tests/trivial-user-input.mjs | 28 +++------------------------- ui-status.js | 25 ------------------------- 2 files changed, 3 insertions(+), 50 deletions(-) diff --git a/tests/trivial-user-input.mjs b/tests/trivial-user-input.mjs index ba8402f..3ce7c74 100644 --- a/tests/trivial-user-input.mjs +++ b/tests/trivial-user-input.mjs @@ -21,9 +21,9 @@ function testIsTrivialUserInputTable() { ["/echo hello", true, "slash-command"], ["/", true, "slash-command"], [" /echo", true, "slash-command"], - ["a", true, "under-min-tokens"], - ["好", true, "under-min-tokens"], - ["ok", true, "under-min-tokens"], + ["a", false, ""], + ["好", false, ""], + ["ok", false, ""], ["ok a", false, ""], ["好的", false, ""], ["好的呀", false, ""], @@ -68,27 +68,6 @@ async function testSlashCommandSkipsRecallAndExtraction() { assert.equal(harness.result.getCurrentGenerationTrivialSkip(), null); } -async function testUnderMinTokensSkipsRecallAndExtraction() { - const harness = await createGenerationRecallHarness(); - harness.chat = []; - harness.__sendTextareaValue = "a"; - - const startResult = harness.result.onGenerationStarted("normal", {}, false); - assert.equal(startResult, null); - assert.equal( - harness.result.getCurrentGenerationTrivialSkip()?.reason, - "under-min-tokens", - ); - - await harness.result.onGenerationAfterCommands("normal", {}, false); - assert.equal(harness.runRecallCalls.length, 0); - - harness.chat.push({ is_user: false, mes: "assistant reply" }); - harness.invokeOnMessageReceived(0, ""); - assert.equal(harness.runExtractionCalls.length, 0); - assert.equal(harness.result.getCurrentGenerationTrivialSkip(), null); -} - async function testEmptyInputSkipsPriorHistoryFallback() { const harness = await createGenerationRecallHarness(); harness.chat = [{ is_user: true, mes: "older real user message" }]; @@ -284,7 +263,6 @@ async function testSkipFlagTtlExpires() { await Promise.resolve(); testIsTrivialUserInputTable(); await testSlashCommandSkipsRecallAndExtraction(); -await testUnderMinTokensSkipsRecallAndExtraction(); await testEmptyInputSkipsPriorHistoryFallback(); await testNormalInputStillRecalls(); await testSentinelBlocksHistoryFallback(); diff --git a/ui-status.js b/ui-status.js index 0bfe7da..aca4616 100644 --- a/ui-status.js +++ b/ui-status.js @@ -323,23 +323,6 @@ export function normalizeRecallInputText(value) { .trim(); } -const TRIVIAL_INPUT_MIN_TOKENS = 2; -const TRIVIAL_INPUT_CJK_TOKEN_REGEX = - /\p{Script=Han}|\p{Script=Hiragana}|\p{Script=Katakana}|\p{Script=Hangul}/gu; - -function estimateTrivialInputTokens(text = "") { - const normalized = normalizeRecallInputText(text); - if (!normalized) return 0; - - const cjkMatches = normalized.match(TRIVIAL_INPUT_CJK_TOKEN_REGEX) || []; - const nonCjkText = normalized.replace(TRIVIAL_INPUT_CJK_TOKEN_REGEX, " "); - const wordTokens = nonCjkText - .split(/\s+/) - .filter(Boolean); - - return cjkMatches.length + wordTokens.length; -} - export function isTrivialUserInput(text) { const normalizedText = normalizeRecallInputText(text); if (!normalizedText) { @@ -358,14 +341,6 @@ export function isTrivialUserInput(text) { }; } - if (estimateTrivialInputTokens(normalizedText) < TRIVIAL_INPUT_MIN_TOKENS) { - return { - trivial: true, - reason: "under-min-tokens", - normalizedText, - }; - } - return { trivial: false, reason: "",