Commit Graph
959 Commits
Author SHA1 Message Date
aeoformandClaude Opus 4.7 52084999a6 fix(review): Claude Code 审查问题修复
1. NameOwnerChanged 回调内 sleep 移到独立线程,不再阻塞 DBus 事件循环
2. emit_capsule 首次 set_aux_down spawn 加 LAST_AUX 状态守卫
3. ensure_plugin_installed 注释更新为"总是覆盖"语义
4. NameOwnerChanged match rule 移除不支持的 arg0,改回调内过滤

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 13:28:56 +08:00
aeoformandClaude Opus 4.7 1b0e41c206 docs: NameOwnerChanged 快照语义注释
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 21:32:14 +08:00
aeoformandClaude Opus 4.7 77455cf268 fix(build): sync_custom_dictation_to_plugin 加上 #[cfg(target_os = "linux")]
函数体内引用了 crate::linux_fcitx,非 Linux 平台该模块不存在导致 E0433。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 21:29:43 +08:00
aeoformandClaude Opus 4.7 163327e17b fix(review): NameOwnerChanged 支持自定义组合键 + 总是覆盖旧版插件
1. start_dictation_signal_listener 新增 custom_trigger_key 参数,
   NameOwnerChanged 和初始同步都通过 resync_main_binding 分支处理
   自定义组合键 vs 预设修饰键
2. ensure_plugin_installed 去掉"已安装即跳过"检查,AppImage 每次启动
   都覆盖最新 .so + .conf,确保新 DBus 方法不会因旧插件丢失

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 21:20:19 +08:00
aeoformandClaude Opus 4.7 c4cb3c9ee5 fix(review): DBus 调用挪出音频线程 + 安装检查同步校验 .conf
1. set_aux_down/clear_aux_down 从 emit_capsule(被 cpal 音频回调调用)
   移到独立线程执行,避免同步 DBus I/O 阻塞录音导致卡顿
2. is_plugin_installed_on_disk 同时检查 .so 和 .conf,孤立的 .so
   没有 addon 配置 fcitx5 不会加载

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 21:05:01 +08:00
aeoformandClaude Opus 4.7 7403597be8 fix(review): 修复 PR review 指出的 Stale Status 和 Retry Race
1. clearAuxDown 找不到 IC 时也会清掉 lastAuxText_,避免 FocusIn 时
   重放旧状态(如"已插入"→切窗口→突然显示"已插入")
2. 300ms 延迟重试前检查 LAST_AUX,状态已变则跳过,避免旧文字覆盖

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 20:58:38 +08:00
aeoformandClaude Opus 4.7 54f07d85e9 fix(bailian): 修复 DashScope ASR 部分语句重复输出的问题
两个根因:
1. end_time 判断用 is_some() 而非 > 0:API 对 interim 结果设 end_time:0,
   导致所有中间结果被当成 final 推入 segments
2. 累积文本拼接:同一句 API 多次发送("你"→"你好"→"你好吗"),
   每次作为新 segment push,join 后变成重复拼接

修复:
- end_time 改用 > 0 判断真正的句子结束
- 引入 sentence_id → BTreeMap 按序存储,同一 sentence_id 后到覆盖前到

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 20:49:11 +08:00
aeoformandClaude Opus 4.7 7635df5df5 fix(test): 同步 capsule_show_strategy 单测的 Linux cfg
Linux 已从 NoActivate 列表移除(走 fcitx5 auxDown 状态提示),测试断言
需同步更新为 FallbackShow。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 20:48:49 +08:00
aeoformandClaude Opus 4.7 57a4919712 feat(linux): fcitx5 候选框听写状态提示 + AppImage 插件自动安装 + 热键启动容错
- fcitx5 插件新增 SetAuxDown/ClearAuxDown DBus 接口,在候选词列表下方
  显示听写状态文字(收音中→识别中→润色中→已插入),切窗口自动跟随焦点
- 优先使用当前焦点 IC 展示 auxDown,失焦 IC 降级兜底,避免面板不渲染
- flushUI 排空旧事件后再设 auxDown,防止按键事件竞态覆盖状态文字
- start_dictation_signal_listener 启动时等待 fcitx5 最多 30s,监听
  NameOwnerChanged 在 fcitx5 重启后自动重新同步快捷键绑定
- AppImage 打包 libopenless.so 为资源,启动时检测缺失自动安装到
  ~/.local/lib/fcitx5/ 和 ~/.local/share/fcitx5/addon/
- Linux 胶囊窗口不在 Wayland/X11 显示,状态完全走 fcitx5 输入面板

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 20:40:40 +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
baiqing bd5dcb8a57 chore(release): bump version to 1.3.4-8 (Beta) + fcitx5 路径抓取/安装前缀修复
v1.3.4-7 显示:fcitx5 包名替换后构建本身已成功([100%] Built target openless),
但下一步立刻 exit 1。根因有两个:

1) cmake -LA 抓不到值
   fcitx5 5.0.14 把 FCITX_INSTALL_ADDONDIR / FCITX_INSTALL_PKGDATADIR
   设为普通变量而非 CACHE,cmake -LA 看不到 → grep 退码 1 → set -e -o pipefail
   触发整步退出。
   改从 configure 阶段 message(STATUS ...) 的输出抓(CMakeLists.txt 已经打印)。

2) CMAKE_INSTALL_PREFIX 默认 /usr/local 路径错
   fcitx5 在 Ubuntu 上运行时只扫 /usr/lib/<arch>/fcitx5/,默认 prefix=/usr/local
   会让 .deb 把插件安到 /usr/local/lib/fcitx5/,运行时找不到。
   显式 -DCMAKE_INSTALL_PREFIX=/usr 强制 Debian 系标准路径。
   历史 v1.3.4-3 其实也是这条 bug 路径,只是 cmake -LA 那行先挂掉没人意识到。

提取失败时打印 cmake-configure.log 末 50 行作为诊断。
2026-05-18 21:34:38 +08:00
baiqing 9bae92b4df chore(release): bump version to 1.3.4-7 (Beta) + Linux fcitx5 包名拆分修复
v1.3.4-6 加的 apt-cache search 诊断揭示真因:Ubuntu 22.04 universe 在
v1.3.4-3 (Apr 2026) 之后把 fcitx5-dev 这个 meta 包移除了,源里只剩拆分后的
libfcitx5{core,utils,config}-dev 等子包。这也解释了 -4/-5/-6 为何连挂同样错误
"Unable to locate package fcitx5-dev":根本就找不到这个 umbrella 包了。

CMakeLists.txt 实际只 find_package(Fcitx5Core / Fcitx5Utils / Fcitx5Module),
对应:
  libfcitx5core-dev
  libfcitx5utils-dev
  fcitx5-modules-dev
另外 fcitx5 CMake config 文件依赖 KDE 的 extra-cmake-modules (ECM),
和 libfcitx5config-dev 作为传递依赖一起补上。

诊断块保留(apt-cache search / os-release / sources.list.d),未来若再变包名
能立刻拿到证据。
2026-05-18 21:22:43 +08:00
baiqing 1960e0d602 chore(release): bump version to 1.3.4-6 (Beta) + 修 Linux CI fcitx5-dev 安装
v1.3.4-4 / -5 的 Linux 构建在 "Build fcitx5 plugin" 步骤连挂两次,
错误一致:"E: Unable to locate package fcitx5-dev"。同一 job 前面的
"Install Linux bundle deps" 步骤明明已经 apt-get update + 装好了一堆
universe 包,到 fcitx5 这步突然找不到 —— 表象与 GitHub Actions
ubuntu-22.04 runner 镜像弃用过渡期里 apt 元数据漂移的现象一致。

release-tauri.yml "Build fcitx5 plugin" 步骤增加三层防御:
  1) sudo add-apt-repository -y universe(已启用则 no-op)
  2) 本步骤内重新 sudo apt-get update,独立于上游 step 缓存
  3) 安装失败时打印 apt-cache policy / search / os-release / sources.list.d
     便于以后排查

同 commit 同时 bump 五处版本到 1.3.4-6 重发,让 PR #487/#488/#489
三个 Windows P0 修复带上 Linux 包一起进 Beta 通道。
2026-05-18 20:56:58 +08:00
baiqing 801bc0089b chore(release): bump version to 1.3.4-5 (Beta) — Windows P0 三连修
包含 PR #487 / #488 / #489 三个修复,供 Windows 实机验证:

- #489 快捷键二次按键失效(toggle/stop 失灵,只能 ESC)
  → coordinator.rs hotkey_bridge_loop 改 block_on 顺序 await
- #487 capsule/qa 透明遮罩看不清
  → lib.rs Windows 下追加 apply_acrylic 兜底
- #488 autostart catch fall-through 复活主窗口(#468 残留)
  → App.tsx catch 加 return + 改善 warn 诊断
2026-05-18 20:23:18 +08:00