Skip to content

fix(workflow): 工作流画布内提示词输入框输入法(IME)中途失效 #468

Description

@xiaocheny214

现象

进入工作流画布后,在需要填写提示词(prompt)的交互场景中,使用中文输入法(IME)输入时,填写到一半输入法即失效,无法继续输入;需切换焦点或刷新页面才可能恢复。

影响范围

经测试,以下场景均会出现(不限于):

场景 输入框 aria-label
创建角色 · 填写角色描述 角色描述
确认/微调角色母版 角色母版微调描述
确认/微调动作首帧 动作首帧微调描述
添加自定义动作 动作描述

即:工作流画布内所有 prompt 类 textarea 均可能受影响,而非单一节点。

复现步骤

  1. 进入任意项目的工作流编辑器(/projects/:id/workflow 或等价入口)
  2. 定位到「角色设定」等需要填写提示词的节点卡片
  3. 点击提示词输入框,切换至中文输入法(如拼音、五笔等)
  4. 开始输入,持续输入若干字符(约「填写一半」时)
  5. 观察:候选框消失或无法再上屏,键盘输入无响应或只出现英文字母

期望行为

在整个输入过程中,IME 应保持稳定,可正常选词、上屏,直至用户主动切换输入法或离开输入框。

实际行为

输入进行一段时间后 IME 失效,无法继续中文输入。

环境(请维护者/报告者补充)

  • 操作系统(如 macOS / Windows)
  • 浏览器及版本
  • 输入法(如系统拼音、搜狗、微信输入法等)
  • 是否仅在 React Flow 画布内复现,其他页面 textarea 是否正常

可能相关代码

工作流编辑器节点卡片内的受控 textarea 均位于 React Flow 画布之上,例如:

  • frontend/src/pages/workflow-editor/index.tsx
    • CharacterSetupContent · 角色描述
    • CharacterTemplateContent · 角色母版微调描述
    • FirstFrameContent · 动作首帧微调描述
    • ActionMenu(custom)· 动作描述
  • frontend/src/pages/workflow-editor/workflow-editor-view.tsx · ReactFlow 画布容器

卡片容器已使用 React Flow 约定的 nodrag / nopan / nowheel 类,但 IME 组合输入(compositionstart / compositionupdate / compositionend)与画布级键盘事件、受控组件重渲染之间的交互尚未排查。

初步排查方向(供参考)

  1. React Flow / 画布是否捕获 keydown 等事件,在 IME 组合期间打断输入
  2. 受控 textareaonChange 在 composition 未结束时更新 state,导致组合态被 React 重渲染打断
  3. 工作流轮询、SSE 或节点投影更新导致输入组件 remount,焦点/IME 上下文丢失

优先级建议

影响核心创作路径(角色与动作 prompt 填写),建议按 P1 或更高优先级处理。


报告来源:用户实测反馈(2026-08-20)

Metadata

Metadata

Labels

bugSomething isn't working

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions