dsh-quick-toc 0.6.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.en.md +15 -0
- package/CHANGELOG.md +15 -0
- package/README.en.md +8 -7
- package/README.md +8 -7
- package/lib/client.js +4510 -4257
- package/lib/index.js +6 -0
- package/package.json +2 -2
package/CHANGELOG.en.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to **dsh-quick-toc** are documented here. Chinese version: [CHANGELOG.md](CHANGELOG.md).
|
|
4
4
|
|
|
5
|
+
## [0.6.1] - 2026-09-15
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- **A panel-scale slider**: the card gains a "Panel scale" row — a **50%–200% slider in 5% steps** (the same control shape as the font-tune plugin's slider) that scales the panel's **content** (text, icons, buttons and their spacing). The scale does **not** change the panel's own size: a width and height dragged to some size stay exactly that size at 50% and at 200%, so magnifying simply shows less on screen at once. Dragging only moves the readout and the settings document is written **once the pointer is released** (no rewrite per notch); the readout keeps the dragged value until the host confirms it, so it never flashes back to the old number.
|
|
9
|
+
- **A narrow panel's header**: the four buttons stay on one line — the empty middle gives way first, and once the buttons would touch, the row becomes sideways-scrollable (the wheel over the header reaches the buttons behind the edge) while the grey grab bar above fades out.
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
- **The jump animation goes back to the browser's own smooth scrolling**: the motion is handed to the container's `scrollTo({behavior:"smooth"})` — advanced on the wall clock, so it takes the same time on a 60Hz and a 240Hz panel, and it coasts to a stop. Three guards remain: step out of DSH's stick-to-bottom zone before jumping; re-aim once when the target's live offset drifts by more than 40px (the host re-paging moves it); and re-issue the call when the animation was cut short by the host's own compensation scroll (more than 400ms with less than a pixel of movement). Only a browser that carries the call out as an instant jump falls back to the plugin's frame-by-frame glide (also timed in milliseconds, quick off the mark and coasting to a stop).
|
|
13
|
+
- **Panel size limits removed**: the width used to be clamped to 180–560px and the height had a 160px floor. Only a "still draggable back" floor of 120px wide / 60px high remains; how large or small it gets is the reader's call.
|
|
14
|
+
- **The panel scale acts on the content only** (see above): the factor applies inside the panel, so the panel's own width, height, position, collapse clip and collapse animation are untouched.
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
- **Long jumps were an instant jump on a 240Hz panel**: 0.6.0's frame-by-frame glide was timed in **frames** (22–46 of them), and 46 frames is only about 190ms on a 240Hz display (measured: 5078px in 188ms, roughly four times too fast), which reads as a teleport or a uniform blur; the same frame count is about 770ms at 60Hz, which is why neither the offline tests nor a headless browser could see it. The animation is now timed in real milliseconds, independent of the refresh rate.
|
|
18
|
+
- **A dragged panel size sprang back to its old size**: the panel kept "what I published" and "what I adopted from outside" in one ledger. Any settings write or host snapshot refresh during a drag then compared the **not-yet-persisted** old value against that ledger and pulled the panel back to its previous size, cancelling the pending write — the drag was silently undone. The two directions are now kept apart: a value is adopted only when it differs from both the panel's live state and the value the panel itself just sent, and size/position are never read back from the settings at all (this panel is their only writer, so a read could only ever return a stale copy).
|
|
19
|
+
|
|
5
20
|
## [0.6.0] - 2026-09-14
|
|
6
21
|
|
|
7
22
|
### Added
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
**dsh-quick-toc** 的重要变更都记录在这里。英文版见 [CHANGELOG.en.md](CHANGELOG.en.md)。
|
|
4
4
|
|
|
5
|
+
## [0.6.1] - 2026-09-15
|
|
6
|
+
|
|
7
|
+
### 新增
|
|
8
|
+
- **面板缩放滑块**:设置卡片里新增「面板缩放」——**50%–200%、每档 5%** 的滑块(与字体增强插件的滑块同一形制),把面板**内容**(文字、图标、按钮及其间距)等比放大或缩小。缩放**不改变面板本身的尺寸**:拖出来的宽高在 50% 与 200% 下完全一致,放大只是让内容更大、屏幕上一屏看到的行更少。拖动滑块只移动读数,**松手才写入设置**(避免每个档位都重写设置文档);宿主未确认前读数保持为拖动后的值,不会闪回旧数字。
|
|
9
|
+
- **窄面板的顶栏**:面板变得很窄时,四颗按钮保持一行——中间的空白先让位,挤满后整行变成可横向滚动(在顶栏上滚滚轮即可找到后面的按钮),此时顶部的灰色拖拽横条渐隐消失。
|
|
10
|
+
|
|
11
|
+
### 变更
|
|
12
|
+
- **跳转动画改回浏览器自己的平滑滚动**:动画交给容器的 `scrollTo({behavior:"smooth"})`(按真实时间推进,因此在 60Hz 与 240Hz 屏幕上时长一致,且带有最后的减速滑停)。保留三层护栏:起跳前先脱离 DSH 的贴底吸附区;飞行中目标的实时偏移若变化超过 40px 就重新瞄准一次(宿主翻页会挪动目标);动画被宿主的补偿滚动打断(超过 400ms 且位移不足 1px)时重新发起。只有浏览器把该调用直接执行成瞬移时,才退回插件逐帧绘制(自绘同样按毫秒计时、先快后慢)。
|
|
13
|
+
- **面板尺寸取消上下限**:宽度原先被限制在 180–560px、高度下限 160px。现在只保留「还能拖回来」的 120px 宽 / 60px 高地板,放大缩小都由读者决定。
|
|
14
|
+
- **面板缩放只作用于内容**(见上):缩放因子作用在面板内部,面板自身的宽高、位置、折叠裁剪与其折叠动画都不受影响。
|
|
15
|
+
|
|
16
|
+
### 修复
|
|
17
|
+
- **长距离跳转在 240Hz 屏幕上等同瞬移**:0.6.0 的逐帧动画按**帧数**计时(22–46 帧),在 240Hz 面板上 46 帧只有约 190ms(实测 5078px 用了 188ms,约 4 倍过快),看起来像瞬移或匀速一闪;60Hz 下同样的帧数是约 770ms,因此离线测试与无头浏览器都测不出这个问题。现在动画按真实时间推进,与刷新率无关。
|
|
18
|
+
- **拖动面板尺寸后会被拽回原尺寸**:面板把「自己的改动传出」和「采纳外部改动」记在同一份台账里。拖动期间只要发生一次设置写入或宿主快照刷新,就会拿**尚未落盘的旧值**把面板拽回原尺寸,并且正在等待的落盘会被取消——拖动等于白做。现在两条路径分开记账:只采纳既不同于面板当前状态、也不是自己刚发出的值;尺寸与位置不再从设置里回读(它们只有面板自己会写,回读只可能拿到旧副本)。
|
|
19
|
+
|
|
5
20
|
## [0.6.0] - 2026-09-14
|
|
6
21
|
|
|
7
22
|
### 新增
|
package/README.en.md
CHANGED
|
@@ -10,7 +10,7 @@ A conversation TOC plugin for [DeepSeek Harness](https://github.com/deepseek-ai/
|
|
|
10
10
|
- **Whole-session coverage** — turns the conversation window has not loaded are listed too (tagged `未加载` / "Not loaded", with previews); clicking one loads that turn and jumps to it
|
|
11
11
|
- **Failures are reported** — a turn with no reply at all (request timeout, upstream error) shows `请求失败` / "Request failed" plus the host's error text, and clicking it jumps to that error in the conversation
|
|
12
12
|
- **Bilingual** — the interface language can follow the host, or be forced to Chinese or English; Chinese stamps use `昨天` / `前天`, English reads yesterday as the word (`yesterday`) and carries the `YY-MM-DD HH:MM` date for anything older
|
|
13
|
-
- **A plugin-configuration card** — a "Conversation Outline" card under Settings → Plugins → Plugin configuration: the language, the default docked edge, the heading levels shown, fuzzy search, hover previews and the diagnostic switch; changed fields are marked "customized" and can be reset individually, and the card and the panel stay in sync
|
|
13
|
+
- **A plugin-configuration card** — a "Conversation Outline" card under Settings → Plugins → Plugin configuration: the language, the default docked edge, the panel-scale slider, the heading levels shown, fuzzy search, hover previews and the diagnostic switch; changed fields are marked "customized" and can be reset individually, and the card and the panel stay in sync
|
|
14
14
|
- **Turn stamps carry the day** — yesterday reads `昨天 15:04`, the day before `前天 15:04`, anything older `25-09-11 15:04`, so times never blur together in a session spanning days (with the interface in English every stamp older than today carries a `YY-MM-DD` date instead)
|
|
15
15
|
- **Row subtitles** — under each heading, the first sentence of that section, so identically-titled headings can be told apart
|
|
16
16
|
- **Hover previews** — hovering a heading row shows the section's opening, the turn time and the heading path
|
|
@@ -20,9 +20,10 @@ A conversation TOC plugin for [DeepSeek Harness](https://github.com/deepseek-ai/
|
|
|
20
20
|
- **Sticky group headers** — while scrolling the outline, the current turn's header stays pinned at the top of the panel
|
|
21
21
|
- **Heading level filter** — the round levels button in the header pops down H1–H6 switches for any combination
|
|
22
22
|
- **Auto-follow** — the turn being read lights up in a closed blue box while you scroll the conversation; the outline follows on its own
|
|
23
|
-
- **Jumping** — click a heading to jump to its position in the conversation
|
|
23
|
+
- **Jumping** — click a heading to jump to its position in the conversation, with the scroll animation handed to the browser's own smooth scrolling (advanced on the wall clock, so it takes the same time on a 60 Hz and a 240 Hz panel); when the host re-pages and moves the target mid-flight the jump re-aims, and when the host's own scrolling cancels the animation it is issued again, so a cross-page jump never stops halfway; a browser that carries the call out at once gets a frame-by-frame glide drawn by the plugin instead
|
|
24
24
|
- **Back to the newest row** — after paging far up, a floating button in the list's lower-right corner returns to the newest entry in one click (it appears when the list is not at its bottom and disappears once it is)
|
|
25
|
-
- **Dockable and resizable** — drag the top bar to move the panel, ◀ / ▶ to dock left or right, drag an edge to resize, and collapse it into an edge handle; position and size are remembered per browser (top offset, width and height are adjusted by dragging only)
|
|
25
|
+
- **Dockable and resizable** — drag the top bar to move the panel, ◀ / ▶ to dock left or right, drag an edge to resize (no upper bound, down to 120px wide), and collapse it into an edge handle; position and size are remembered per browser (top offset, width and height are adjusted by dragging only)
|
|
26
|
+
- **Panel scale** — a slider in the settings card scales the **content** (text, icons, buttons and their spacing) from 50% to 200% in 5% steps while the **panel's own size stays exactly as dragged**; dragging only moves the readout, and the settings document is written once you let go. A narrow panel keeps its four header buttons on one line: the empty middle gives way first, then the whole row scrolls sideways (wheel over the header), and the grey grab bar fades out
|
|
26
27
|
- **Paging** — the most recent groups show first; scrolling up both expands the index and loads older conversation
|
|
27
28
|
- **Edge hints** — a brief hint at the bottom of the panel when you keep scrolling past the first or the last entry
|
|
28
29
|
- **Markdown-aware** — inline markup in headings is stripped; `#` lines inside fenced code blocks are not headings
|
|
@@ -33,7 +34,7 @@ A conversation TOC plugin for [DeepSeek Harness](https://github.com/deepseek-ai/
|
|
|
33
34
|
|
|
34
35
|
| Plugin | Supported DSH |
|
|
35
36
|
| --- | --- |
|
|
36
|
-
| **0.6.x** (latest, 0.6.
|
|
37
|
+
| **0.6.x** (latest, 0.6.1) | 0.1.5-rc.1, 0.1.5-rc.2 |
|
|
37
38
|
| 0.5.x (0.5.1) | 0.1.5-rc.1, 0.1.5-rc.2 |
|
|
38
39
|
| 0.4.x (0.4.1) | 0.1.5-rc.1, 0.1.5-rc.2 |
|
|
39
40
|
| 0.3.x (0.3.3) | 0.1.5-rc.1 |
|
|
@@ -41,7 +42,7 @@ A conversation TOC plugin for [DeepSeek Harness](https://github.com/deepseek-ai/
|
|
|
41
42
|
|
|
42
43
|
Each major line lists only its newest patch (the defects a new feature introduces are fixed in the patches that follow, so within one major line the newest patch is the one to use; older patches keep working — the plugin does not break existing interfaces).
|
|
43
44
|
|
|
44
|
-
`engines.dsh` has a floor of **0.1.5-rc.1** (`>=`): from that release on, the plugin uses the host's session-scoped slot injection. 0.6.
|
|
45
|
+
`engines.dsh` has a floor of **0.1.5-rc.1** (`>=`): from that release on, the plugin uses the host's session-scoped slot injection. 0.6.1 was tested on **0.1.5-rc.2** (the host half's settings-namespace registration, the configuration card, the jump animation and the panel scale were all measured); on **0.1.5-rc.1** the plugin's loading and client-module delivery were tested for real (the host boots, and the `dsh-quick-toc/client.js` rev in its boot graph is byte-identical to this repository's `lib/client.js`). The host interfaces it relies on — the `turnOutline` projection, the session-scoped `useProjection`, the client `sessions` service and its `loadThrough` jump loader (since 0.5.0), the `turn-error` node used for failed turns (since 0.5.1), and the host `settings` service (`installSection`), the client `settingsScope` and the `settings.plugin.item` card slot added in 0.6.0 — were checked one by one against the installed 0.1.5-rc.1 and 0.1.5-rc.2 bundles, whose code is byte-identical between the two releases (`dsh-client-ui-chat` differs by a single CSS declaration unrelated to this plugin); nothing in 0.6.1 relies on a new host interface (the scale is CSS inside the panel, the slider lives in the plugin's own card, and the jump uses the container's `scrollTo`), so both releases are claimed. Older or newer DSH versions are unverified and therefore not claimed; on an older DSH the newest usable plugin version is **0.3.2**. On install or update, the DSH market pre-flights host compatibility from `engines.dsh`, `dsh.compatibility.dshReleases` and `peerDependencies` in `package.json`.
|
|
45
46
|
|
|
46
47
|
## Install
|
|
47
48
|
|
|
@@ -72,11 +73,11 @@ After installing, restart DSH and open the Web UI. The panel starts collapsed; c
|
|
|
72
73
|
- **Search tolerance**: full-width/half-width, case and whitespace differences match automatically; for looser matching turn on the "fuzzy" switch next to the search box
|
|
73
74
|
- **Level filter**: click the round levels button in the header to pop down the H1–H6 switches
|
|
74
75
|
- **Moving and docking**: drag the top bar to move, ◀ / ▶ to switch sides
|
|
75
|
-
- **Resizing**: drag the right edge, bottom edge or bottom-right corner
|
|
76
|
+
- **Resizing**: drag the right edge, bottom edge or bottom-right corner (no upper bound, down to 120px wide; a very narrow panel scrolls its header sideways)
|
|
76
77
|
- **Loading older turns**: scroll up inside the outline (it both expands the index and loads older conversation)
|
|
77
78
|
- **Back to the newest row**: after paging far up, click the floating button in the list's lower-right corner
|
|
78
79
|
- **Reading position**: scroll the conversation and the turn you are reading is boxed in blue; the outline follows
|
|
79
|
-
- **Settings**: expand the "Conversation Outline" card under **Settings → Plugins → Plugin configuration** for the language, the default docked edge, the heading levels shown and the fuzzy / hover / diagnostic switches; changed fields can be reset individually. The card and the panel are live in both directions, with no reload needed, and the preferences follow the DSH settings document
|
|
80
|
+
- **Settings**: expand the "Conversation Outline" card under **Settings → Plugins → Plugin configuration** for the language, the default docked edge, the panel scale (a 50%–200% slider in 5% steps), the heading levels shown and the fuzzy / hover / diagnostic switches; changed fields can be reset individually. The card and the panel are live in both directions, with no reload needed, and the preferences follow the DSH settings document
|
|
80
81
|
|
|
81
82
|
## Diagnostics
|
|
82
83
|
|
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
- **覆盖整段会话** —— 未加载进对话窗口的回合也在列表里(带「未加载」标记与预览);点击即加载该回合并跳过去
|
|
11
11
|
- **失败回合的报错** —— 请求超时 / 上游报错这类没有回复的回合显示 `请求失败` 与报错原文,点击跳到对话中的报错位置
|
|
12
12
|
- **中英双语** —— 界面语言可设为跟随宿主、中文或 English;中文时间戳用 `昨天` / `前天`,英文昨天用 `yesterday`、更早用 `YY-MM-DD HH:MM` 日期
|
|
13
|
-
- **插件配置卡片** —— 设置 → 插件 →
|
|
13
|
+
- **插件配置卡片** —— 设置 → 插件 → 插件配置里的「对话大纲」卡片:语言、默认停靠边缘、面板缩放滑块、显示的标题层级、模糊搜索、悬停预览与诊断开关;改过的字段标「已自定义」并可单独重置,卡片与面板实时同步
|
|
14
14
|
- **回合时间带日期** —— 昨天 `昨天 15:04`、前天 `前天 15:04`、更早 `25-09-11 15:04`,跨天的会话里时间不再重影
|
|
15
15
|
- **标题行副标题** —— 每行标题下方显示该节正文的第一句,同名标题一眼可辨
|
|
16
16
|
- **悬停预览** —— 悬停标题行显示该节开头、回合时间与层级路径
|
|
@@ -20,9 +20,10 @@
|
|
|
20
20
|
- **组头吸顶** —— 滚动大纲时,当前回合的组头固定在面板顶部
|
|
21
21
|
- **层级筛选** —— 标题栏的圆形层级按钮弹出 H1–H6 开关,任意组合显示
|
|
22
22
|
- **自动跟随** —— 滚动对话时正在阅读的回合自动点亮(封闭蓝框),大纲自动跟随
|
|
23
|
-
- **跳转** ——
|
|
23
|
+
- **跳转** —— 点击标题跳到对话中该标题的位置,滚动动画交给浏览器自己的平滑滚动(按真实时间推进,60Hz 与 240Hz 屏幕上时长一致);飞行中目标被宿主翻页挪动时会重新瞄准、动画被宿主滚动打断时会重新发起,跨页远跳不会半途停下;若某个浏览器把平滑滚动直接执行成瞬移,插件改为自己逐帧绘制。面板与对话双向定位
|
|
24
24
|
- **回到底部** —— 往上翻远之后,列表右下角的浮动按钮一步回到最新一条(不在底部时出现、到底后消失)
|
|
25
|
-
- **可停靠、可缩放** —— 拖顶部横条移动,◀ / ▶
|
|
25
|
+
- **可停靠、可缩放** —— 拖顶部横条移动,◀ / ▶ 切换左右停靠,拖边缘调宽高(尺寸没有上限,最窄可到 120px),收起后成为边缘把手;位置与尺寸按浏览器记住(顶边距、宽度、高度只通过拖拽调整)
|
|
26
|
+
- **面板缩放** —— 设置里的滑块把**内容**(文字、图标、按钮及其间距)在 50%–200% 之间按 5% 一档缩放,**面板本身的尺寸不变**;拖动滑块时只移动读数,松手才写入设置。面板变窄时顶栏四颗按钮保持一行:先挤掉中间的空白,挤满后整行可横向滚动(在顶栏上滚滚轮即可),此时顶部的灰色拖拽横条渐隐消失
|
|
26
27
|
- **分页** —— 默认显示最近的若干组,向上滚动既展开索引也加载更早的对话
|
|
27
28
|
- **边界提示** —— 滚到最早或最新再继续滚动时,面板底部短暂提示
|
|
28
29
|
- **Markdown 感知** —— 标题中的行内标记会被剥离;围栏代码块里的 `#` 行不算标题
|
|
@@ -33,7 +34,7 @@
|
|
|
33
34
|
|
|
34
35
|
| 插件版本 | 支持的 DSH 版本 |
|
|
35
36
|
| --- | --- |
|
|
36
|
-
| **0.6.x**(最新,0.6.
|
|
37
|
+
| **0.6.x**(最新,0.6.1) | 0.1.5-rc.1、0.1.5-rc.2 |
|
|
37
38
|
| 0.5.x(0.5.1) | 0.1.5-rc.1、0.1.5-rc.2 |
|
|
38
39
|
| 0.4.x(0.4.1) | 0.1.5-rc.1、0.1.5-rc.2 |
|
|
39
40
|
| 0.3.x(0.3.3) | 0.1.5-rc.1 |
|
|
@@ -41,7 +42,7 @@
|
|
|
41
42
|
|
|
42
43
|
每个大版本只列该系列最新的一个补丁版本(新功能引入的缺陷都在其后的补丁里修掉了,所以同一个大版本内直接用最新补丁即可;旧补丁仍可继续用,插件不破坏既有接口)。
|
|
43
44
|
|
|
44
|
-
`engines.dsh` 下限为 **0.1.5-rc.1**(`>=`,该版本起插件改用会话级槽位注入的宿主接口)。0.6.
|
|
45
|
+
`engines.dsh` 下限为 **0.1.5-rc.1**(`>=`,该版本起插件改用会话级槽位注入的宿主接口)。0.6.1 在 **0.1.5-rc.2** 上实测通过(宿主半的设置命名空间注册、配置卡片、跳转动画与面板缩放均实测);**0.1.5-rc.1** 上实测了插件加载与客户端模块下发(宿主启动正常、boot graph 中 `dsh-quick-toc/client.js` 的 rev 与本仓库 `lib/client.js` 逐字节一致),它依赖的宿主接口——`turnOutline` 投影、会话级槽位的 `useProjection`、客户端 `sessions` 服务与 `loadThrough` 跳转加载器(0.5.0 起)、失败回合所用的 `turn-error` 节点(0.5.1 起)、以及 0.6.0 新增的宿主 `settings` 服务(`installSection`)、客户端 `settingsScope` 与 `settings.plugin.item` 配置卡片槽位——在 0.1.5-rc.1 与 0.1.5-rc.2 的安装包中逐个核对存在(这些宿主包的代码在两版之间逐字节相同,`dsh-client-ui-chat` 仅差一条与本插件无关的 CSS 声明);0.6.1 的新功能都不依赖新的宿主接口(缩放是面板内的 CSS,滑块在插件自己的卡片里,跳转用容器的 `scrollTo`),因此两版都声明兼容。更早或更新的 DSH 版本未经验证,不作声明;在更早的 DSH 上可安装的最新插件版本是 **0.3.2**。安装或更新时,DSH 市场会依据 `package.json` 中的 `engines.dsh`、`dsh.compatibility.dshReleases` 与 `peerDependencies` 做宿主兼容预检。
|
|
45
46
|
|
|
46
47
|
## 安装
|
|
47
48
|
|
|
@@ -72,11 +73,11 @@ dsh plugin --profile web add <插件目录路径>
|
|
|
72
73
|
- **搜索容错**:全角/半角、大小写、空格差异会自动匹配;需要更宽松时点搜索框右侧的「模糊」开关
|
|
73
74
|
- **层级筛选**:点标题栏的圆形层级按钮弹出 H1–H6 开关,选择显示的层级
|
|
74
75
|
- **移动与停靠**:拖顶部横条移动,◀ / ▶ 切换左右停靠
|
|
75
|
-
-
|
|
76
|
+
- **调整大小**:拖右边缘、下边缘或右下角(没有上限,最窄到 120px;面板过窄时顶栏可横向滚动)
|
|
76
77
|
- **加载更早**:在大纲中向上滚动(既展开索引,也加载更早的对话)
|
|
77
78
|
- **回到底部**:翻远了之后点列表右下角的浮动按钮回到最新一条
|
|
78
79
|
- **阅读位置**:滚动对话,正在阅读的回合会以蓝框标出;大纲会自动跟随
|
|
79
|
-
- **设置**:在 **设置 → 插件 → 插件配置**
|
|
80
|
+
- **设置**:在 **设置 → 插件 → 插件配置** 里展开「对话大纲」卡片,可改语言、默认停靠边缘、面板缩放(50%–200% 滑块,5% 一档)、显示的标题层级与模糊/悬停/诊断开关;改过的字段可单独重置。卡片与面板实时同步,不需要刷新;偏好保存在 DSH 的设置里,跟随配置走
|
|
80
81
|
|
|
81
82
|
## 诊断
|
|
82
83
|
|