Repository navigation
Commit 17d3309
committed
fix(live): 记忆键改取净化前标题修复全屏路径跨会话语义
R-11 独立评审实测(控制方 §C51.4 授权):`source_window == None`(未选窗口/全屏)时,
档位记忆键取的是**已净化去重**的会话标题,而键空间是「课程/窗口标识」(前端写入侧
用的是检测卡的窗口标题)⇒ 去重后缀("(2)" 等)**逐会话派生**,一旦进键则同源第二次
会话就换了键 ⇒ 🔴 该路径的跨会话记忆**必读不回**(用户症状:选了档位、下次开课没记住)。
- 新增纯函数 `memory_key_for_start(source_window, session_title)`:窗口标题优先,
未选窗口时用**净化去重之前**的会话标题(取键点前移到 REQ-282 去重块之前)
- 登记该路径的记忆语义(如实):未选窗口无窗口级身份,键是前端占位标题
(`ClassroomPage` 传常量「实时课堂」),且检测卡在该路径不渲染 ⇒ UI 无写入口;
本路径的记忆只在**同一占位标题**下自洽,跨标题不迁移(符合「没有身份」)
- 判据 +3(`commands_live_tests.rs`):① `memory_key_prefers_window_title`(键规则,
含窗口优先/未选窗口两种路径)② 🔴 `none_window_path_tier_roundtrip_across_reload`
——`source_window == None` 路径:写入 → **重新 load**(= 新进程)→ `resolve_start_tier`
读回同一档;**负控**:无记忆 ⇒ `None`(不覆写 ⇒ 既有默认档行为)③ 🔴
`memory_key_taken_before_dedupe`(根因判据:键取值点必须在 `dedupe_title` 之前,
且 `let memory_title` 绑定**恰一处**——防后置同名键把前置键遮蔽)
- 同步豁免表 `commands_live.rs` 行 471 → 487(§C18.2 blob 构造)
门禁:`cargo test` 全量串行 + `cargo build` dead_code 0 + clippy 集合差异 + 三闸全绿
(未用 --no-verify)。前端本轮零改动(未跑 vitest;文件清单见报告)。1 parent 3d49342 commit 17d3309
3 files changed
Lines changed: 78 additions & 4 deletions
File tree
- app/src-tauri/src
- docs/standards
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
74 | 74 | | |
75 | 75 | | |
76 | 76 | | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
77 | 82 | | |
78 | 83 | | |
79 | 84 | | |
| |||
87 | 92 | | |
88 | 93 | | |
89 | 94 | | |
90 | | - | |
91 | | - | |
92 | | - | |
| 95 | + | |
93 | 96 | | |
94 | 97 | | |
95 | 98 | | |
| |||
171 | 174 | | |
172 | 175 | | |
173 | 176 | | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
174 | 190 | | |
175 | 191 | | |
176 | 192 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
69 | 69 | | |
70 | 70 | | |
71 | 71 | | |
72 | | - | |
| 72 | + | |
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
| |||
0 commit comments