Skip to content

[windows][polish][ime] 未配置润色仍每次报「润色失败已插入原文」;插入后方向键卡顿;希望短输入跳过润色 #1032

Closed

Description

@linonetwo

环境

  • OS: Windows 11 (10.0.26200)
  • OpenLess: 1.3.18 stable
  • 插入:windowsInsertionMode=tsf,streamingInsert=true,windowsShowOpenlessInKeyboardList=true
  • 默认风格:defaultMode=light / activeStylePackId=builtin.light
  • LLM:activeLlmProvider=custom,未配置 API Key(故意不填:云端润色对短句太慢)
  • ASR:现为 foundry-local-whisper;该问题在火山引擎时期就已经出现
  • 热键:RightAlt toggle

相关 issue:#954(插入后系统/宿主卡顿)、#1027(Windows 输入法空壳 / Rime)、#1000(润色卡住)、#1014(插入重复)

1. 没填润色凭据时,每次都报「润色失败已插入原文」

我不用云端润色(短句时润色耗时占比过高,见第 3 点),所以 LLM API Key 为空。但默认模式仍是 Light,管线每次都会走润色再失败回退:

[style-pack] ... mode=Light raw_chars=8 prompt_chars=3156 raw_uses_llm=false
[coord] polish dispatch: translation=false mode=Light streaming_eligible=false
[ERROR] [coord] polish failed, falling back to raw: API Key 为空

openless.log 里 polish failed 出现 697 次。history.json 几乎每条都是 errorCode: "polishFailed"、insertStatus: "inserted"、llmProvider: null、polishMs: null。

失败后仍会插入原文,但会弹出「润色失败已插入原文」。这是预期回退,却被当成错误打扰,而且和下面的卡顿叠在一起。

请求:

  • 未配置 LLM / 用户明确不想润色时,不要走 polish,也不要弹失败 toast。
  • 区分「未配置」和「调用失败」:前者静默走 raw。
  • 设置里提供「始终不润色 / 只用 ASR 原文」且真正跳过 LLM 调度(现在 enabledModes 含 raw,但默认 Light 仍每次 dispatch)。

2. 插入之后一段时间非常卡,方向键改错字都卡;失败 toast 出现时更明显

工作流:口述 → 插入到 Cursor / ChatGPT 等输入框 → ASR 常有错字 → 立刻用左右方向键把光标移到错字上改。

插入完成后 几秒到十几秒内,宿主输入框里方向键移动光标会明显掉帧/延迟。toast 显示「润色失败已插入原文」时更严重。

本机同时满足:

  • TSF 插入(OpenLess IME 激活再 restore)
  • streamingInsert=true
  • 每次 polish 失败后立刻 insert + IME restore

日志里大量:

[windows-ime] restore decision=RestoreSavedProfile ... openless_was_activated=true
[windows-ime] restore succeeded
[windows-ime] restore verification: OpenLess is no longer the active profile

以及:

[WARN] [windows-ime] session began while OpenLess IME was already the active profile — previous session likely failed to restore

方向键卡顿发生在文本已经插入之后,像是 TSF/IME 还没把键盘焦点干净交还给系统输入法,OpenLess 仍在吃键或同步 composition。#954 是更极端的 Explorer AppHang;我这边更常见的是 插入后短暂输入卡死,不一定整机无响应。

请求:

  • 插入完成后立刻把 TSF/IME 状态恢复干净,方向键不应再被 OpenLess 拖住。
  • polish 失败 toast 不要阻塞输入路径;失败回退应和成功插入一样轻。
  • 调查 streamingInsert + polish 失败回退 raw 是否留下未结束的 composition / 钩子。

3. 希望「短输入」模式:两三个字到一个词组时关闭润色

大量日常口述是补一个词、改一个标识符、说「确定」「重试」这种短内容。日志里 Light 模式仍会 dispatch,哪怕 raw_chars=4/5/6/7/8/10,prompt 仍是 3156 字符。

短句时润色时间远大于 ASR(本地 ASR 热路径约 300–400ms,云端润色则是数秒)。所以我才把 API Key 留空,结果变成第 1 点的失败风暴。

请求:短输入通道

  • 热键或模式:「短输入 / 词组」,固定 raw、不调用 LLM。
  • 或自动:转写低于 N 字(例如 2–8 字或一个词组)跳过润色。
  • 长段落仍可用 Light/Structured。

期望

  • 未配置 LLM 时不再每次 toast「润色失败已插入原文」
  • 插入后方向键改错字不再卡顿
  • 有短输入模式或自动跳过短句润色

Activity

  1. linonetwo commented on Sep 5, 2026

    @linonetwo
    Author

    补充:插入后除了方向键卡顿,输入法中/英状态也会偶发没还原(打字直出英文,要按两下切换才回中文)。已单独开 issue,见后续链接。

  2. linonetwo commented on Sep 5, 2026

    @linonetwo
    Author

    输入法没还原的独立 issue:#1033

  3. HKLHaoBin commented on Oct 13, 2026

    @HKLHaoBin
    Collaborator

    @linonetwo Issue #1032 的修复已完成,最终提交为 663c6dda,麻烦帮忙下载并测试:

    • Windows / macOS 产物工作流:Release Tauri workflow
      • Windows:openless-windows-x64
      • macOS Apple Silicon:openless-macos-aarch64
      • macOS Intel:openless-macos-x86_64
    • Android APK 工作流:Android APK workflow
      • openless-android-release-arm64-v8a

    重点请验证:

    1. 未配置 LLM 时,直接插入 Raw ASR 文本,不出现“润色失败,已插入原文”提示,也不产生 polishFailed 记录。
    2. 开启短文本跳过润色并设置 polishSkipMaxChars 后,短普通口述不调用润色;较长文本仍正常润色。
    3. 翻译、Voice Edit 和 Cloud Note 仍保留各自需要的 LLM 语义。

    测试结果或新的问题可以直接回复在这里,谢谢!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions