## 问题描述 Windows 使用 **OpenLess 2.0.0-Beta.4+build.20260930** 的选区润色,输出方式为 **预览确认(previewConfirm)**,快捷键 **F8**。润色预览出现后只显示一条狭窄的标题栏,正文和“确认并替换”按钮不可见,无法正常检查结果后确认替换。 ## 背景与复现步骤 1. 在企业微信或 ChatGPT 的可编辑文本框内选中一段文字,保持原输入框焦点。 2. 使用 F8 触发选区润色,等待预览出现。 3. 实际出现紧凑条形窗口,只能看到“选区润色预览 可直接编辑;点击确认后才会替换原选区。”及关闭图标;没有可见的结果区和确认按钮。 4. 期望:显示完整润色结果面板及操作按钮,可以确认后替换原选区。 本地运行单一 OpenLess 实例,安装路径为 `D:\OpenLess\openless.exe`。当前为 Windows 11(具体 OS build、缩放比例本次未采集)。此前清理的是其他目录的备用可执行副本,未改变当前程序或配置;暂无证据支持清理行为导致此异常。 该版本将独立选区润色预览合并到 QA 面板,问题表现与合并后的窗口尺寸状态不一致相符。截图不能单独证明模型请求结果完整;没有用“仅显示标题”推断模型无输出。 ## 异常截图 <img width="480" height="80" alt="Image" src="https://github.com/user-attachments/assets/8d3d86ee-28e9-4eff-b6af-7b50a121ca06" /> ## 本地排查证据 - 近期日志多次显示企业微信和 ChatGPT 的选区获取成功,例如 `simulate-copy fallback OK`、`resolve used prefetch reason=prefetch_hit`,不是所有请求都停在选区读取阶段。 - 同时有少量 `selectionPolishNoSelection`,应作为独立的选区获取失败区分,不用于解释已经显示标题的预览裁切。 - 本地枚举 QA 原生窗口得到紧凑矩形 `(728,325,1224,414)`;**采集时该窗口已隐藏**,不是声称这是异常显示瞬间的完整测量。截图也呈类似紧凑布局。 ## 疑似原因及文件位置 以下已核对官方 **v2.0.0-Beta.4-tauri** 标签源码,但尚未通过修改后的程序完成端到端验证,故以疑似原因提交: 1. [`QaPanel.tsx:358–365`](https://github.com/Open-Less/openless/blob/v2.0.0-Beta.4-tauri/openless-all/app/src/pages/QaPanel.tsx#L358-L365):`expanded` 只考虑 embedded、submitted、messages、streamingAnswer、error 和 edit apply/revert,**未考虑 `polishResult !== null`**。 2. [`QaPanel.tsx:382–388`](https://github.com/Open-Less/openless/blob/v2.0.0-Beta.4-tauri/openless-all/app/src/pages/QaPanel.tsx#L382-L388):尺寸 effect 根据此 `expanded` 调用 `qaWindowSetExpanded`。 3. [`QaPanel.tsx:654–696`](https://github.com/Open-Less/openless/blob/v2.0.0-Beta.4-tauri/openless-all/app/src/pages/QaPanel.tsx#L654-L696):存在 `polishResult` 时,渲染分支却强制使用 `qa-capsule-shell is-expanded`,并在其中显示正文,造成 **CSS 已展开、原生窗口仍紧凑** 的可能不一致。 4. [`lib.rs:2944–2949`](https://github.com/Open-Less/openless/blob/v2.0.0-Beta.4-tauri/openless-all/app/src-tauri/src/lib.rs#L2944-L2949):润色预览复用 QA 窗口,通过 pending 标志和 shown 事件加载结果。 5. [`lib.rs:2535–2582`](https://github.com/Open-Less/openless/blob/v2.0.0-Beta.4-tauri/openless-all/app/src-tauri/src/lib.rs#L2535-L2582):原生高度依赖 expanded,紧凑/展开常量分别为 80/560。因此普通 QA 状态未触发展开时,润色结果可能落入约 80px 高度。 ## 建议修复与验证 - 将 `polishResult !== null` 纳入原生窗口展开条件,并检查首次懒创建时事件与加载顺序,及 closing/state 更新的竞态。 - 增加首次显示、确认/取消后重复显示、QA 与润色切换、不同 DPI/工作区条件的回归测试;确保正文及确认按钮可见。 - 单独核对文案:该分支结果使用 `aria-readonly=true` 的 div,但提示仍写“可直接编辑”。请明确支持编辑还是修改提示。
Activity
HKLHaoBin commentedon Oct 11, 2026
其实原来的 QA 窗口挺好用的,不知道为什么作者要改。我看一下能不能给他修了。
HKLHaoBin commentedon Oct 11, 2026
@huxiaoyuqn Issue 1172 的修复版本已经构建完成,麻烦帮忙下载测试并反馈结果。
修复提交:
8e2243d6(fix(qa): expand selection polish preview)产物下载:
.msi或.exe。Windows 端重点请验证:选区润色使用
previewConfirm或按 F8 后,QA 窗口是否能正常展开,完整显示润色正文以及“确认并替换”按钮,不再只显示约 80px 高的标题条。桌面端和 Android 构建均已通过,测试后请在本 Issue 下反馈结果。
HKLHaoBin commentedon Oct 11, 2026
因为我目前没办法复现这个问题,所以只能请你来测试了。
HKLHaoBin commentedon Oct 12, 2026
好吧,在我测试下没有问题了。但我真的真诚地建议你打开语音编辑功能,它所实现的功能显然比选区润色丰富得多。
huxiaoyuqn commentedon Oct 13, 2026