dsh-quick-toc 0.7.12 → 0.7.13
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 +5 -0
- package/CHANGELOG.md +5 -0
- package/README.en.md +2 -1
- package/README.md +2 -1
- package/package.json +1 -1
package/CHANGELOG.en.md
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to **dsh-quick-toc** are documented here. Chinese version: [CHANGELOG.md](CHANGELOG.md).
|
|
4
4
|
|
|
5
|
+
## [0.7.13] - 2026-09-28
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
- **The compatibility section keeps only the conclusions**: the README no longer walks through the historical per-release verification; it keeps the declared host range, why a prerelease needs an explicit branch, the 0.2.0-rc.1 admission note and the market's rule for reading compatibility information. The per-release support statements stay in the changelog.
|
|
9
|
+
|
|
5
10
|
## [0.7.12] - 2026-09-28
|
|
6
11
|
|
|
7
12
|
### Changed
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
**dsh-quick-toc** 的重要变更都记录在这里。英文版见 [CHANGELOG.en.md](CHANGELOG.en.md)。
|
|
4
4
|
|
|
5
|
+
## [0.7.13] - 2026-09-28
|
|
6
|
+
|
|
7
|
+
### 变更
|
|
8
|
+
- **兼容性说明只保留结论**:README 的兼容性小节不再逐版复述历史验收过程,只保留声明的宿主范围、预发布版本为什么要显式留分支、0.2.0-rc.1 的准入说明,以及市场读取兼容信息的规则。逐版的支持情况仍在更新日志里。
|
|
9
|
+
|
|
5
10
|
## [0.7.12] - 2026-09-28
|
|
6
11
|
|
|
7
12
|
### 变更
|
package/README.en.md
CHANGED
|
@@ -51,7 +51,7 @@ A conversation TOC plugin for [DeepSeek Harness](https://github.com/deepseek-ai/
|
|
|
51
51
|
|
|
52
52
|
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).
|
|
53
53
|
|
|
54
|
-
`engines.dsh` is declared as **`>=0.1.5-rc.3 <0.1.7-0 || >=0.1.7-alpha.1 <0.3.0-0`**, with the peer ranges shaped the same way (a prerelease
|
|
54
|
+
`engines.dsh` is declared as **`>=0.1.5-rc.3 <0.1.7-0 || >=0.1.7-alpha.1 <0.3.0-0`**, with the peer ranges shaped the same way (a prerelease needs an explicit branch: node-semver admits one only when some comparator in the range sits on that version's exact `major.minor.patch` tuple and carries a prerelease tag of its own). **0.2.0-rc.1 was tested** with no code change: only the ceiling moved from `<0.2.0-0` to `<0.3.0-0`, because a ceiling below 0.2.0 makes DSH's plugin-compatibility preflight refuse to load the plugin. When installing or updating, the market reads the npm-latest `engines.dsh` and the peer ranges of the `@deepseek-ai/dsh-*` packages present on the machine; `dsh.compatibility.dshReleases` is this repository's own record — neither DSH nor the market reads it.
|
|
55
55
|
|
|
56
56
|
## Install
|
|
57
57
|
|
|
@@ -117,6 +117,7 @@ A missing `turnOutline` means the host has no such projection, and the staged `j
|
|
|
117
117
|
- The curtain and the docked panel **share one list DOM**: the curtain only moves the panel itself into a full-width container that drops from the lower edge of the tab strip (in curtain mode the panel swaps to a different geometry — relative positioning, 100% width and height, no panel scale), and that container stays mounted as a zero-size pass-through while the curtain is up, so opening or closing it never rebuilds the list or loses the scroll position. Cross-session search goes through the client `ctx.get("sessions")` service's `search(query, signal)` (the host's session full-text index, at most 20 hits per search); each session's reading position lives in this browser (`dsh-quick-toc.readPos.v1`, valid for half an hour).
|
|
118
118
|
- The configuration card is registered into all three seats at once, and which one it lands in is the running host's business: on 0.1.5-rc.3 it is `settings.plugin.item` (keyed on the plugin's namespace; the slot is dispatched only for namespaces the Host actually serves, so a deployment without the host half simply shows no card and the panel is unaffected); on either 0.1.7 line (alpha and rc) it is two places on the sidebar's Plugins page — the plugin's own entry in the Official group (`plugins.item`, `id` `quick-toc`, `label` from "Conversation Outline", `order` 50) and the configuration area of its bundle page (`plugins.bundle.config`, keyed on the npm package name). Both 0.1.7 seats hand the card a `view`, so it starts expanded there (opening the entry or the bundle page IS the expansion gesture); the rc line's configuration cell passes no props at all and keeps the collapsed list shape. Every registration happens only once a settings scope has bound, and the card and the panel share the store above, which is what makes the two live in both directions.
|
|
119
119
|
- Changes to `lib/client.js` show up after a page refresh (client modules are served under a content hash and DSH's client HMR pushes reloads); changes to `lib/index.js` (the host half) need a DSH restart
|
|
120
|
+
- Revisions to the release wording land only in the **repository** and on the **GitHub Release page**: the `CHANGELOG.md` bundled in an already-published npm version is the one from release time, and **npm version contents are immutable** (0.7.5/0.7.6 still carry the long-form text from before the 2026-09-19 rewrite, and 0.7.9 still carries one sentence that was corrected afterwards). Every release runs `relnotes.mjs`, which checks that the repo (zh/en), the npm tarball (zh/en) and the release body (zh/en) all read identically.
|
|
120
121
|
|
|
121
122
|
## License
|
|
122
123
|
|
package/README.md
CHANGED
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
|
|
52
52
|
每个大版本只列该系列最新的一个补丁版本(新功能引入的缺陷都在其后的补丁里修掉了,所以同一个大版本内直接用最新补丁即可;旧补丁仍可继续用,插件不破坏既有接口)。
|
|
53
53
|
|
|
54
|
-
`engines.dsh` 声明为 **`>=0.1.5-rc.3 <0.1.7-0 || >=0.1.7-alpha.1 <0.3.0-0`**,peer
|
|
54
|
+
`engines.dsh` 声明为 **`>=0.1.5-rc.3 <0.1.7-0 || >=0.1.7-alpha.1 <0.3.0-0`**,peer 范围同形(预发布版本要显式留分支:node-semver 只在一个范围的某个比较符与该版本落在同一个 `major.minor.patch` 元组、且自身带预发布标签时才放行它)。0.2.0-rc.1 上实测通过:插件代码未改动,只是把上限从 `<0.2.0-0` 放宽到 `<0.3.0-0`——上限卡在 0.2.0 之前时,DSH 的插件兼容性预检会直接拒绝加载本插件。安装或更新时,市场读的是 npm latest 的 `engines.dsh` 与本机 `@deepseek-ai/dsh-*` 的 peer 范围;`dsh.compatibility.dshReleases` 只是本仓库自己的记录,DSH 与市场都不读。
|
|
55
55
|
|
|
56
56
|
## 安装
|
|
57
57
|
|
|
@@ -117,6 +117,7 @@ dsh plugin --profile web add <插件目录路径>
|
|
|
117
117
|
- 幕布与停靠面板**共用同一份列表 DOM**:幕布只是把面板本体搬进一个从标签条下沿落下的整宽容器(面板在幕布态换一套几何:相对定位、宽高 100%、不套用面板缩放),容器本身常驻挂载、收起时是一个 0×0 的直通盒,所以开关幕布不会重建列表、也不会丢掉滚动位置。跨会话检索走客户端 `ctx.get("sessions")` 的 `search(query, signal)`(走宿主的会话全文索引,一次最多 20 条);每个会话的阅读位置存在浏览器本地(`dsh-quick-toc.readPos.v1`,半小时内有效)。
|
|
118
118
|
- 插件配置卡片按宿主实际提供的槽位注册,三处一起挂、装上哪一处由宿主决定:0.1.5-rc.3 上是 `settings.plugin.item`(`key` 为插件命名空间,该槽按宿主实际服务的命名空间派发,宿主半未加载时卡片自然不出现,面板不受影响);0.1.7 两条线(alpha 与 rc)上是侧边栏「插件」页的两处——「官方」分组里插件自己的条目(`plugins.item`,`id` 为 `quick-toc`,`label` 取「对话大纲」,`order` 50)与该 bundle 页面上的配置区(`plugins.bundle.config`,`key` 为 npm 包名)。0.1.7 的插件页渲染这两处时都会带上 `view`,卡片因此默认展开(点进条目或 bundle 页本身就是展开动作);rc 线的配置单元不带任何 props,卡片保持收拢的列表形态。所有注册都只在设置作用域绑定成功后才做,卡片与面板共享上面那个 store,因此两边实时互通。
|
|
119
119
|
- 修改 `lib/client.js` 后刷新页面即可看到变化(客户端模块按内容哈希发版,DSH 的客户端 HMR 也会推送重载);改 `lib/index.js`(宿主半)需重启 DSH
|
|
120
|
+
- 发布说明的措辞修订只落在**仓库**与 **GitHub Release 页面**上:npm 上已发布版本包内的 `CHANGELOG.md` 是发布当时的版本,**npm 的版本内容不可变**,改不了(例如 0.7.5/0.7.6 包内仍是 2026-09-19 改写前的长版、0.7.9 包内仍有一句后来被修正的说法)。每次发版会用 `relnotes.mjs` 核对"仓库中英 == npm 包内中英 == Release 正文中英"四处一致。
|
|
120
121
|
|
|
121
122
|
## License
|
|
122
123
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-quick-toc",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.13",
|
|
4
4
|
"description": "Conversation TOC for DeepSeek Harness (DSH): a whole-session, turn-grouped Markdown outline with hover previews, a level filter, a full-width curtain, jump-to-end buttons, title/full-text/cross-session search and a Chinese/English interface.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|