baiqing
d1aff0f97c
Merge remote-tracking branch 'origin/main' into beta
...
# Conflicts:
# openless-all/app/package-lock.json
# openless-all/app/package.json
# openless-all/app/src-tauri/Cargo.lock
# openless-all/app/src-tauri/Cargo.toml
# openless-all/app/src-tauri/tauri.conf.json
2026-05-17 18:18:23 +08:00
baiqing
d6d1fee77e
chore(repo): 移除内部 AI 协作 / 规划 / 审计文档,仅本地保留
...
公共仓库不再发布 CLAUDE.md / AGENTS.md / 内部 audit + roadmap +
github-tracking + superpowers + windows-*-tracking 等共 45 个文件。
- 全部用 `git rm --cached`,本地仍保留以供日常协作;
- `.gitignore` 加规则防止再次被 `git add` 拉回;
- 用户 docs(volcengine-setup / tauri-csp / references / 图片素材)
以及 ISSUE_TEMPLATE / workflows / pull_request_template 仍保留发布。
密钥层面审计同步完成:未发现 API key / token / 私钥泄露,
tauri pubkey 与 GitHub OAuth client_id 均为设计上公开值。
2026-05-16 22:07:30 +08:00
TRIP
e33fc0047b
Merge pull request #450 from Open-Less/beta
...
release: 1.3.2 stable — marketplace UI gated, ASR correction upgraded
2026-05-15 23:03:04 +08:00
baiqing
883ff74cf4
docs(marketplace): add style pack marketplace planning doc
...
预留风格包市场的 HTTP API + IPC 契约 + DTO + 鉴权/缓存/安全策略。
IPC stub 未实装;后端 endpoint 选型 + 服务端工程化待定。
2026-05-14 14:59:36 +08:00
baiqing
f89fd2ed22
chore(release): merge beta for Stable 1.3.1
2026-05-14 12:58:48 +08:00
baiqing
effa12e5f1
fix(hotkey): Wayland 下用 CLI 触发录音,修复 #420
...
Wayland 协议禁止应用监听非聚焦窗口键盘事件,原 rdev 路径必然失效。
保留 X11 rdev 不动;Wayland 下走 stub HotkeyAdapter(不监听键盘),
通过 tauri-plugin-single-instance 把 `openless --toggle-dictation`
等 CLI 命令的 argv 转给主实例 coordinator,由桌面环境快捷键设置
绑定该命令实现全局触发。Settings → 录音 mount 时 invoke
is_wayland_cli_mode 拉状态,显示绑命令引导 callout
(GNOME / KDE / Hyprland / sway 四段步骤)。
新增:
- src-tauri/src/cli.rs — CLI intent 解析 + 10 个单测
- docs/issue-420-wayland-hotkey-research.md — 方案调研文档
改动:
- hotkey.rs Linux 分支:Wayland 检测命中走 WaylandCliAdapter stub
(不再硬拒绝 wayland_unsupported)
- lib.rs:single-instance 回调路由 argv → dispatch_cli_intent
- commands.rs:新增 is_wayland_cli_mode IPC command
- coordinator.rs:dictation_phase_for_cli + cli_toggle_qa_panel
暴露 CLI 入口,复用现有状态机
- Settings.tsx:WaylandHotkeyCallout 组件 + invoke pull 模型
- i18n × 5 locale:settings.recording.wayland.* 共 14 个键
macOS CGEventTap 和 Windows RegisterHotKey 路径零触碰。
2026-05-13 12:34:52 +08:00
H-Chris233
4d9b63aab3
Route qwen-asr through the organization fork
...
Keep the submodule pinned to the reviewed commit while moving the fetch URL to Open-Less/qwen-asr, then document the review checklist future upgrades must follow.\n\nConstraint: #301 identified the personal upstream submodule URL as a supply-chain risk.\nRejected: Updating the submodule commit together with the URL change | would mix provenance hardening with unreviewed upstream code changes.\nConfidence: high\nScope-risk: narrow\nDirective: Do not point .gitmodules back to antirez/qwen-asr; sync upstream into the organization fork and review the diff first.\nTested: gh repo view Open-Less/qwen-asr; git submodule update --init --recursive openless-all/app/src-tauri/vendor/qwen-asr; git diff --check; npm run build; cargo check --manifest-path src-tauri/Cargo.toml\nNot-tested: macOS INSTALL=0 ./scripts/build-mac.sh C-link verification.
2026-05-12 18:48:03 +08:00
baiqing
a74a5472b0
docs: 2026-05-10 audit + beta logic review snapshots
...
Snapshot two audit artifacts produced 2026-05-10:
- docs/audit-2026-05-10-validated.md — 21 audit items run against
the live source tree at openless-all/app/src-tauri/src/ with a
CONFIRMED / FALSE_POSITIVE / PARTIAL verdict per item plus the
exact file:line range that supports each verdict.
- docs/logic-review-2026-05-10.md — 5-path logic review of
origin/beta @ 400097ad covering startup, press/release, end-of-
session, capsule emit, and shutdown. Notable: at 400097ad the
emit_capsule fix from PR #389 was NOT yet an ancestor, so the
cpal audio-callback → AppKit/Win32 SIGTRAP risk was still live
on that snapshot (subsequent merges have addressed it; this doc
remains the dated record).
Both files are pure snapshots — no code changes here.
2026-05-10 18:13:46 +08:00
H-Chris233
717e694370
Constrain WebView loading with a minimal CSP
...
The desktop WebView no longer runs with an unexplained disabled CSP. The policy keeps scripts self-hosted, permits Tauri IPC and local Vite development connections, keeps provider/update/model networking on the Rust side, and documents the only unsafe allowance for React inline styles used by the existing pixel-aligned UI.
Constraint: Issue #226 requires csp:null to be replaced or explicitly bounded
Constraint: Provider validation, updater checks, and model downloads are Rust-side paths, not frontend fetch allowlist entries
Rejected: Keep csp:null with documentation only | weaker defense-in-depth and leaves the WebView effectively unconstrained
Confidence: high
Scope-risk: narrow
Directive: Do not add external provider domains to WebView connect-src unless a frontend fetch path is introduced
Tested: npm run build
Tested: npm run tauri -- info
Tested: cargo check --manifest-path src-tauri/Cargo.toml
2026-05-08 12:00:09 +08:00
millionart
f358260866
merge upstream main into windows local asr
2026-05-06 21:28:41 +08:00
baiqing
938c6a74b9
docs: 工程审计基线 (audit-2026-05-06.md)
...
完整工程审计报告(系统化逐项检查):
- 后端架构总评 + 5 个 P1/P2 优化点(coordinator/commands 拆分等)
- 前端 4 个 UI bug(tab 切换竞态、流式滚动打断 QA 等)
- 工程化水平评估 + 4 条改善(CI 门禁 / E2E / gitignore / 版本号)
→ 其中 3 条已在本 PR 实现(CI matrix + gitignore + bump-version 脚本)
- 多端逻辑与体验一致性表(macOS vs Windows 平台差异 vs 行为一致性)
- UI/后端 IPC 1:1 映射校验(全部命令前后端对齐 ✓)
- 改进建议汇总:P0 无;P1 5 项;P2 6 项
- 总结:项目整体健康,建议下迭代处理 coordinator 拆分 + 前端动画竞态
把这份基线纳入 git,让 main 留下 v1.2.20→v1.2.21 这一阶段的工程现状
锚点,后续审计有 baseline 对照。
2026-05-06 20:57:38 +08:00
millionart
2a03f15292
Merge remote-tracking branch 'upstream/main' into codex/windows-local-asr
...
# Conflicts:
# openless-all/app/src-tauri/Cargo.lock
# openless-all/app/src-tauri/src/commands.rs
# openless-all/app/src-tauri/src/coordinator.rs
# openless-all/app/src-tauri/src/lib.rs
2026-05-06 20:15:12 +08:00
millionart
9ebedebf7d
docs: plan Windows local ASR
2026-05-06 14:14:58 +08:00
millionart
844c1da098
docs: design Windows local ASR
2026-05-06 13:59:39 +08:00
millionart
f497cd4eb5
merge Windows TSF IME support
2026-05-03 19:24:21 +08:00
Cooper-X-Oak
f8c5337084
docs(windows): 为 issue 142 建立 capsule 占位
2026-05-02 12:04:28 +08:00
TRIP
68298d253c
Merge pull request #138 from Cooper-X-Oak/codex/auto-update-download-acceleration
...
fix(tauri): 加速自动更新下载
2026-05-02 09:51:13 +08:00
TRIP
124778036d
Merge pull request #145 from Cooper-X-Oak/codex/windows-cold-start-ui-pr
...
fix(windows): 收口 startup visible-ready 生命周期并进入评审观察
2026-05-02 09:48:13 +08:00
Cooper-X-Oak
d58c9500c6
docs(windows): add tracking docs for issue 139 and pr 140
2026-05-02 09:46:39 +08:00
TRIP
4d06f0cad2
Merge pull request #160 from Cooper-X-Oak/codex/continue-from-main
...
fix(windows): 延后剪贴板恢复并补齐插入回归覆盖
2026-05-02 09:32:45 +08:00
TRIP
cc030c8f88
Merge pull request #155 from Cooper-X-Oak/codex/issue-154-windows-dual-hotkey-pr
...
docs(windows): 跟踪双热键事件源生命周期
2026-05-02 09:30:17 +08:00
Cooper-X-Oak
e8df0cd971
docs(tracking): tighten windows insertion handoff
2026-05-02 05:42:52 +08:00
Cooper-X-Oak
4f6df56744
docs(windows): refresh pr 145 review-ready tracking summary
2026-05-02 05:25:11 +08:00
Cooper-X-Oak
229b871d27
docs(github-tracking): add dual-hotkey tracking docs
2026-05-02 05:19:11 +08:00
Cooper-X-Oak
da13e8ca37
docs(windows): add tracking docs for issue 98 and pr 145
2026-05-02 05:18:01 +08:00
Cooper-X-Oak
780a4a4483
docs(tracking): add windows clipboard restore handoff
2026-05-02 05:15:32 +08:00
Cooper-X-Oak
283cfdf9f3
test(windows): stabilize lifecycle regression coverage
2026-05-02 05:07:40 +08:00
Cooper-X-Oak
734c430339
test(windows): automate openless lifecycle evidence
2026-05-02 04:47:37 +08:00
Cooper-X-Oak
23207beb8e
docs(windows): record clipboard regression evidence
2026-05-02 04:25:17 +08:00
Cooper-X-Oak
02a3e0a225
fix(windows): delay clipboard restore after synthetic paste
2026-05-02 03:59:01 +08:00
Cooper-X-Oak
93cbd03305
docs(windows): 跟踪双热键事件源生命周期
2026-05-02 01:46:49 +08:00
Cooper-X-Oak
20d67da5c4
docs(windows): 为 issue 143 建立冷启动占位
2026-05-02 01:23:22 +08:00
Cooper-X-Oak
e34b3feee7
fix updater download acceleration
2026-05-01 23:47:58 +08:00
TRIP
b79a1e76b4
Merge pull request #119 from appergb/feat/selection-voice-qa
...
feat: 划词语音问答(Selection + Voice Q&A)— closes #118
2026-05-01 19:32:18 +08:00
millionart
271a51ad79
docs: plan temporary TSF IME implementation
2026-05-01 18:20:01 +08:00
millionart
7005a060b0
docs: design temporary TSF IME flow
2026-05-01 18:05:39 +08:00
baiqing
6e49281519
feat(qa): v2 多轮对话 + 流式输出 + macOS 浮窗修复
...
issue #118 v2 完整闭环。
## 多轮对话
- QaSessionState 加 messages: Vec<QaChatMessage> + panel_visible flag。
- Cmd+Shift+/ 现在 toggle 浮窗可见性(不再启动录音);浮窗可见时 rightOption
路由到 QA recording,不可见时仍是主听写。open_qa_panel / close_qa_panel 分离。
- 第一轮 user message 嵌选区原文(# 选区原文 / # 我的问题),之后只送提问。
- 前端 QaPanel 渲染气泡列表(user 蓝色靠右 / assistant 灰色 markdown 靠左)。
## 流式输出
- chat_completion_history → chat_completion_history_streaming:开 stream:true
+ SSE chunk 解析,on_delta 回调把每 chunk emit 成 qa:state{kind:"answer_delta"}。
- 前端 streamingAnswer state + StreamingAssistantBubble(带蓝色闪烁 caret)。
- answer 事件落定后清空 buffer,最终 messages 接管。
## macOS 浮窗修复(v1 一直存在的雷)
- capabilities/default.json 加 "qa" 到 windows 数组。否则前端 listen("qa:state")
被 Tauri 权限拦截,浮窗永远收不到事件。
- show_qa_window 用 NSWindow.orderFrontRegardless 替代 window.show()
(后者在 macOS 走 makeKeyAndOrderFront 抢 frontmost)。这样 capture_selection
的 AX read / Cmd+C fallback 能稳定从原 app 读到选区。
- 所有 ObjC msg_send 必须 wrap 进 app.run_on_main_thread —— macOS 26 对
NSWindow 主线程要求是硬断言(违反直接 SIGTRAP)。
- NSWindow.movableByWindowBackground=YES:浮窗任意空白处可拖。
- QA hotkey 注册在主线程:global-hotkey crate 在 macOS 用 Carbon
RegisterEventHotKey,事件回调要靠主 run loop dispatch。
## 胶囊状态同步
- QA 录音 / 转写 / 思考 同步推 capsule:state,让用户在底部胶囊也看到状态。
- schedule_capsule_idle 同时检查 dictation 和 QA 都 Idle 才隐藏,避免旧
dictation Done timer 把 QA 的胶囊误关。
- open_qa_panel 进入时先 emit Idle 清掉 dictation 残留 message + insertedChars。
## 设置页
- SelectionAsk 独立成一级 tab;预设减到 4 个 cmd+shift+ 系列(Option 跟主听写
共用,不放进 QA hotkey)。
- howto / hotkey / privacy 文案重写,反映 v2 的「先开浮窗、再 Option 录音」流程。
- prefs 默认 qaHotkey = cmd+shift+;。
## 后续路线图
- docs/qa-reasoning-roadmap.md:思考能力 v2.2 设计稿(C 路线 reasoner model
切换 + reasoning_content delta + 折叠思考块)。
2026-05-01 17:40:22 +08:00
Cooper-X-Oak
57efa8e64d
docs: add OpenLess settings screenshot
2026-05-01 17:34:17 +08:00
Cooper-X-Oak
a24ac6e380
docs: add simple Volcengine ASR setup guide
2026-05-01 17:31:31 +08:00
Cooper Oak and Cooper-X-Oak
7797d1479a
docs(windows): 补齐上游交付与测试工作流 ( #67 )
...
Co-authored-by: Cooper-X-Oak <Cooper-X-Oak@users.noreply.github.com >
2026-04-30 14:25:51 +08:00
baiqing
648df0579d
chore: 清理已废弃的 Swift 时代文档
...
用户明确:这些 docs/* 是已废弃 Swift 实现的产物,全平台 Tauri 后不再需要。
- 删除 18 份过时 architecture / requirements / release-notes / review 文档
- 不影响 Tauri 当前文档(CLAUDE.md / README / USAGE 仍在)
2026-04-30 12:51:50 +08:00
Chris233
82a24faa83
fix(hotkey): 收口桌面热键适配边界 ( #38 )
...
统一热键适配边界:macOS 保留 CGEventTap,Windows 改用原生 WH_KEYBOARD_LL hook,前端热键展示改为读取后端 capability/status。
2026-04-30 08:58:55 +08:00
baiqing
ff0c95d99c
release: v1.0.08 (build B1007)
2026-04-29 13:42:46 +08:00
baiqing
53cbdfbbff
chore: stop tracking planning docs and promo working dirs
...
把规划文档保留在本地,不再发布到公开仓库;同时把 promo working
目录纳入 ignore,避免误把 node_modules / 视频产物提交上去。
2026-04-29 09:53:37 +08:00
baiqing
e029f0bb17
release: v1.0.07 (build B1006)
2026-04-28 17:37:18 +08:00
baiqing
7ccda2b280
fix(updater): route settings update action
2026-04-28 13:35:38 +08:00
baiqing
c36ec22618
fix(help): correct GitHub URL + clean up FAQ / link layout
...
- HelpTab GitHub 链接 baiqing → appergb,老地址 404
- helpLink 不再把整段 URL 当 label(中间截断 + 和标题挤一行),
改成右侧「打开 ↗」按钮,hover tooltip 显示完整 URL
- helpFAQ Q/A 间距 4 → 8、加 lineSpacing 2、行 padding 9 → 11,
提升可读性
2026-04-28 13:28:50 +08:00
baiqing
cd744d5d9b
fix(dictionary): preserve hitCount when editing entry; refresh HelpTab copy
...
- DictionaryEditorSheet 保存时把原 hitCount 带回去,否则编辑词条会让命中数静默归零
- 帮助中心快速上手 / 常见问题里"火山 ASR"、"润色模式"指向已合并的 Tab,
改为指向"设置"和"风格"
- 加 1.0.04 release notes(B 系第一个版本,主体是 1697→ 多文件拆分)
Codex rescue 体检发现,发版前修。
2026-04-28 13:20:35 +08:00
baiqing
88a5a97812
feat: 1.0.03 — 侧边栏重构 + 词汇表 chip 布局 + 风格页 + 关掉自动学词
...
- 侧边栏 4 → 6 项:首页 / 历史记录 / 词汇表 / 风格 / 帮助中心 / 设置
- 词典 → 词汇表,整页改 chip 流式布局:phrase + hitCount,hover ✕ 删除,
批量输入(每行一个),重置统计 / 清除全部
- DictionaryEntry 加 hitCount + 兼容旧 dictionary.json 解码
- DictationCoordinator 在润色后扫描最终文本递增命中数;
删除 learnTerms 自动学词路径
- 润色模式 → 风格 (StyleTab):4 张模式卡 + 启用开关;
关闭时跳过 Ark 直接插入原文 (UserPreferences.polishEnabled)
- 帮助中心:快速上手 4 步、快捷键速查、FAQ、GitHub 外链
- 设置 Tab 合并 Volc ASR + Ark 凭据、录音、授权、隐私、关于 + 检查更新
- 胶囊:NSPanel 220×96, hasShadow=false;macOS 26 分支去掉 SwiftUI 阴影
→ 解决"红绿灯外圈黑边"
- 侧边栏视觉:strokeBorder 0.08 → 0.04、阴影 radius 16 → 6
→ 解决"灰色边栏 + 黑色卡顿"
- 首页底部新增今日概览 + 风格预览
2026-04-28 11:16:40 +08:00
baiqing
25ede6ce07
docs: add 1.0.02 release notes
2026-04-27 18:59:25 +08:00