Skip to content

Commit 587720e

Browse files
committed
fix(ui): 界面文案不再外显会话内部 ID
用户指令:会话不外显 ID。实时捕获开始/停止状态、课堂助手捕获提示、融合完成卡片、图文采集三类提示、视频导入提示、AI 任务中心 refine 行共 9 处「会话 #N」移除;列表保留 display_no 显示序号(与内部 id 解耦)。版本 0.12.7;tsc 零错误、vitest 92 通过。
1 parent 30a7502 commit 587720e

10 files changed

Lines changed: 57 additions & 12 deletions

File tree

‎CHANGELOG.md‎

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

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

8+
### v0.12.7 会话内部 ID 不外显(2026-08-23 交付,详见 [docs/versions/v0.12.7.md](docs/versions/v0.12.7.md))
9+
10+
- **会话内部 id 不再外显(用户要求)**:实时捕获开始/停止状态、课堂助手实时捕获提示、融合完成直达卡片、图文采集开始/采集中/已保存提示、视频导入完成提示、AI 任务中心 refine 任务行——全部去掉「会话 #N」;仅保留会话列表显示序号(display_no,与内部 id 解耦)
11+
- 验证:`tsc --noEmit` 零错误;vitest 全绿
12+
813
### v0.12.6 采集浮窗显隐链路修复 + 锁定自解锁(2026-08-23 交付,详见 [docs/versions/v0.12.6.md](docs/versions/v0.12.6.md))
914

1015
- **P0 浮窗启动自动显示(用户报告)**:setup 预创建浮窗误传 `precreated=false` → `visible(true)` + 抢焦点——浮窗应用启动即出现。修复:隐藏预创建(失败仍回落懒创建),浮窗只在用户选择(按钮/快捷键)时出现

‎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.6",
4+
"version": "0.12.7",
55
"type": "module",
66
"scripts": {
77
"dev": "vite",

‎app/src-tauri/tauri.conf.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "https://schema.tauri.app/config/2",
33
"productName": "Entropydecrease",
4-
"version": "0.12.6",
4+
"version": "0.12.7",
55
"identifier": "com.entropydecrease.app",
66
"build": {
77
"beforeDevCommand": "npm run dev",

‎app/src/components/AiTaskPanel.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ export default function AiTaskPanel() {
147147
{badge.text}
148148
</span>
149149
<span style={{ color: "#374151", flex: 1, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }}>
150-
{t.opType === "refine" ? `会话 #${t.refId}` : `笔记 #${t.refId}`}
150+
{t.opType === "refine" ? "会话" : `笔记 #${t.refId}`}
151151
{t.model && <span style={{ color: "#9ca3af" }}> · {t.model}</span>}
152152
</span>
153153
<span style={{ color: "#9ca3af", width: 52, textAlign: "right" }}>{fmtMs(t.elapsedMs)}</span>

‎app/src/components/ClassroomRightPane.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ export default function ClassroomRightPane({
5959
{fusedSessionId && (
6060
<div style={{ padding: "12px 16px 0", maxWidth: 640 }}>
6161
<div style={{ display: "flex", alignItems: "center", gap: 8, border: "1px solid #99f6e4", background: "#f0fdfa", borderRadius: 8, padding: "8px 12px" }}>
62-
<span style={{ fontSize: 12, color: "#0f766e" }}>✅ 融合完成(会话 #{fusedSessionId})</span>
62+
<span style={{ fontSize: 12, color: "#0f766e" }}>✅ 融合完成</span>
6363
<button
6464
onClick={() => onOpenSessions?.(fusedSessionId)}
6565
style={{ ...btn, marginLeft: "auto", background: "#0d9488", color: "#fff", border: "none", borderRadius: 6 }}

‎app/src/components/PhotoCapturePanel.tsx‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export default function PhotoCapturePanel({ onOpenSessions, onStatus }: Props) {
5555
setBaseUrl("");
5656
setMsg("");
5757
setPhase("collecting");
58-
onStatus(`图文采集已开始(会话 #${id})`);
58+
onStatus("图文采集已开始");
5959
} catch (e) {
6060
onStatus(`开始采集失败: ${e}`);
6161
}
@@ -164,7 +164,7 @@ export default function PhotoCapturePanel({ onOpenSessions, onStatus }: Props) {
164164
{phase === "collecting" && sessionId != null && (
165165
<>
166166
<p style={{ fontSize: 11, color: "#0f766e", margin: "0 0 6px" }}>
167-
会话 #{sessionId} 采集中 · 已截 {count} 张
167+
图文采集中 · 已截 {count} 张
168168
</p>
169169
{lastImageRef && baseUrl && (
170170
<img
@@ -189,7 +189,7 @@ export default function PhotoCapturePanel({ onOpenSessions, onStatus }: Props) {
189189
)}
190190
{phase === "done" && sessionId != null && (
191191
<>
192-
<p style={{ fontSize: 11, color: "#047857", margin: "0 0 6px" }}>✅ 图文会话 #{sessionId} 已保存({count} 张截图)</p>
192+
<p style={{ fontSize: 11, color: "#047857", margin: "0 0 6px" }}>✅ 图文会话已保存({count} 张截图)</p>
193193
{onOpenSessions && (
194194
<button
195195
onClick={() => onOpenSessions(sessionId)}

‎app/src/components/VideoImportPanel.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ export default function VideoImportPanel({ onOpenSessions }: { onOpenSessions?:
109109
{error && <p style={{ fontSize: 11, color: "#dc2626", margin: "6px 0 0", wordBreak: "break-all" }}>{error}</p>}
110110
{sessionId && (
111111
<p style={{ fontSize: 11, color: "#2563eb", margin: "6px 0 0" }}>
112-
✅ 已导入会话 #{sessionId},可到「会话」页查看时间轴
112+
✅ 已导入会话,可到「会话」页查看时间轴
113113
{/* v0.11.7:完成直达(与图文采集面板共用交互) */}
114114
{onOpenSessions && (
115115
<button

‎app/src/pages/ClassroomPage.tsx‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ export default function ClassroomPage({ onOpenSessions }: { onOpenSessions?: (se
304304
setLiveActive(true);
305305
setLiveSessionId(id);
306306
setFusedSessionId(null); // 新会话开始:清除旧融合直达卡片
307-
setStatus(`实时捕获已开始(会话 #${id})`);
307+
setStatus("实时捕获已开始");
308308
} catch (e) {
309309
// 防御性恢复(修复反馈):UI 与后端状态不同步(事件丢失/竞态)时,
310310
// 查询真实状态恢复按钮语义,避免"假空闲"下重复点击被后端拒绝
@@ -328,11 +328,11 @@ export default function ClassroomPage({ onOpenSessions }: { onOpenSessions?: (se
328328
// 停止过渡期:面板保持显示(live:status stopped 到达后由监听清除)
329329
setStopping(true);
330330
try {
331-
const id = await invoke<number | null>("stop_live_session");
331+
await invoke<number | null>("stop_live_session");
332332
setLiveActive(false);
333333
setLiveSessionId(null);
334334
setLivePaused(false);
335-
setStatus(id ? `已停止会话 #${id},融合完成后可到「会话」页查看` : "无活动会话");
335+
setStatus("已停止会话,融合完成后可到「会话」页查看");
336336
// v0.12.0 M6:停止后自动关闭采集浮窗(若已打开)
337337
void invoke("close_capture_float").catch(() => undefined);
338338
// P3:停止后重新预热(页面仍在,下一次开始同样秒启)
@@ -586,7 +586,7 @@ export default function ClassroomPage({ onOpenSessions }: { onOpenSessions?: (se
586586
</>
587587
)}
588588
{liveSessionId && (
589-
<p style={{ fontSize: 11, color: "#6b7280", margin: "6px 0 0" }}>会话 #{liveSessionId}(可到「会话」页查看)</p>
589+
<p style={{ fontSize: 11, color: "#6b7280", margin: "6px 0 0" }}>实时捕获中(可到「会话」页查看)</p>
590590
)}
591591
</div>
592592

‎docs/versions/README.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
| v0.12.4 | [v0.12.4.md](./v0.12.4.md) — 旧改动完整性修复:视频会话画面要点纯图落地(删直播/导入两条残留 region OCR,关键帧纯图归档,展示层按 kind 分派)+ 笔记预览时间戳锚点 chip 化(renderTimestampAnchors 接入两个轻量字符串渲染器) | 版本文档(代码已交付 2026-08-23,真机验收待执行) |
3737
| v0.12.5 | [v0.12.5.md](./v0.12.5.md) — AI 精修线路修复:工作台采纳前右侧恒空(refine_workbench 三级数据源 + 未采纳任务持久化兜底)+ 线路优化(完成即自动打开工作台 / 采纳回传 taskId / 重新生成走父级管线) | 版本文档(代码已交付 2026-08-23,真机验收待执行) |
3838
| v0.12.6 | [v0.12.6.md](./v0.12.6.md) — 采集浮窗显隐链路修复:启动自动显示(预创建参数传反)+ 浮窗出现→主窗隐藏/收起→回显 + 锁定自解锁(ADR-025:全局快捷键 Ctrl+Shift+F,float_toggle 单一语义)+ 浮窗窗口级 CSS 重置(两侧透明条/滚条) | 版本文档(代码已交付 2026-08-23,真机验收待执行) |
39+
| v0.12.7 | [v0.12.7.md](./v0.12.7.md) — 会话内部 ID 不外显:采集/导入/融合/任务中心等用户可见文案全部去掉「会话 #N」,仅保留显示序号 display_no(与内部 id 解耦) | 版本文档(代码已交付 2026-08-23) |
3940
| v0.13 | [v0.13.md](./v0.13.md) — 大目标版本系列:知识体系层(v0.13.0 理念修订批/ADR-024 / v0.13.1 体系基建 / v0.13.2 概念双面体 / v0.13.3 决策与应用 / v0.13.4 审计与整合;方案 B:全局+领域双层、组仍唯一容器、REQ-202~212) | 系列文档(已立项 2026-08-23,开发未启动,REQ-146 门控) |
4041

4142
## 沉淀规则

‎docs/versions/v0.12.7.md‎

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# v0.12.7:会话内部 ID 不外显
2+
3+
> 状态:代码已交付(2026-08-23)
4+
> 依据:用户指令「会话不外显 ID」(2026-08-23)
5+
6+
## 一句话
7+
8+
界面所有用户可见文案不再出现会话内部 id(AUTOINCREMENT 主键),仅保留会话列表的显示序号
9+
(display_no——v0.11.5 起与内部 id 解耦,按时间序 rank,删除会话后自动归位)。
10+
11+
## 背景
12+
13+
v0.11.5「会话编号显示序号化」已让列表/详情展示编号 = display_no,但采集/导入/融合等实时路径的
14+
状态文案仍直接回显内部 id(如「会话 #12」)——「内部 id 用户不感知」的约定漏网。本次收口。
15+
16+
## 范围
17+
18+
| 位置 | 原文案 | 改后 |
19+
|------|--------|------|
20+
| ClassroomPage 开始实时捕获 | 实时捕获已开始(会话 #N) | 实时捕获已开始 |
21+
| ClassroomPage 停止实时捕获 | 已停止会话 #N,融合完成后可到「会话」页查看 | 已停止会话,融合完成后可到「会话」页查看 |
22+
| ClassroomPage 实时捕获提示 | 会话 #N(可到「会话」页查看) | 实时捕获中(可到「会话」页查看) |
23+
| ClassroomRightPane 融合完成卡片 | ✅ 融合完成(会话 #N) | ✅ 融合完成 |
24+
| PhotoCapturePanel 开始图文采集 | 图文采集已开始(会话 #N) | 图文采集已开始 |
25+
| PhotoCapturePanel 采集中 | 会话 #N 采集中 · 已截 M 张 | 图文采集中 · 已截 M 张 |
26+
| PhotoCapturePanel 已保存 | ✅ 图文会话 #N 已保存(M 张截图) | ✅ 图文会话已保存(M 张截图) |
27+
| VideoImportPanel 导入完成 | ✅ 已导入会话 #N,可到「会话」页查看时间轴 | ✅ 已导入会话,可到「会话」页查看时间轴 |
28+
| AiTaskPanel 任务行(refine) | 会话 #N | 会话 |
29+
30+
## 边界(不改)
31+
32+
- 会话列表 `#{display_no}`:显示序号(非内部 id),保留
33+
- 内部引用(invoke 参数 / React key / 笔记↔会话跳转):继续用内部 id,用户不感知
34+
- 笔记 id(`笔记 #N` 等)不在本次范围
35+
36+
## 验证
37+
38+
- `tsc --noEmit` 零错误;vitest 全绿(现有用例未覆盖上述文案)
39+
- 检索 `app/src/**/*.tsx` 无「会话 #」残留

0 commit comments

Comments
 (0)