Commit Graph
963 Commits
Author SHA1 Message Date
weikeyi cd9696d561 Fix active ASR settings sync ordering 2026-05-23 11:55:48 +08:00
weikeyi 529ec77f5f Fix Sherpa local ASR state sync 2026-05-23 00:41:41 +08:00
TRIP 1b8217eddb Merge pull request #521 from Open-Less/feat/settings-revamp
feat(settings): 设置界面重构 — 分节化 / 精简 / Beta 渠道 / 麦克风 / 市场登录
2026-05-22 23:33:46 +08:00
baiqing 99f22a6aee fix: ASR 切换强制覆盖 endpoint/model + 重试只限连接层失败
处理 PR-Agent 第 8 轮:
- ProvidersSection.onAsrProviderChange: asr.endpoint / asr.model 是所有 ASR 厂商
  共用的凭据槽,原「仅槽空时填」逻辑使跨厂商切换不生效(dropdown 切了、实际仍
  打旧厂商地址)。改为强制覆盖预设默认值,与 onLlmProviderChange 一致。
- net.rs send_with_retry: 重试范围从 is_connect() || is_request() 收窄到只剩
  is_connect()。is_request() 多为确定性失败(endpoint 配置错误等),重试 10 次
  只是徒增数秒延迟才暴露错误;连接层失败才是真正瞬时、值得重试的一类。
2026-05-22 23:05:18 +08:00
baiqing 00b2bd0a8d fix(settings): ProvidersSection 识别 sherpa-onnx-local 本地引擎
合并 beta 的 #504 引入了第三个本地 ASR 引擎 sherpa-onnx-local,但本分支的
ProvidersSection(早于 #504 拆出)只认 local-qwen3 / foundry-local-whisper。
sherpa-onnx-local 激活时 knownAsr 查不到 → 主 Card 回落显示 volcengine、
凭据字段也错。补齐 5 处:ASR_PRESETS 条目、visibleAsrPresets 过滤、isLocked、
anomalousNameKey、本地引擎不渲染云端凭据字段的分支判断。
2026-05-22 22:50:22 +08:00
baiqing 8986c5680b fix(settings): performSwitch 补 catch — 本地 ASR 切换失败不再裸抛
LocalModelSection.performSwitch 是 async、try/finally 无 catch,而调用方
(Qwen3 / Foundry / sherpa Toggle、禁用按钮)都是 void performSwitch(...)
即发即忘。setActiveAsrProvider / updatePrefs 失败会冒成未处理的 promise
rejection。补 catch + console.error 吞掉。
2026-05-22 22:28:53 +08:00
baiqing 74be27d3e2 fix(settings): provider 切换失败按后端是否已切来决定下拉框回滚
上一轮加的回滚无条件把下拉退回 committed provider。但 provider 切换是多步非原子
操作:若 setActiveLlmProvider 已成功、后续 updatePrefs / setCredential 才失败,
后端 active 已是新 provider,回滚下拉到旧的反而让「下拉显示旧 / 后端用新」。
改为记 backendSwitched 标志:仅当后端切换本身没成时才回滚下拉框,让下拉始终与
后端 active 一致。ASR 同理。
2026-05-22 22:14:11 +08:00
baiqing 038744fe40 fix(marketplace): 登录成功写 prefs 失败时补回 .catch
重构 OAuth 登录为 GithubLoginModal 后,onLoginSuccess / MarketplaceSection
onSuccess 用裸 void updatePrefs(...) 写 marketplaceDevLogin,丢掉了重构前
try/catch 里的失败日志 —— prefs 写入失败会冒成未处理的 promise rejection。
补回 .catch + console.warn,与重构前行为一致。
2026-05-22 22:00:24 +08:00
baiqing 0689442148 test(polish): 更新 structured prompt 测试以匹配重写后的事项数规则
types.rs 的 STRUCTURED_BUILTIN_PROMPT「事项数 → 输出形态」规则已重写(原「≤ 2 条」
拆成「仅 1 条 / = 2 条」两档),但 polish.rs 的两个 structured_prompt 测试仍断言旧
文案,CI 的 macOS / Linux cargo test 因此变红(Windows 偶然未跑到同批次)。
同步订正断言:
- 「事项 ≤ 2 条」→「事项仅 1 条」+「事项 = 2 条」
- 「不硬塞层级」→「输出连贯段落」(仅 1 条事项 → 连贯段落,语义等价)
本地 cargo test --lib:306 passed / 0 failed。
2026-05-22 21:44:56 +08:00
baiqing 2056ad81f0 Merge branch 'beta' into feat/settings-revamp
解决 LocalModelSection.tsx 冲突:beta 的 PR #504(Windows sherpa-onnx 本地 ASR)
改的是 AdvancedSection.tsx,而本分支已把它拆分重命名为 LocalModelSection.tsx。
合并保留本分支的拆分 + 文案精简,并并入 #504 的 sherpa-onnx-local 引擎行、
isOnSherpaOnnx / pendingNameKey / 禁用逻辑。其余文件由 git 自动合并。
2026-05-22 21:28:30 +08:00
baiqing 15b4fb15a5 fix(net): 超时不重试 + 网络探针单发 — 处理 PR-Agent 评审意见
- send_with_retry 不再重试 is_timeout():reqwest 的 is_timeout 也涵盖「请求已发出、
  等响应时超时」,此时服务端可能已收到并在处理,重试 POST/DELETE(marketplace
  点赞 / 删除等)会重复执行。只保留 is_connect / is_request 两类「请求未送达服务端」
  的重试;net.rs 文档原本宣称超时重试幂等安全 —— 该说法对超时不成立,一并订正
- check_network 改单发、不走 send_with_retry:每 30s 的状态探针走 10 次退避会在
  被过滤 / 黑洞网络下把探测拖到近一分钟、状态灯像卡死;瞬时误判由下个 30s 周期
  自动纠正。仍用 net::http() 共享连接池
2026-05-22 21:18:21 +08:00
baiqing 7dc1600c4c fix(settings): 处理 PR 审核意见 — 验证失败文案 / 切换回滚 / 计时器依赖
- ProvidersSection: 验证失败时显示 validateFailed 文案,不再对 result.ok=false
  误报「连接检查通过」
- ProvidersSection: LLM/ASR 切换失败时下拉框回滚到 committed provider,避免 UI
  停在新选项而后端仍是旧 provider;去掉 handler 末尾的 rethrow —— 作为 SelectLite
  onChange 是即发即忘调用,rethrow 会变成未处理的 promise rejection
- CheckUpdateButton: 自动收起计时器只依赖 status,不再因 useAutoUpdate 每次渲染
  返回新 updater 对象而被反复 clear/reset
- 新增 i18n key settings.providers.validateFailed(zh-CN/zh-TW/en/ja/ko)
2026-05-22 21:09:11 +08:00
baiqing 52c49fcfad feat(settings): 设置界面重构 — 分节化 / 精简 / Beta 渠道 / 麦克风 / 市场登录
将 2200 行的 Settings.tsx 单体拆为 pages/settings/ 下的按节文件(通用 / 服务 /
隐私 / 高级 / 关于),并对设置界面做整体精简与功能调整。

界面精简
- 移除各设置项冗长 / 多行描述(在 180px 标签列普遍折成多行),只留标签与控件
- 删除「个性化」独立 tab —— 仅剩字体大小一项、整页太空,并入「关于」
- 移除失效的「毛玻璃强度」滑块(其 CSS 变量无可见元素消费)

关于 / 更新
- 版本卡片图标右上方放「检查更新」按钮,固定查正式版(channel='stable')
- 「加入 Beta 渠道」迁到「高级」页底部、单独成节;开启后出现查测试版的检查按钮
- 检查中按钮内转圈;结果(已是最新 / 失败)只在按钮内呈现,卡片高度恒定,
  不再因状态文字 reflow 抽搐
- Rust app_check_update_with_channel 新增可选 channel 参数,两个按钮各查各渠道;
  后台 AutoUpdateGate 仍按 prefs.update_channel 走

麦克风选择
- 由全屏弹窗改为 SelectLite 下拉(与语言选择一致的「官方框」)
- SelectLite 增加 trailing / onOpenChange;新增 MicrophoneSelect —— 选中项右侧
  打勾、勾左侧实时音量条

市场登录
- 抽出共用 GithubLoginModal 与 ui/Modal,扩展市场与风格市场登录统一走弹窗
- 修复风格市场登录弹窗「先小后大」尺寸跳动(各阶段固定 minHeight)

弹窗动画
- 去掉开启动画里的 blur 滤镜(卡顿 / 闪烁),改纯 opacity + transform
- 设置弹窗切 tab 内容轻微淡入;各处弹窗动画时长 / 缓动统一到 global.css

网络
- 新增 net.rs:进程级共享 reqwest 客户端(连接池复用)+ 传输层失败指数退避重试
2026-05-22 20:56:06 +08:00
Chris233 2fcf45b8ac Merge pull request #504 from weikeyi/feat/windows-sherpa-onnx-local-asr
feat(windows): add sherpa-onnx local ASR
2026-05-22 12:38:21 +08:00
baiqingandClaude Opus 4.7 82ab2439fb chore(release): bump version to 1.3.4-12 (Beta) — 磨砂玻璃质感 + ASR/Windows/Linux 修复
自 v1.3.4-11-beta-tauri 以来的改动:

- feat(ui): 给划词追问框与语音胶囊加磨砂玻璃质感(#519)
- fix(linux): 修复 Linux 主窗口控件(#518 / issue #517)
- fix(windows): 缩短 Windows IME 提交超时(#514 / issue #491)
- fix(windows): 流式 SendInput 节流(#513 / issue #491)
- feat(asr): 新增更大的 Foundry Whisper 模型(#512 / issue #511)
- fix(asr): 修复智谱 ASR endpoint 处理(#510 / issue #507)
- fix(ui+network): 更新/登录/网络检测/市场加载四项修复
- fix(asr): 修复智谱批量 ASR 分片(#509 / issue #508)

本次只动版本号,逻辑改动已在上述 PR 落盘。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 08:52:37 +08:00
weikeyi 83221df6e5 Merge remote-tracking branch 'upstream/beta' into feat/windows-sherpa-onnx-local-asr
# Conflicts:
#	openless-all/app/src/i18n/en.ts
#	openless-all/app/src/i18n/ja.ts
#	openless-all/app/src/i18n/ko.ts
#	openless-all/app/src/i18n/zh-CN.ts
#	openless-all/app/src/i18n/zh-TW.ts
2026-05-22 00:15:23 +08:00
TRIP 32d7c22a8c Merge pull request #519 from Open-Less/feat/frosted-glass-overlays
feat(ui): 划词追问框与语音胶囊磨砂玻璃质感
2026-05-21 23:54:01 +08:00
baiqing a88860cd90 feat(ui): 给划词追问框与语音胶囊加磨砂玻璃质感
webview 无法模糊透明窗口背后的桌面(Tauri 上游限制 #2827/#10064/#6876),原 backdrop-filter 在 qa / capsule 透明浮窗里是死代码。改用纯静态 CSS 的「假毛玻璃」:半透明白底 + 分形噪点颗粒 + 内描边高光 + 柔和阴影,三平台像素一致、零运行时开销。

- tokens.css: 新增 --ol-frost-grain(不透明灰度分形噪点 data URI)
- global.css: 新增 .ol-frost 类,::before 叠噪点颗粒层
- QaPanel / Capsule: 外壳套用 .ol-frost,移除这两个面上死的 backdrop-filter
2026-05-21 23:26:13 +08:00
Chris233 4bfbfcf047 Merge pull request #518 from H-Chris233/fix/issue-517-linux-window-controls
Fix Linux main window controls
2026-05-21 19:51:56 +08:00
H-Chris233 37afec5ee2 Fix Linux main window controls 2026-05-21 19:30:02 +08:00
weikeyi c7011f7893 fix(windows): report extracted sherpa archive size 2026-05-21 18:37:15 +08:00
Chris233 ebc9d47717 Merge pull request #514 from H-Chris233/issue-491-ime-clipboard-followup
Shorten Windows IME submit timeout
2026-05-21 09:56:02 +08:00
H-Chris233 e939e75a19 Shorten Windows IME submit timeout 2026-05-21 09:52:54 +08:00
weikeyi 7072c30f69 test(windows): include sherpa stub in backend test crate 2026-05-21 09:46:27 +08:00
weikeyi 3bfd61cf1c feat(windows): add sherpa-onnx local ASR 2026-05-21 09:46:18 +08:00
Chris233 d71f73193a Merge pull request #513 from H-Chris233/issue-491-streaming-sendinput-pacing
Pace Windows streaming SendInput
2026-05-21 09:15:08 +08:00
H-Chris233 2876a2ea14 Pace Windows streaming SendInput 2026-05-21 08:55:22 +08:00
Chris233 62eb78e4a0 Merge pull request #512 from H-Chris233/issue-511-foundry-whisper-models
Add larger Foundry Whisper models
2026-05-21 08:43:35 +08:00
H-Chris233 c2bce10b6c Add larger Foundry Whisper models 2026-05-21 08:25:36 +08:00
Chris233 482984a8f8 Merge pull request #510 from H-Chris233/issue-507-zhipu-asr-url-error-ui
Fix Zhipu ASR endpoint handling
2026-05-20 21:09:21 +08:00
H-Chris233 7b39491a17 Fix Zhipu ASR endpoint handling 2026-05-20 20:55:08 +08:00
baiqingandClaude Opus 4.6 c729fc59e9 fix(ui+network): 更新/登录/网络检测/市场加载四项修复
1. 更新检查:超时从 8s 提至 15s,error 态展示具体错误原因 + 重试按钮
2. GitHub 登录:device flow 两个 HTTP 请求加 15s timeout,防网络差时永远卡住
3. 网络连通性:新增 check_network 命令(HEAD apic.openless.top + github.com),
   PermissionsSection 从硬编码"可用"改为真实探测 + 30s 轮询 + 离线重试
4. Marketplace:加载失败卡片增加重试按钮
5. i18n:五语言新增 networkOffline / settings.about.retryBtn

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-20 20:49:47 +08:00
Chris233 e889858759 Merge pull request #509 from H-Chris233/issue-508-zhipu-asr-chunking
Fix Zhipu batch ASR chunking
2026-05-20 18:55:28 +08:00
H-Chris233 06d340061c Fix zhipu batch ASR chunking 2026-05-20 18:40:52 +08:00
baiqing ce6818cc6f chore(release): bump version to 1.3.4-11 (Beta) — UI 多语言精简 + SavedToast 统一定位 + Windows 听写后 SendInput 降压
合并 #503(fix(windows): reduce SendInput pressure after dictation):
听写结束后降低 SendInput 调用压力,优化 coordinator/dictation/insertion 路径。

合并 #505(fix(ui): 统一 SavedToast 弹框位置与进出方向):
SavedToast 默认停靠右上角,新增 slideFrom 属性支持 right/top 两种进出方向,
SettingsModal 用 slideFrom="top" + absolute 锚定内容区。

合并 #506(refactor(ui): 精简多语言文案 + 设置/风格/市场界面与图标重构):
精简 en/ja/ko/zh-CN/zh-TW 过长功能描述文案,
风格包卡片与编辑器抽屉改用 framer-motion 进出动效,
Settings/Marketplace/shared/Icon 界面重构。

本次只动版本号,逻辑改动已在 #503 #505 #506 落盘。
2026-05-20 18:23:11 +08:00
Chris233 e2d915e5bd Merge pull request #503 from H-Chris233/issue-491-windows-sendinput-pacing
fix(windows): reduce SendInput pressure after dictation
2026-05-20 16:39:30 +08:00
TRIP 370eaa858e Merge pull request #506 from Open-Less/pr2/ui-i18n-refresh
refactor(ui): 精简多语言文案 + 设置/风格/市场界面与图标重构
2026-05-20 16:31:31 +08:00
TRIP e8f8ac0f59 Merge pull request #505 from Open-Less/fix/saved-toast-position
fix(ui): 统一 SavedToast 弹框位置与进出方向
2026-05-20 16:29:09 +08:00
H-Chris233 96a0ee4d3a chore(windows): clarify copy-only fallback status 2026-05-20 16:27:11 +08:00
baiqing fbeddc5a0a refactor(ui): 精简多语言文案 + 设置/风格/市场界面与图标重构
- i18n: 精简 en/ja/ko/zh-CN/zh-TW 过长的功能描述文案
- Style: 风格包卡片与编辑器抽屉改用 framer-motion 进出动效
- Settings / Marketplace / settings/shared / Icon: 界面重构
- tokens.css 与依赖随之微调
2026-05-20 16:19:27 +08:00
H-Chris233 358c8d41e2 fix(windows): pace Unicode insertion fallback 2026-05-20 16:00:17 +08:00
baiqing 1e4f6a5bed fix(ui): 统一 SavedToast 弹框位置与进出方向
- 默认停靠右上角(fixed top:20 right:28),与页头「风格市场/刷新/导入ZIP」
  按钮同区;淡蓝 pill、0.8s 自动收回
- 新增 slideFrom 属性:'right'(默认,屏幕右侧进出)/ 'top'(上方进出),
  始终"从哪来回哪去"
- SettingsModal 用 slideFrom="top" + absolute 锚内容区,借 overflow:hidden
  裁边实现"从屏幕外上方进出"
- Style 页移除 bottom-right 的 offsetStyle 覆盖,回归统一默认
2026-05-20 14:47:17 +08:00
H-Chris233 5bf197c359 Revert "fix(windows): add Unicode fallback mode"
This reverts commit db6c4bdbda.
2026-05-20 13:03:43 +08:00
H-Chris233 db6c4bdbda fix(windows): add Unicode fallback mode 2026-05-20 12:01:03 +08:00
H-Chris233 6ae3bfc452 fix(windows): reduce SendInput pressure during insert 2026-05-20 10:43:29 +08:00
baiqing b5dddb496a chore(release): bump version to 1.3.4-10 (Beta) — Windows 流式插入 12ms flush
合并 #502(fix(windows): buffer streaming SendInput events):
SSE delta 在 12ms 时间窗内合并后再调用 type_unicode_chunk,
显著降低 Windows 流式输入路径上的 SendInput 调用频率与 CPU 占用。
mpsc 由 tokio unbounded 切到 std sync::mpsc,typer 任务里
用 recv_timeout 实现 flush 窗口,断开/失败后仍能 drain 完剩余 delta,
并把缓冲写入逻辑抽到 flush_streaming_insert_buffer 单元函数。
本次只动版本号,逻辑改动已在 #502 落盘。
2026-05-19 21:28:15 +08:00
Chris233 2996913a3c Merge pull request #502 from H-Chris233/issue-491-windows-sendinput-pacing
fix(windows): buffer streaming SendInput events
2026-05-19 21:15:17 +08:00
H-Chris233 52ea7f5983 fix(windows): buffer streaming SendInput events 2026-05-19 20:53:23 +08:00
baiqing fbcf4993a1 chore(release): bump version to 1.3.4-9 (Beta) — Windows capsule/QA Acrylic 回退
回退 #487 引入的 Windows capsule/QA 浮窗 apply_acrylic 调用 (PR #496),
解决浅色背景下 220×84 胶囊出现深色矩形的视觉 bug。
本次只动版本号,不携带其他逻辑改动。
2026-05-19 14:52:49 +08:00
浩彬(^-^)andCursor 94fe8c7850 Fix/revert windows capsule qa acrylic (#496)
* chore(ci): nudge Actions to index release workflow on fork

Co-authored-by: Cursor <cursoragent@cursor.com>

* chore(ci): nudge Actions to index release workflow on fork

Co-authored-by: Cursor <cursoragent@cursor.com>

* chore(ci): nudge Actions to index release workflow on fork

Co-authored-by: Cursor <cursoragent@cursor.com>

* chore(ci): nudge Actions to index release workflow on fork

Co-authored-by: Cursor <cursoragent@cursor.com>

* chore: add CapsWriter to .gitignore for local voice inference reference

* fix(windows): revert capsule/qa Acrylic to remove dark host rect

Reverts the apply_acrylic blocks from #487. Full-window Acrylic
tinted the 220×84 capsule hitbox, causing a visible dark rectangle
around the pill on light backgrounds.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-19 14:31:06 +08:00