Skip to content

Commit 001d148

Browse files
committed
fix(live): 修复采集浮窗启动自显/锁定自解锁与主窗隐藏链路
预创建浮窗误传 precreated=false(启动即显示抢焦点);浮窗出现→主窗隐藏、收起→回显(不留在无可见窗口);锁定态浮窗不可点且主窗已隐藏——引入全局快捷键 Ctrl+Shift+F(ADR-025,tauri-plugin-global-shortcut,注册窗口期=浮窗打开期)+ float_toggle 三态单一语义(防主窗键与全局键双触发);浮窗窗口级 CSS 重置(body 8px margin + 100vh 溢出 → 两侧透明条+滚条)。新增状态机单测;v0.12.6 文档/CHANGELOG/索引/版本号。
1 parent c7184e0 commit 001d148

14 files changed

Lines changed: 454 additions & 82 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,14 @@
55

66
## [Unreleased] - 2026-08-23
77

8+
### v0.12.6 采集浮窗显隐链路修复 + 锁定自解锁(2026-08-23 交付,详见 [docs/versions/v0.12.6.md](docs/versions/v0.12.6.md))
9+
10+
- **P0 浮窗启动自动显示(用户报告)**:setup 预创建浮窗误传 `precreated=false` → `visible(true)` + 抢焦点——浮窗应用启动即出现。修复:隐藏预创建(失败仍回落懒创建),浮窗只在用户选择(按钮/快捷键)时出现
11+
- **浮窗出现 → 主窗隐藏**:用户要求"出现后主页面隐藏";打开浮窗后主窗隐藏,收起/停止采集/回主窗一律回显(show+unminimize+focus——绝不把用户留在无可见窗口)
12+
- **锁定自解锁(ADR-025)**:点击穿透是窗口级能力(锁定态浮窗收不到鼠标事件),tauri 2.11.5 无 `set_cursor_hit_test`(分区点击穿透缺失)——引入 `tauri-plugin-global-shortcut`:Ctrl+Shift+F **全局快捷键**(浮窗打开期间注册/收起注销,任意焦点可解锁);三态语义收拢到 Rust `float_toggle_core`(关→开 / 开未锁→收起 / 开已锁→解锁)+ `float_toggle` 命令,主窗按钮/快捷键共用同一出口(防主窗键+全局键双触发双翻转);锁定态浮窗显示"🔒 已锁定"提示
13+
- **浮窗两侧透明区 + 最右滚条**:无全局 CSS 下 body 默认 8px margin + 100vh 溢出 → 左右透明条 + 滚动条——浮窗组件注入窗口级重置(margin 0 / overflow hidden / 100%)
14+
- 验证:Rust 新增 `float_next_action_machine` 单测(三态状态机);`cargo check` 通过;`tsc --noEmit` 零错误;vitest 全绿
15+
816
### v0.12.5 AI 精修线路修复:工作台采纳前右侧恒空 + 精修流程优化(2026-08-23 交付,详见 [docs/versions/v0.12.5.md](docs/versions/v0.12.5.md))
917

1018
- **P0 采纳前工作台右侧恒空(用户报告)**:精修成功 → 「打开工作台」→ 左侧规则版有内容、右侧精修版空("尚未精修"占位)。根因:`refine_workbench` 的精修版只按**已落库笔记**取(`find_note_by_session`),采纳前笔记不存在 → `None`;前端持有的 `AiRefineResult` 未进入数据源;且任务成功事件先于 DB 落库(竞态)。修复:`refine_workbench` 新增可选 `refine_result` 参数(调用方内存结果,消除竞态)→ 新增 `Db::find_latest_unadopted_refine`(`ai_tasks` 未采纳成功任务按会话取最新——重启后仍可回显)→ 已落库笔记最新版本,三级数据源;前端 `RefineWorkbench` 携带 `taskResult` 时回传 `refineResult`;采纳前成本不虚假回填

‎app/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "app",
33
"private": true,
4-
"version": "0.12.5",
4+
"version": "0.12.6",
55
"type": "module",
66
"scripts": {
77
"dev": "vite",

‎app/src-tauri/Cargo.lock‎

Lines changed: 42 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎app/src-tauri/Cargo.toml‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "entropydecrease"
3-
version = "0.12.5"
3+
version = "0.12.6"
44
description = "熵减 - 视频知识提取与持久化(本地优先)"
55
authors = ["Aparencia"]
66
edition = "2021"
@@ -59,6 +59,9 @@ tauri-build = { version = "2", features = [] }
5959
tauri = { version = "2", features = ["protocol-asset"] }
6060
# 三维复审 #8:tauri-plugin-opener 已移除(无外链打开需求,收窄 IPC 攻击面)
6161
tauri-plugin-dialog = "2"
62+
# v0.12.6(ADR-025):浮窗全局快捷键 Ctrl+Shift+F——锁定(点击穿透)后浮窗
63+
# 自身不可点,主窗又随浮窗隐藏,全局键是唯一自解锁路径(进程级热键,采集中生效)
64+
tauri-plugin-global-shortcut = "2"
6265
serde = { version = "1", features = ["derive"] }
6366
serde_json = "1"
6467
thiserror = "2"

0 commit comments

Comments
 (0)