dsh-fonttune 0.7.1 → 0.7.3
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 +14 -0
- package/CHANGELOG.md +14 -0
- package/README.en.md +1 -1
- package/README.md +1 -1
- package/lib/client.js +36 -9
- package/lib/shared.cjs +26 -9
- package/package.json +4 -2
package/CHANGELOG.en.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to **dsh-fonttune** are documented here. Chinese version: [CHANGELOG.md](CHANGELOG.md).
|
|
4
4
|
|
|
5
|
+
## [0.7.3] - 2026-10-29
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
- **Every conversation axis was inert on DSH 0.2.1-rc.4 and 0.2.2**: those releases dropped the conversation container's `_markdown_` class-hash segment and its `[data-dss-prose]` wrapper, so the dialog rules matched zero elements and font, size, line height, weight and tracking all failed silently — while the card, its writes and the floating panel still looked fine. The markdown block elements inside `[data-conversation-content]` now stand in as the fallback scope.
|
|
9
|
+
- **The floating panel measured the whole window instead of the conversation on those same releases**: it looked for the same two markers, so the dot parked on the window's corner and the panel's expand direction was read from the window; it now recognises that content container too.
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
- **The compatibility table states what was verified**: the 0.2.1-rc.4 and 0.2.2-alpha.2 rows used to mean "the card, its writes and the panel"; from this release on they mean "the type actually renders on the conversation and the panel measures the conversation".
|
|
13
|
+
|
|
14
|
+
## [0.7.2] - 2026-10-28
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- **The compatibility table lists DSH 0.2.1-rc.4 and 0.2.2-alpha.2**: both were verified live — the settings card, its writes and the floating panel all behave as documented.
|
|
18
|
+
|
|
5
19
|
## [0.7.1] - 2026-10-20
|
|
6
20
|
|
|
7
21
|
### Changed
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
**dsh-fonttune** 的重要变更都记录在这里。英文版见 [CHANGELOG.en.md](CHANGELOG.en.md)。
|
|
4
4
|
|
|
5
|
+
## [0.7.3] - 2026-10-29
|
|
6
|
+
|
|
7
|
+
### 修复
|
|
8
|
+
- **DSH 0.2.1-rc.4 与 0.2.2 上对话排印轴全部失效**:这两个版本去掉了对话容器的 `_markdown_` 类名哈希段与 `[data-dss-prose]` 包裹层,对话规则命中零个元素,字体、字号、行高、字重、字距等轴全部静默失效(卡片、写入与悬浮面板看起来仍正常)。现在把 `[data-conversation-content]` 内的 markdown 块元素作为兜底作用域。
|
|
9
|
+
- **同一版本上悬浮面板把对话区认成了整个窗口**:面板找对话区的两个旧标记同样消失,圆点会贴到窗口角落、展开方向也按窗口计算;现在它也认这一层内容容器。
|
|
10
|
+
|
|
11
|
+
### 变更
|
|
12
|
+
- **兼容对照表补上验证范围**:0.2.1-rc.4 与 0.2.2-alpha.2 一栏原先只验了「卡片、写入、面板」,没有验「字体是否真的渲染到对话上」;这一版起该栏按「字体实际生效 + 面板按对话区定位」验收。
|
|
13
|
+
|
|
14
|
+
## [0.7.2] - 2026-10-28
|
|
15
|
+
|
|
16
|
+
### 变更
|
|
17
|
+
- **兼容对照表列出 DSH 0.2.1-rc.4 与 0.2.2-alpha.2**:两条线实测通过,设置卡片、控件写入与悬浮面板均正常。
|
|
18
|
+
|
|
5
19
|
## [0.7.1] - 2026-10-20
|
|
6
20
|
|
|
7
21
|
### 变更
|
package/README.en.md
CHANGED
|
@@ -39,7 +39,7 @@ The floating tuning panel (left, with its "in force right now" readout) and the
|
|
|
39
39
|
|
|
40
40
|
| Plugin version | Supported DSH versions |
|
|
41
41
|
| --- | --- |
|
|
42
|
-
| **0.7.x** (latest, 0.7.
|
|
42
|
+
| **0.7.x** (latest, 0.7.3) | 0.1.7-alpha.1, 0.1.7-alpha.2, 0.1.7-rc.1, 0.1.7-rc.2, 0.2.0-rc.1, 0.2.0-rc.2, 0.2.1-alpha.1, 0.2.1-alpha.2, 0.2.1-alpha.3, 0.2.1-alpha.4, 0.2.1-alpha.5, 0.2.1-rc.1, 0.2.1-rc.2, 0.2.1-rc.4, 0.2.2-alpha.2 |
|
|
43
43
|
| 0.6.x (0.6.2) | 0.1.7-alpha.1, 0.1.7-alpha.2, 0.1.7-rc.1, 0.1.7-rc.2, 0.2.0-rc.1, 0.2.0-rc.2, 0.2.1-alpha.1, 0.2.1-alpha.2, 0.2.1-alpha.3, 0.2.1-alpha.4, 0.2.1-alpha.5, 0.2.1-rc.1, 0.2.1-rc.2 |
|
|
44
44
|
| 0.5.x (0.5.0) | 0.1.7-alpha.1, 0.1.7-alpha.2, 0.1.7-rc.1, 0.1.7-rc.2, 0.2.0-rc.1, 0.2.0-rc.2, 0.2.1-alpha.1, 0.2.1-alpha.2 |
|
|
45
45
|
| 0.4.x (0.4.2) | 0.1.7-alpha.1, 0.1.7-alpha.2, 0.1.7-rc.1, 0.1.7-rc.2, 0.2.0-rc.1, 0.2.0-rc.2, 0.2.1-alpha.1, 0.2.1-alpha.2 |
|
package/README.md
CHANGED
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
|
|
40
40
|
| 插件版本 | 支持的 DSH 版本 |
|
|
41
41
|
| --- | --- |
|
|
42
|
-
| **0.7.x**(最新,0.7.
|
|
42
|
+
| **0.7.x**(最新,0.7.3) | 0.1.7-alpha.1、0.1.7-alpha.2、0.1.7-rc.1、0.1.7-rc.2、0.2.0-rc.1、0.2.0-rc.2、0.2.1-alpha.1、0.2.1-alpha.2、0.2.1-alpha.3、0.2.1-alpha.4、0.2.1-alpha.5、0.2.1-rc.1、0.2.1-rc.2、0.2.1-rc.4、0.2.2-alpha.2 |
|
|
43
43
|
| 0.6.x(0.6.2) | 0.1.7-alpha.1、0.1.7-alpha.2、0.1.7-rc.1、0.1.7-rc.2、0.2.0-rc.1、0.2.0-rc.2、0.2.1-alpha.1、0.2.1-alpha.2、0.2.1-alpha.3、0.2.1-alpha.4、0.2.1-alpha.5、0.2.1-rc.1、0.2.1-rc.2 |
|
|
44
44
|
| 0.5.x(0.5.0) | 0.1.7-alpha.1、0.1.7-alpha.2、0.1.7-rc.1、0.1.7-rc.2、0.2.0-rc.1、0.2.0-rc.2、0.2.1-alpha.1、0.2.1-alpha.2 |
|
|
45
45
|
| 0.4.x(0.4.2) | 0.1.7-alpha.1、0.1.7-alpha.2、0.1.7-rc.1、0.1.7-rc.2、0.2.0-rc.1、0.2.0-rc.2、0.2.1-alpha.1、0.2.1-alpha.2 |
|
package/lib/client.js
CHANGED
|
@@ -2968,19 +2968,36 @@ function codeSelector(hints) {
|
|
|
2968
2968
|
CODE_SELECTOR = codeSelector(null);
|
|
2969
2969
|
|
|
2970
2970
|
/**
|
|
2971
|
-
* The dialog surface
|
|
2972
|
-
*
|
|
2973
|
-
*
|
|
2974
|
-
*
|
|
2975
|
-
*
|
|
2976
|
-
*
|
|
2977
|
-
*
|
|
2978
|
-
*
|
|
2971
|
+
* The dialog surface, across two host generations.
|
|
2972
|
+
*
|
|
2973
|
+
* Up to DSH 0.2.1 the conversation markdown sat in a CSS-module container whose
|
|
2974
|
+
* class carried a `_markdown_` hash segment (`_markdown_<hash>_…`), wrapped in
|
|
2975
|
+
* a stable `[data-dss-prose]` container. DSH 0.2.2 dropped both: the class is
|
|
2976
|
+
* now `<hash>_root` and the prose wrapper is gone, which left every dialog rule
|
|
2977
|
+
* matching zero elements and the whole conversation axis silently inert.
|
|
2978
|
+
*
|
|
2979
|
+
* What 0.2.2 does still expose is the content container
|
|
2980
|
+
* `[data-conversation-content]`, so the markdown block elements inside it
|
|
2981
|
+
* stand in for the scope. A class-substring match degrades safely — no match
|
|
2982
|
+
* means the dialog follows the interface axis, the same behavior as an unknown
|
|
2983
|
+
* token name — but it costs an attribute scan per element per rule, so the
|
|
2984
|
+
* browser half prefers the stable wrapper when it can see one and falls back to
|
|
2985
|
+
* the element list otherwise.
|
|
2979
2986
|
*/
|
|
2987
|
+
var MARKDOWN_BLOCK_ELEMENTS = "p,li,h1,h2,h3,h4,h5,h6,blockquote,td,th,dt,dd";
|
|
2988
|
+
|
|
2980
2989
|
var MARKDOWN_SELECTOR =
|
|
2981
|
-
'[
|
|
2990
|
+
'[data-dss-prose]' +
|
|
2991
|
+
CODE_EXCLUDES +
|
|
2992
|
+
',[data-dss-prose] *' +
|
|
2993
|
+
CODE_EXCLUDES +
|
|
2994
|
+
',[class*="_markdown_" i]' +
|
|
2982
2995
|
CODE_EXCLUDES +
|
|
2983
2996
|
',[class*="_markdown_" i] *' +
|
|
2997
|
+
CODE_EXCLUDES +
|
|
2998
|
+
',[data-conversation-content] :where(' +
|
|
2999
|
+
MARKDOWN_BLOCK_ELEMENTS +
|
|
3000
|
+
')' +
|
|
2984
3001
|
CODE_EXCLUDES;
|
|
2985
3002
|
|
|
2986
3003
|
/**
|
|
@@ -10859,9 +10876,18 @@ function mountFloatPanel(scope, t, hostCtx) {
|
|
|
10859
10876
|
* The hint is what `harvestScope` names the dialog rules by where the host has
|
|
10860
10877
|
* it; the substring form is the same fallback the stylesheet builder uses, so
|
|
10861
10878
|
* the panel measures the very element the type axes already style.
|
|
10879
|
+
*
|
|
10880
|
+
* DSH 0.2.1-rc.4 and 0.2.2 dropped BOTH of them — no `_markdown_` class-hash
|
|
10881
|
+
* segment and no `[data-dss-prose]` wrapper — which left the panel with no
|
|
10882
|
+
* candidate region at all: it fell back to the whole window and the dot parked
|
|
10883
|
+
* on the window's corner instead of the conversation's. Those lines still mark
|
|
10884
|
+
* the content container, so its block elements are the third anchor, the same
|
|
10885
|
+
* shape the stylesheet builder grew (`MARKDOWN_BLOCK_ELEMENTS`).
|
|
10862
10886
|
*/
|
|
10863
10887
|
var PROSE_HINT = "[data-dss-prose]";
|
|
10864
10888
|
var PROSE_FALLBACK = '[class*="_markdown_" i]';
|
|
10889
|
+
var PROSE_CONTENT =
|
|
10890
|
+
"[data-conversation-content] :where(p,li,h1,h2,h3,h4,h5,h6,blockquote,td,th)";
|
|
10865
10891
|
|
|
10866
10892
|
/**
|
|
10867
10893
|
* How many candidate regions are read before the list is handed over.
|
|
@@ -10941,6 +10967,7 @@ function mountFloatPanel(scope, t, hostCtx) {
|
|
|
10941
10967
|
try {
|
|
10942
10968
|
add(document.querySelectorAll(PROSE_HINT));
|
|
10943
10969
|
add(document.querySelectorAll(PROSE_FALLBACK));
|
|
10970
|
+
add(document.querySelectorAll(PROSE_CONTENT));
|
|
10944
10971
|
} catch (error) {
|
|
10945
10972
|
// A page without a queryable document keeps the empty list (the window).
|
|
10946
10973
|
}
|
package/lib/shared.cjs
CHANGED
|
@@ -2959,19 +2959,36 @@ function codeSelector(hints) {
|
|
|
2959
2959
|
CODE_SELECTOR = codeSelector(null);
|
|
2960
2960
|
|
|
2961
2961
|
/**
|
|
2962
|
-
* The dialog surface
|
|
2963
|
-
*
|
|
2964
|
-
*
|
|
2965
|
-
*
|
|
2966
|
-
*
|
|
2967
|
-
*
|
|
2968
|
-
*
|
|
2969
|
-
*
|
|
2962
|
+
* The dialog surface, across two host generations.
|
|
2963
|
+
*
|
|
2964
|
+
* Up to DSH 0.2.1 the conversation markdown sat in a CSS-module container whose
|
|
2965
|
+
* class carried a `_markdown_` hash segment (`_markdown_<hash>_…`), wrapped in
|
|
2966
|
+
* a stable `[data-dss-prose]` container. DSH 0.2.2 dropped both: the class is
|
|
2967
|
+
* now `<hash>_root` and the prose wrapper is gone, which left every dialog rule
|
|
2968
|
+
* matching zero elements and the whole conversation axis silently inert.
|
|
2969
|
+
*
|
|
2970
|
+
* What 0.2.2 does still expose is the content container
|
|
2971
|
+
* `[data-conversation-content]`, so the markdown block elements inside it
|
|
2972
|
+
* stand in for the scope. A class-substring match degrades safely — no match
|
|
2973
|
+
* means the dialog follows the interface axis, the same behavior as an unknown
|
|
2974
|
+
* token name — but it costs an attribute scan per element per rule, so the
|
|
2975
|
+
* browser half prefers the stable wrapper when it can see one and falls back to
|
|
2976
|
+
* the element list otherwise.
|
|
2970
2977
|
*/
|
|
2978
|
+
var MARKDOWN_BLOCK_ELEMENTS = "p,li,h1,h2,h3,h4,h5,h6,blockquote,td,th,dt,dd";
|
|
2979
|
+
|
|
2971
2980
|
var MARKDOWN_SELECTOR =
|
|
2972
|
-
'[
|
|
2981
|
+
'[data-dss-prose]' +
|
|
2982
|
+
CODE_EXCLUDES +
|
|
2983
|
+
',[data-dss-prose] *' +
|
|
2984
|
+
CODE_EXCLUDES +
|
|
2985
|
+
',[class*="_markdown_" i]' +
|
|
2973
2986
|
CODE_EXCLUDES +
|
|
2974
2987
|
',[class*="_markdown_" i] *' +
|
|
2988
|
+
CODE_EXCLUDES +
|
|
2989
|
+
',[data-conversation-content] :where(' +
|
|
2990
|
+
MARKDOWN_BLOCK_ELEMENTS +
|
|
2991
|
+
')' +
|
|
2975
2992
|
CODE_EXCLUDES;
|
|
2976
2993
|
|
|
2977
2994
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-fonttune",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.3",
|
|
4
4
|
"description": "Font plugin for the DeepSeek Harness Web GUI: the conversation gets its own font, size, line height and weight, the interface font and weight follow it, code keeps its own axis with ligature control, and whole setups save as presets.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"icon": "icon.svg",
|
|
@@ -48,7 +48,9 @@
|
|
|
48
48
|
"0.2.1-alpha.4": "compatible",
|
|
49
49
|
"0.2.1-alpha.5": "compatible",
|
|
50
50
|
"0.2.1-rc.1": "compatible",
|
|
51
|
-
"0.2.1-rc.2": "compatible"
|
|
51
|
+
"0.2.1-rc.2": "compatible",
|
|
52
|
+
"0.2.1-rc.4": "compatible",
|
|
53
|
+
"0.2.2-alpha.2": "compatible"
|
|
52
54
|
}
|
|
53
55
|
}
|
|
54
56
|
},
|