dsh-quick-toc 0.3.0 → 0.3.2

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.md ADDED
@@ -0,0 +1,68 @@
1
+ # Changelog
2
+
3
+ All notable changes to **dsh-quick-toc** are documented here.
4
+
5
+ ## [0.3.2] - 2026-09-08
6
+
7
+ ### Changed
8
+ - Documentation pass: the compatibility matrix and feature list in the READMEs are refreshed, and the npm package description now mentions keyword search and in-chat highlighting.
9
+
10
+ ## [0.3.1] - 2026-09-08
11
+
12
+ ### Fixed
13
+ - Panel and collapsed edge handle no longer float above DSH modals: the base z-index is now 500 (above app popovers at z 100 and the transcript width handles at z 8, but below DSH's modal layer at z 1000), so opening Settings covers the outline instead of the outline sitting on top of it.
14
+ - Circular controls are true circles again on DSH 0.1.5-rc.1: the theme applies `corner-shape: superellipse(1.5)` to every element, which turned `border-radius: 50%` into a squircle. The icon buttons, search-scope toggle, top drag bar and edge handle now declare `corner-shape: round`.
15
+
16
+ ### Changed
17
+ - Compatibility declaration also lists DSH `0.1.5-rc.1` (verified compatible; `engines.dsh` stays `>=0.1.2-rc.1`).
18
+
19
+ ## [0.3.0] - 2026-08-24
20
+
21
+ ### Fixed
22
+ - **DSH 0.1.2-rc.1 compatibility**: the removed `@deepseek-ai/dsh-client-runtime` package no longer breaks plugin loading (externals drift). Runtime hooks now arrive as session-scope slot props.
23
+ - Conversation data access moved from `useSession(s => s.chat.*)` to the session-scope `useChat` hook (`ChatSnapshot.order` + `nodes` map, contributed by `dsh-client-ui-chat`). Node shape unchanged (`kind: user/assistant-step`, `location.turn`, `data.blocks`), so grouping / search / highlight / jump logic is untouched.
24
+ - Panel mount moved into the session-scoped `conversation.input.overlay` slot. In 0.1.2-rc.1 session-scoped hooks only reach a declared *session* slot; a frame-floating `shell.overlay` occupant's `SessionProvider` binds to the root binding (no session id) and rendered the panel slot empty. The panel still draws its own fixed, frame-floating dock (position: fixed), so the overlay seat is only the hook source.
25
+
26
+ ### Changed
27
+ - `dsh.client.inject` now lists `dsh-client-ui-chat` / `dsh-client-ui-conversation` / `dsh-client-ui-layout` instead of the removed runtime package.
28
+ - Dropped the unused `sessions` service from the client inject list.
29
+
30
+ ### Added
31
+ - Version guard: `dsh.compatibility.dshReleases` declares `0.1.2-rc.1: compatible` and `engines.dsh: ">=0.1.2-rc.1"` (dshmarket install-time host-compat preflight); peerDependencies pin `dsh-client-ui-chat` / `dsh-client-ui-conversation` `>=0.1.2-rc.1`. The panel degrades gracefully with a console warning when the `chat` hook is unavailable (older hosts).
32
+
33
+ ## [0.2.2] - 2026-08-24
34
+
35
+ ### Added
36
+ - Keyword search: header magnifier button opens a search box; Enter cycles through matches (n/N counter); Escape or the magnifier toggles it closed
37
+ - Search scope toggle: 标题 (heading titles only) or 全文 (also user messages and AI reply texts)
38
+ - In-chat match highlighting: matched keywords are highlighted in the conversation; the current match gets a distinct highlight and is scrolled to the upper-middle of the viewport
39
+ - Every occurrence counts toward n/N (multiple hits in one message = multiple matches)
40
+ - Heading-less turns get a standalone time entry; all group headers show the turn's first-line preview next to the time (click to jump)
41
+
42
+ ### Changed
43
+ - Panel collapse animation unified for both docks: clip-path hides the panel at the sidebar/screen edge (shadow removed to avoid clipping artifacts)
44
+ - Inactive outline groups dimmed to 0.6 opacity
45
+
46
+ ## [0.1.1] - 2026-08-17
47
+
48
+ ### Changed
49
+ - Release workflow also uploads a stable-named tarball (`dsh-quick-toc.tgz`) so `/releases/latest/download/` always resolves to the newest release
50
+
51
+ ## [0.1.0] - 2026-08-17
52
+
53
+ ### Added
54
+ - Turn-grouped outline: each user message + its AI replies form one group, with the group's end time as the header
55
+ - Auto-follow highlight: turns visible in the conversation viewport light up in the outline (multiple at once); the outline auto-loads and scrolls to keep them visible
56
+ - Smooth jump: clicking a heading glides to the exact heading position in the conversation (with a small top offset)
57
+ - Dock left/right with a draggable top bar, resizable from the edges/corner, collapsible into a draggable edge handle
58
+ - Scrollbar follows the dock side (left when docked left, right when docked right)
59
+ - Paged rendering: latest groups first; scrolling the outline to the top loads older groups
60
+ - Auto "load older": when the outline reaches the top with everything loaded, it clicks the conversation's own load-more button
61
+ - Header time jump: clicking a group's time label jumps to that turn's start
62
+ - Markdown-aware titles: `**bold**`, `*italic*`, `` `code` ``, `[links](url)`, `~~strike~~` stripped from heading text
63
+ - Persisted panel state (dock side, position, size) with automatic migration from older key names
64
+ - Auto-hides when the conversation has no headings; light/dark theme support
65
+
66
+ ### Published
67
+ - npm: `dsh-quick-toc@0.1.0`
68
+ - GitHub: `LyaxZ/dsh-quick-toc` with auto-release workflow (tag push -> npm pack -> release asset)
package/README.en.md CHANGED
@@ -20,8 +20,9 @@ A quick conversation TOC plugin for [DeepSeek Harness](https://github.com/deepse
20
20
 
21
21
  | Plugin | DSH |
22
22
  | --- | --- |
23
- | **0.3.0** | **≥ 0.1.2-rc.1** (new slot architecture) |
24
- | 0.2.2 | DSH versions before 0.1.2-rc.1 |
23
+ | **0.3.2** (latest) | **≥ 0.1.2-rc.1** (verified on 0.1.2-rc.1 / 0.1.5-rc.1) |
24
+ | 0.3.0 0.3.1 | same |
25
+ | 0.2.2 | DSH versions before 0.1.2-rc.1 (install as `dsh-quick-toc@legacy`) |
25
26
 
26
27
  0.3.0 re-targeted the host integration (new slot architecture + `useChat` session data) and **only supports DSH 0.1.2-rc.1 and above**; for older DSH builds install 0.2.2. On install/update the DSH market pre-flights host compatibility from `dsh.compatibility.dshReleases` and `peerDependencies` in package.json and warns on a mismatch.
27
28
 
package/README.md CHANGED
@@ -20,8 +20,9 @@
20
20
 
21
21
  | 插件版本 | DSH 版本 |
22
22
  | --- | --- |
23
- | **0.3.0** | **≥ 0.1.2-rc.1**(新 slot 架构) |
24
- | 0.2.2 | 0.1.2-rc.1 之前的旧版 DSH |
23
+ | **0.3.2**(最新) | **≥ 0.1.2-rc.1**(已在 0.1.2-rc.1 / 0.1.5-rc.1 验证) |
24
+ | 0.3.0 0.3.1 | 同上 |
25
+ | 0.2.2 | 0.1.2-rc.1 之前的旧版 DSH(npm 上 `dsh-quick-toc@legacy`) |
25
26
 
26
27
  0.3.0 重写了与宿主的对接(新版 slot 架构 + `useChat` 会话数据),**只支持 DSH 0.1.2-rc.1 及以上**;旧版 DSH 请安装 0.2.2。安装/更新时 DSH 市场会根据 package.json 的 `dsh.compatibility.dshReleases` 与 `peerDependencies` 做 host 兼容预检,版本不符会给出提示。
27
28
 
package/lib/client.js CHANGED
@@ -15,7 +15,10 @@ window.__ModuleLoader__.load({
15
15
  var PANEL_WIDTH = 288;
16
16
  // Very high base so the portal-rendered panel (top-level stacking context)
17
17
  // always sits above DSH content and its transcript width handles.
18
- var Z_BASE = 2200;
18
+ // Panel layer: above the app's popovers (z 100) and the transcript width
19
+ // handles (z 8), but BELOW DSH's modal layer (settings/image viewer, z 1000)
20
+ // so opening settings covers the panel instead of the panel floating on top.
21
+ var Z_BASE = 500;
19
22
  var EASE = "cubic-bezier(0.22, 0.9, 0.3, 1)"; // smooth non-linear slide
20
23
 
21
24
  // ---------- markdown helpers ----------
@@ -960,6 +963,7 @@ window.__ModuleLoader__.load({
960
963
  alignItems: "center",
961
964
  justifyContent: "center",
962
965
  borderRadius: "50%",
966
+ cornerShape: "round",
963
967
  background: "var(--dsw-alias-interactive-bg-hover, rgba(128,128,128,0.16))",
964
968
  border: "none",
965
969
  color: C.muted,
@@ -1073,6 +1077,7 @@ window.__ModuleLoader__.load({
1073
1077
  width: 56,
1074
1078
  height: 5,
1075
1079
  borderRadius: 999,
1080
+ cornerShape: "round",
1076
1081
  background: "var(--dsw-alias-border-l2, rgba(128,128,128,0.55))",
1077
1082
  opacity: 0.35,
1078
1083
  transition: "opacity 0.2s ease",
@@ -1121,6 +1126,7 @@ window.__ModuleLoader__.load({
1121
1126
  alignItems: "center",
1122
1127
  justifyContent: "center",
1123
1128
  borderRadius: "50%",
1129
+ cornerShape: "round",
1124
1130
  background: "var(--dsw-alias-interactive-bg-hover, rgba(128,128,128,0.16))",
1125
1131
  border: "none",
1126
1132
  color: C.muted,
@@ -1164,6 +1170,7 @@ window.__ModuleLoader__.load({
1164
1170
  alignItems: "center",
1165
1171
  justifyContent: "center",
1166
1172
  borderRadius: "50%",
1173
+ cornerShape: "round",
1167
1174
  background: "var(--dsw-alias-interactive-bg-hover, rgba(128,128,128,0.16))",
1168
1175
  border: "none",
1169
1176
  color: C.muted,
@@ -1234,6 +1241,7 @@ window.__ModuleLoader__.load({
1234
1241
  alignItems: "center",
1235
1242
  background: "var(--dsw-alias-interactive-bg-hover, rgba(128,128,128,0.14))",
1236
1243
  borderRadius: 999,
1244
+ cornerShape: "round",
1237
1245
  padding: "6px 12px"
1238
1246
  },
1239
1247
  children: [
@@ -1320,6 +1328,7 @@ window.__ModuleLoader__.load({
1320
1328
  alignItems: "center",
1321
1329
  justifyContent: "center",
1322
1330
  borderRadius: "50%",
1331
+ cornerShape: "round",
1323
1332
  fontSize: 11,
1324
1333
  color: searchScope === "full" ? "var(--dsw-alias-brand-primary, #4f8cff)" : C.muted,
1325
1334
  background: searchScope === "full" ? "rgba(79,140,255,0.18)" : "var(--dsw-alias-interactive-bg-hover, rgba(128,128,128,0.14))",
@@ -1442,6 +1451,7 @@ window.__ModuleLoader__.load({
1442
1451
  width: 12,
1443
1452
  height: 80,
1444
1453
  borderRadius: 999,
1454
+ cornerShape: "round",
1445
1455
  background: "var(--dsw-alias-border-l2, rgba(160,160,160,0.55))",
1446
1456
  opacity: handleShown ? 0.5 : 0,
1447
1457
  transition: "opacity 0.35s ease, background 0.25s ease",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dsh-quick-toc",
3
- "version": "0.3.0",
4
- "description": "Quick conversation TOC for DeepSeek Harness: markdown heading outline grouped by turn, with auto-follow highlight and smooth jump navigation",
3
+ "version": "0.3.2",
4
+ "description": "Conversation TOC for DeepSeek Harness (DSH): turn-grouped Markdown heading outline with keyword search (title/full-text scope), in-chat match highlighting, auto-follow and smooth jump navigation",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
7
7
  "files": [
@@ -9,6 +9,7 @@
9
9
  "cordis.patch.yml",
10
10
  "README.md",
11
11
  "README.en.md",
12
+ "CHANGELOG.md",
12
13
  "LICENSE"
13
14
  ],
14
15
  "engines": {
@@ -33,7 +34,8 @@
33
34
  },
34
35
  "compatibility": {
35
36
  "dshReleases": {
36
- "0.1.2-rc.1": "compatible"
37
+ "0.1.2-rc.1": "compatible",
38
+ "0.1.5-rc.1": "compatible"
37
39
  }
38
40
  }
39
41
  },