dsh-session-guard 0.4.0 → 3.0.0
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.ja.md +19 -0
- package/CHANGELOG.ko.md +19 -0
- package/CHANGELOG.md +19 -0
- package/INSTALL.ja.md +14 -3
- package/INSTALL.ko.md +14 -3
- package/INSTALL.md +17 -4
- package/INSTALL.zh.md +12 -3
- package/LICENSE +21 -21
- package/README.en.md +14 -2
- package/README.ja.md +37 -1
- package/README.ko.md +37 -1
- package/README.md +34 -10
- package/cordis.patch.yml +10 -10
- package/lib/client.js +656 -656
- package/package.json +1 -1
- package/src/bridge.js +136 -136
- package/src/client/index.ts +66 -66
- package/src/client/pause-button-text.ts +60 -60
- package/src/client/pause-button.tsx +129 -129
- package/src/client/styles.ts +30 -30
- package/src/detect.js +27 -27
- package/src/gate.js +93 -93
- package/src/pause-store.js +101 -101
- package/src/scheduler.js +42 -42
- package/src/step-gate.js +399 -399
- package/src/store.js +77 -77
package/CHANGELOG.ja.md
CHANGED
|
@@ -6,6 +6,25 @@
|
|
|
6
6
|
- [日本語 changelog](./CHANGELOG.ja.md)
|
|
7
7
|
- [한국어 changelog](./CHANGELOG.ko.md)
|
|
8
8
|
|
|
9
|
+
## 0.4.0 — 2026-09-18(誤ったバージョン番号。3.0.0 に置き換え)
|
|
10
|
+
|
|
11
|
+
### 修正
|
|
12
|
+
|
|
13
|
+
- **バージョン識別**:本ラインは `0.4.0` として公開されましたが、`dsh.plugin.json` と本変更履歴は
|
|
14
|
+
すでに `3.0.0` を名乗っており、1 つの成果物に 2 つのバージョン番号が存在していました。
|
|
15
|
+
`package.json` を `3.0.0` に統一し、パッケージ版・マニフェスト版・変更履歴が一致しました。
|
|
16
|
+
npm のバージョンは不変のため `0.4.0` は歴史的記録として残します。`3.0.0` 公開後は
|
|
17
|
+
`dist-tag dsh-0.1.5` を `3.0.0` に向け直すべきです。
|
|
18
|
+
- **ドキュメント**:README/INSTALL(zh/en/ja/ko)が兄弟ラインを `main` にあると説明していたのを
|
|
19
|
+
修正。0.1.2 ラインのリリースブランチは **`legacy/0.1.2`**(npm dist-tag `dsh-0.1.2`、
|
|
20
|
+
バージョン `0.3.1`)で、`main` は `0.2.0-beta.1` で凍結されています。INSTALL.zh/ja/ko の
|
|
21
|
+
重複したブランチ断片を修正し、dist-tag を明示したインストールコマンドを
|
|
22
|
+
記載。「2.x / 3.x」は**ラインの通称**でありバージョン番号ではないことを明記しました。
|
|
23
|
+
|
|
24
|
+
### 備考
|
|
25
|
+
|
|
26
|
+
- **ソース変更なし**(`3.0.0` 比)。`0.4.0` は同一ツリーのパッケージングのみの公開です。
|
|
27
|
+
|
|
9
28
|
## 3.0.0 — 2026-09-14
|
|
10
29
|
|
|
11
30
|
### 変更
|
package/CHANGELOG.ko.md
CHANGED
|
@@ -6,6 +6,25 @@
|
|
|
6
6
|
- [日本語 changelog](./CHANGELOG.ja.md)
|
|
7
7
|
- [한국어 changelog](./CHANGELOG.ko.md)
|
|
8
8
|
|
|
9
|
+
## 0.4.0 — 2026-09-18 (잘못된 버전 번호, 3.0.0으로 대체됨)
|
|
10
|
+
|
|
11
|
+
### 수정
|
|
12
|
+
|
|
13
|
+
- **버전 식별**: 본 라인은 `0.4.0`으로 배포되었지만 `dsh.plugin.json`과 본 변경 기록은 이미
|
|
14
|
+
`3.0.0`을 표기하고 있어, 하나의 산출물에 두 개의 버전 번호가 존재했습니다. `package.json`을
|
|
15
|
+
`3.0.0`으로 통일하여 패키지 버전·매니페스트 버전·변경 기록이 일치합니다. npm 버전은 불변이므로
|
|
16
|
+
`0.4.0`은 역사적 기록으로 남깁니다. `3.0.0` 배포 후에는 `dist-tag dsh-0.1.5`를 `3.0.0`으로
|
|
17
|
+
다시 지정해야 합니다.
|
|
18
|
+
- **문서**: README/INSTALL(zh/en/ja/ko)이 형제 라인을 `main`에 있다고 설명하던 것을 수정.
|
|
19
|
+
0.1.2 라인의 릴리스 브랜치는 **`legacy/0.1.2`**(npm dist-tag `dsh-0.1.2`, 버전 `0.3.1`)이며
|
|
20
|
+
`main`은 `0.2.0-beta.1`에서 동결되었습니다. INSTALL.zh/ja/ko의 중복된
|
|
21
|
+
브랜치 조각을 수정하고, dist-tag를 명시한 설치 명령을 기재했습니다.
|
|
22
|
+
"2.x / 3.x"는 **라인 통칭**이며 버전 번호가 아님을 명시.
|
|
23
|
+
|
|
24
|
+
### 비고
|
|
25
|
+
|
|
26
|
+
- **소스 변경 없음**(`3.0.0` 대비). `0.4.0`은 동일 트리의 패키징 전용 배포입니다.
|
|
27
|
+
|
|
9
28
|
## 3.0.0 — 2026-09-14
|
|
10
29
|
|
|
11
30
|
### 변경
|
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,25 @@ All notable changes to `dsh-session-guard` are recorded here. Versions follow se
|
|
|
6
6
|
- [日本語 changelog](./CHANGELOG.ja.md)
|
|
7
7
|
- [한국어 changelog](./CHANGELOG.ko.md)
|
|
8
8
|
|
|
9
|
+
## 0.4.0 — 2026-09-18 (mis-versioned; superseded by 3.0.0)
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- **Version identity.** This line was published as `0.4.0` while `dsh.plugin.json` and this
|
|
14
|
+
changelog already said `3.0.0` — one artifact with two version numbers. `package.json` is now
|
|
15
|
+
`3.0.0`, so the package version, the manifest version and the changelog agree. `0.4.0` is kept
|
|
16
|
+
here as a historical record because npm versions are immutable; `dist-tag dsh-0.1.5` should be
|
|
17
|
+
repointed to `3.0.0` once it is published.
|
|
18
|
+
- **Docs.** README/INSTALL (zh/en/ja/ko) no longer describe the sibling line as living on `main`.
|
|
19
|
+
The 0.1.2 line's release branch is **`legacy/0.1.2`** (npm dist-tag `dsh-0.1.2`, version `0.3.1`);
|
|
20
|
+
`main` is frozen at `0.2.0-beta.1`. The duplicated branch fragment in the INSTALL.zh/ja/ko install
|
|
21
|
+
command is fixed, explicit dist-tag install commands are documented, and "2.x / 3.x" is
|
|
22
|
+
now marked as a **line nickname** rather than a version number.
|
|
23
|
+
|
|
24
|
+
### Notes
|
|
25
|
+
|
|
26
|
+
- **No source changes** relative to `3.0.0`; `0.4.0` is a packaging-only publish of the same tree.
|
|
27
|
+
|
|
9
28
|
## 3.0.0 — 2026-09-14
|
|
10
29
|
|
|
11
30
|
### Changed
|
package/INSTALL.ja.md
CHANGED
|
@@ -22,11 +22,22 @@ dsh --version
|
|
|
22
22
|
## 1. インストール
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
dsh plugin --profile web add
|
|
25
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.5
|
|
26
|
+
|
|
27
|
+
# または git ブランチを直接指定
|
|
28
|
+
dsh plugin --profile web add github:drscrewdriver/dsh-session-guard#compat/0.1.5
|
|
26
29
|
```
|
|
27
30
|
|
|
28
|
-
`compat/0.1.5` は DSH `0.1.5-rc.x`
|
|
29
|
-
|
|
31
|
+
`compat/0.1.5` は DSH `0.1.5-rc.x` 専用ラインです:npm パッケージバージョン **`3.0.0`**、
|
|
32
|
+
dist-tag **`dsh-0.1.5`**、`package.json` と `dsh.plugin.json` の `engines.dsh` はいずれも
|
|
33
|
+
`>=0.1.5-rc.2 <0.2.0-0`。
|
|
34
|
+
|
|
35
|
+
DSH `0.1.2-rc.x` ホストは **`legacy/0.1.2`** ブランチ(npm dist-tag `dsh-0.1.2`、バージョン `0.3.1`)
|
|
36
|
+
を使用してください。`main` は `0.2.0-beta.1` で凍結済みで、**0.1.2 ラインのリリースブランチではありません**。
|
|
37
|
+
|
|
38
|
+
> ⚠️ 裸のパッケージ名 `dsh-session-guard` に依存しないでください:npm の `latest` タグは
|
|
39
|
+
> 排他的な 2 つのバージョンライン(`engines.dsh` が semver プレリリース照合で排他)を
|
|
40
|
+
> 同時に提供できません。必ず dist-tag を明示してください。
|
|
30
41
|
|
|
31
42
|
dsh web を再起動し、ページをリフレッシュ。
|
|
32
43
|
|
package/INSTALL.ko.md
CHANGED
|
@@ -22,11 +22,22 @@ dsh --version
|
|
|
22
22
|
## 1. 설치
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
dsh plugin --profile web add
|
|
25
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.5
|
|
26
|
+
|
|
27
|
+
# 또는 git 브랜치 직접 지정
|
|
28
|
+
dsh plugin --profile web add github:drscrewdriver/dsh-session-guard#compat/0.1.5
|
|
26
29
|
```
|
|
27
30
|
|
|
28
|
-
`compat/0.1.5`는 DSH `0.1.5-rc.x` 전용
|
|
29
|
-
|
|
31
|
+
`compat/0.1.5`는 DSH `0.1.5-rc.x` 전용 라인입니다: npm 패키지 버전 **`3.0.0`**,
|
|
32
|
+
dist-tag **`dsh-0.1.5`**, `package.json`과 `dsh.plugin.json`의 `engines.dsh` 모두
|
|
33
|
+
`>=0.1.5-rc.2 <0.2.0-0`.
|
|
34
|
+
|
|
35
|
+
DSH `0.1.2-rc.x` 호스트는 **`legacy/0.1.2`** 브랜치(npm dist-tag `dsh-0.1.2`, 버전 `0.3.1`)를
|
|
36
|
+
사용하세요. `main`은 `0.2.0-beta.1`에서 동결되었고 **0.1.2 라인의 릴리스 브랜치가 아닙니다**.
|
|
37
|
+
|
|
38
|
+
> ⚠️ 맨 패키지명 `dsh-session-guard`에 의존하지 마세요: npm `latest` 태그는
|
|
39
|
+
> 상호 배타적인 두 버전 라인(`engines.dsh`가 semver 프리릴리스 매칭상 배타)을
|
|
40
|
+
> 동시에 제공할 수 없습니다. 반드시 dist-tag를 명시하세요.
|
|
30
41
|
|
|
31
42
|
dsh web을 재시작하고 페이지를 새로고침.
|
|
32
43
|
|
package/INSTALL.md
CHANGED
|
@@ -24,11 +24,23 @@ dsh --version
|
|
|
24
24
|
## 1. Install
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.5
|
|
28
|
+
|
|
29
|
+
# or straight from the git branch
|
|
27
30
|
dsh plugin --profile web add github:drscrewdriver/dsh-session-guard#compat/0.1.5
|
|
28
31
|
```
|
|
29
32
|
|
|
30
|
-
`compat/0.1.5` is the DSH `0.1.5-rc.x` line
|
|
31
|
-
|
|
33
|
+
`compat/0.1.5` is the DSH `0.1.5-rc.x` line: npm package version **`3.0.0`**, dist-tag
|
|
34
|
+
**`dsh-0.1.5`**, with `engines.dsh = >=0.1.5-rc.2 <0.2.0-0` in **both** `package.json` and
|
|
35
|
+
`dsh.plugin.json`.
|
|
36
|
+
|
|
37
|
+
DSH `0.1.2-rc.x` hosts should use the **`legacy/0.1.2`** branch (npm dist-tag `dsh-0.1.2`,
|
|
38
|
+
version `0.3.1`). **`main` is frozen at `0.2.0-beta.1` and is no longer the 0.1.2 line's
|
|
39
|
+
release branch.**
|
|
40
|
+
|
|
41
|
+
> ⚠️ Do not rely on the bare package name `dsh-session-guard`: npm's `latest` tag cannot
|
|
42
|
+
> serve two mutually exclusive version lines (their `engines.dsh` ranges are exclusive under
|
|
43
|
+
> semver prerelease matching) — always pin the dist-tag explicitly.
|
|
32
44
|
|
|
33
45
|
Restart dsh web and refresh the page.
|
|
34
46
|
|
|
@@ -58,16 +70,17 @@ npm test
|
|
|
58
70
|
|
|
59
71
|
```bash
|
|
60
72
|
dsh plugin --profile web remove dsh-session-guard
|
|
61
|
-
dsh plugin --profile web add
|
|
73
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.5
|
|
62
74
|
```
|
|
63
75
|
|
|
64
76
|
Restart dsh web and refresh the page. Settings live in `$DSH_HOME/settings.yaml` under the
|
|
65
77
|
`session-guard` namespace and survive the upgrade; new keys (`providerGuard`, `deferredMode`, …)
|
|
66
78
|
fall back to their defaults until you touch them.
|
|
67
79
|
|
|
68
|
-
From `0.1.3
|
|
80
|
+
From **plugin** `0.1.3` / `0.1.4-beta.1` to **plugin** `0.1.5-beta.1` the only behavior change is that peak hours now
|
|
69
81
|
block **only** official-source targets by default. To restore the old blanket behavior set
|
|
70
82
|
`providerGuard: false` (or `officialProviders` / `officialBaseURLs` to narrow the verdict).
|
|
83
|
+
(Those are plugin versions, not DSH versions — do not confuse them with the host ranges above.)
|
|
71
84
|
|
|
72
85
|
## 4. Troubleshooting
|
|
73
86
|
|
package/INSTALL.zh.md
CHANGED
|
@@ -22,11 +22,20 @@ dsh --version
|
|
|
22
22
|
## 1. 安装
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
dsh plugin --profile web add
|
|
25
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.5
|
|
26
|
+
|
|
27
|
+
# 或直接走 git 分支
|
|
28
|
+
dsh plugin --profile web add github:drscrewdriver/dsh-session-guard#compat/0.1.5
|
|
26
29
|
```
|
|
27
30
|
|
|
28
|
-
`compat/0.1.5` 是 DSH `0.1.5-rc.x`
|
|
29
|
-
|
|
31
|
+
`compat/0.1.5` 是 DSH `0.1.5-rc.x` 专线:npm 包版本号 **`3.0.0`**,dist-tag **`dsh-0.1.5`**,
|
|
32
|
+
`package.json` 与 `dsh.plugin.json` 的 `engines.dsh` 均为 `>=0.1.5-rc.2 <0.2.0-0`。
|
|
33
|
+
|
|
34
|
+
DSH `0.1.2-rc.x` 宿主请改用 **`legacy/0.1.2`** 分支(npm dist-tag `dsh-0.1.2`,版本 `0.3.1`)。
|
|
35
|
+
`main` 已冻结在 `0.2.0-beta.1`,**不再是 0.1.2 线的发布分支**。
|
|
36
|
+
|
|
37
|
+
> ⚠️ 不要依赖裸包名 `dsh-session-guard`:npm 的 `latest` 标签无法同时服务两条互斥版本线
|
|
38
|
+
> (两条线的 `engines.dsh` 按 semver 预发布规则互斥),必须显式指定 dist-tag。
|
|
30
39
|
|
|
31
40
|
重启 dsh web 并刷新页面。
|
|
32
41
|
|
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 dsh-session-guard contributors
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 dsh-session-guard contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.en.md
CHANGED
|
@@ -82,11 +82,23 @@ A cordis plugin assembled via the `dsh plugin` command and a bundle patch — no
|
|
|
82
82
|
## Installation
|
|
83
83
|
|
|
84
84
|
```bash
|
|
85
|
+
# DSH 0.1.5-rc.x hosts (this line, dist-tag dsh-0.1.5)
|
|
86
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.5
|
|
87
|
+
|
|
88
|
+
# or straight from the git branch
|
|
85
89
|
dsh plugin --profile web add github:drscrewdriver/dsh-session-guard#compat/0.1.5
|
|
90
|
+
|
|
91
|
+
# DSH 0.1.2-rc.x hosts must use the 0.1.2 line instead
|
|
92
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.2
|
|
86
93
|
```
|
|
87
94
|
|
|
88
|
-
`compat/0.1.5` is the DSH `0.1.5-rc.x` line
|
|
89
|
-
|
|
95
|
+
`compat/0.1.5` is the DSH `0.1.5-rc.x` line, npm version **`3.0.0`**. DSH `0.1.2-rc.x` hosts must
|
|
96
|
+
use the **`legacy/0.1.2`** branch (npm dist-tag `dsh-0.1.2`, version `0.3.1`). **`main` is frozen at
|
|
97
|
+
`0.2.0-beta.1` and is no longer the 0.1.2 line's release branch.**
|
|
98
|
+
|
|
99
|
+
> ⚠️ Do not rely on the bare package name `dsh-session-guard`: npm's `latest` tag cannot serve two
|
|
100
|
+
> mutually exclusive version lines (their `engines.dsh` ranges are exclusive under semver
|
|
101
|
+
> prerelease matching) — always pin the dist-tag explicitly.
|
|
90
102
|
|
|
91
103
|
Restart dsh web and refresh the page after installation.
|
|
92
104
|
|
package/README.ja.md
CHANGED
|
@@ -26,6 +26,29 @@
|
|
|
26
26
|
|
|
27
27
|
> **互換性について:** v0.1.1 には日本語(`ja`)と韓国語(`ko`)の辞書が含まれていますが、現在の公式 DSH リリースは `LocaleRuntime` 経由で `zh` と `en` のみを提供しています。純正 DSH で `ja` または `ko` を選択すると `locale "<id>" is not registered` で失敗します。公式 DSH が对应的 locale ID を追加するまで利用できません。上級ユーザーは DSH フォークを保守して更新してください。
|
|
28
28
|
|
|
29
|
+
> **▼ DSH バージョン適合**
|
|
30
|
+
>
|
|
31
|
+
> | DSH バージョン | ロード | 設定登録 | セッションイベント / ゲート | クライアント側 |
|
|
32
|
+
> | --- | --- | --- | --- | --- |
|
|
33
|
+
> | 0.1.0-rc.7 ~ 0.1.1-rc.x | ➖ 本ライン対象外(`legacy/0.1.2` 以前の歴史バージョン) | `ctx.settings.register(ns, schema, { base })` | ✅ 形状一致 | ✅ プラットフォーム値の import なし |
|
|
34
|
+
> | 0.1.2-alpha.2+ / 0.1.2-rc.1 | ➖ 本ライン対象外 → `legacy/0.1.2`(npm `@dsh-0.1.2`) | `register` は維持(`installSection` 追加) | ✅ 形状一致 | ✅ プラットフォーム値の import なし |
|
|
35
|
+
> | **0.1.5-rc.2** | ✅(**本ライン**、dist-tag `dsh-0.1.5`) | `register` は維持(文字列名前空間) | ✅ イベントは `snapshotEvents()` の二重経路で読み取り | ✅ |
|
|
36
|
+
>
|
|
37
|
+
> **本ラインの識別情報**:ブランチ `compat/0.1.5`、npm バージョン **`3.0.0`**(semver)、
|
|
38
|
+
> dist-tag **`dsh-0.1.5`**。`package.json` と `dsh.plugin.json` の `engines.dsh`、および
|
|
39
|
+
> 3 つの `@deepseek-ai/dsh-client-*` peer の下限は、いずれも `>=0.1.5-rc.2 <0.2.0-0` に統一されています。
|
|
40
|
+
> 過去の README は「2.x / 3.x」を**ラインの呼称**として使っていましたが、それは叙述上の慣習であり、
|
|
41
|
+
> **レジストリから取得できるバージョン番号ではありません**。npm バージョン `0.3.1`(0.1.2 ライン)と
|
|
42
|
+
> `3.0.0`(0.1.5 ライン)を基準にしてください。
|
|
43
|
+
>
|
|
44
|
+
> **他ラインの落点**:DSH `0.1.2-rc.x` ホストはブランチ **`legacy/0.1.2`**(npm dist-tag
|
|
45
|
+
> `dsh-0.1.2`、バージョン `0.3.1`)を使用してください。**`main` は `0.2.0-beta.1` で凍結済みで、
|
|
46
|
+
> 0.1.2 ラインのリリースブランチではありません。** DSH `0.1.0-rc.7` ~ `0.1.1-rc.x` ホストは
|
|
47
|
+
> `0.1.2` 以下の歴史バージョンを使用してください。フィールドソースの正規定義:
|
|
48
|
+
> `mine-dsh-plugins/improve-dsh-plugins/DSH-PLUGIN-VERSION-DISTRIBUTION-STRATEGY.md` §2.2。
|
|
49
|
+
>
|
|
50
|
+
> ドリフトガード:`tools/check-api-drift.ps1`(本ラインは既定で `dsh-v0.1.5-rc.2` に対して必須 API の存在を検証)。
|
|
51
|
+
|
|
29
52
|
> ピーク課金時間帯に実行中のセッションを自動一時停止し、オフピーク/週末に自動再開。input-traffic の凍結ボタンと連携して**セッション級**ロックを実現。バックエンド**自動リトライ**は凍結/ゲート期間中は譲歩。カスタムセッションゲート(`agent.cancel keepInbox + goals.pause + session/event 安全境界 + followup 再開`)に基づき、dsh-task-control に依存しません。
|
|
30
53
|
|
|
31
54
|
`dsh plugin` コマンドで组装 + バンドルパッチで装配する cordis プラグイン。dsh ソース変更も PR も不要。
|
|
@@ -45,10 +68,23 @@
|
|
|
45
68
|
## インストール
|
|
46
69
|
|
|
47
70
|
```bash
|
|
71
|
+
# DSH 0.1.5-rc.x ホスト(本ライン、dist-tag dsh-0.1.5)
|
|
72
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.5
|
|
73
|
+
|
|
74
|
+
# または git ブランチを直接指定
|
|
48
75
|
dsh plugin --profile web add github:drscrewdriver/dsh-session-guard#compat/0.1.5
|
|
76
|
+
|
|
77
|
+
# DSH 0.1.2-rc.x ホストは 0.1.2 ラインを使用
|
|
78
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.2
|
|
49
79
|
```
|
|
50
80
|
|
|
51
|
-
`compat/0.1.5` は DSH `0.1.5-rc.x`
|
|
81
|
+
`compat/0.1.5` は DSH `0.1.5-rc.x` 専用ラインで、npm バージョンは **`3.0.0`**。DSH `0.1.2-rc.x`
|
|
82
|
+
ホストは **`legacy/0.1.2`** ブランチ(npm dist-tag `dsh-0.1.2`、バージョン `0.3.1`)を使用してください。
|
|
83
|
+
**`main` は `0.2.0-beta.1` で凍結済みで、0.1.2 ラインのリリースブランチではありません。**
|
|
84
|
+
|
|
85
|
+
> ⚠️ 裸のパッケージ名 `dsh-session-guard` に依存しないでください:npm の `latest` タグは
|
|
86
|
+
> 排他的な 2 つのバージョンライン(`engines.dsh` が semver プレリリース照合で排他)を
|
|
87
|
+
> 同時に提供できません。必ず dist-tag を明示してください。
|
|
52
88
|
|
|
53
89
|
インストール後 dsh web を再起動し、ページをリフレッシュ。
|
|
54
90
|
|
package/README.ko.md
CHANGED
|
@@ -26,6 +26,29 @@
|
|
|
26
26
|
|
|
27
27
|
> **호환성 참고:** v0.1.1에는 일본어(`ja`)와 한국어(`ko`) 사전이 포함되어 있지만, 현재 공식 DSH 릴리스는 `LocaleRuntime`을 통해 `zh`와 `en`만 제공합니다. 순정 DSH에서 `ja` 또는 `ko`를 선택하면 `locale "<id>" is not registered` 오류가 발생합니다. 공식 DSH가 해당 locale ID를 추가할 때까지 사용할 수 없습니다. 고급 사용자는 DSH 포크를 유지하면서 업데이트하세요.
|
|
28
28
|
|
|
29
|
+
> **▼ DSH 버전 적합성**
|
|
30
|
+
>
|
|
31
|
+
> | DSH 버전 | 로드 | 설정 등록 | 세션 이벤트 / 게이트 | 클라이언트 측 |
|
|
32
|
+
> | --- | --- | --- | --- | --- |
|
|
33
|
+
> | 0.1.0-rc.7 ~ 0.1.1-rc.x | ➖ 본 라인 대상 아님(`legacy/0.1.2` 이전 역사 버전) | `ctx.settings.register(ns, schema, { base })` | ✅ 형태 동일 | ✅ 플랫폼 값 import 없음 |
|
|
34
|
+
> | 0.1.2-alpha.2+ / 0.1.2-rc.1 | ➖ 본 라인 대상 아님 → `legacy/0.1.2`(npm `@dsh-0.1.2`) | `register` 유지(`installSection` 추가) | ✅ 형태 동일 | ✅ 플랫폼 값 import 없음 |
|
|
35
|
+
> | **0.1.5-rc.2** | ✅(**본 라인**, dist-tag `dsh-0.1.5`) | `register` 유지(문자열 네임스페이스) | ✅ 이벤트는 `snapshotEvents()` 이중 경로로 읽음 | ✅ |
|
|
36
|
+
>
|
|
37
|
+
> **본 라인 식별 정보**: 브랜치 `compat/0.1.5`, npm 버전 **`3.0.0`**(semver),
|
|
38
|
+
> dist-tag **`dsh-0.1.5`**. `package.json`과 `dsh.plugin.json`의 `engines.dsh`, 그리고
|
|
39
|
+
> 3개의 `@deepseek-ai/dsh-client-*` peer 하한은 모두 `>=0.1.5-rc.2 <0.2.0-0`로 통일되어 있습니다.
|
|
40
|
+
> 과거 README는 "2.x / 3.x"를 **라인 호칭**으로 사용했지만, 이는 서술 관습이며
|
|
41
|
+
> **레지스트리에서 받을 수 있는 버전 번호가 아닙니다**. npm 버전 `0.3.1`(0.1.2 라인)과
|
|
42
|
+
> `3.0.0`(0.1.5 라인)을 기준으로 하세요.
|
|
43
|
+
>
|
|
44
|
+
> **다른 라인의 낙점**: DSH `0.1.2-rc.x` 호스트는 브랜치 **`legacy/0.1.2`**(npm dist-tag
|
|
45
|
+
> `dsh-0.1.2`, 버전 `0.3.1`)를 사용하세요. **`main`은 `0.2.0-beta.1`에서 동결되었고
|
|
46
|
+
> 0.1.2 라인의 릴리스 브랜치가 아닙니다.** DSH `0.1.0-rc.7` ~ `0.1.1-rc.x` 호스트는
|
|
47
|
+
> `0.1.2` 이하의 역사 버전을 사용하세요. 필드 소스 정식 정의:
|
|
48
|
+
> `mine-dsh-plugins/improve-dsh-plugins/DSH-PLUGIN-VERSION-DISTRIBUTION-STRATEGY.md` §2.2.
|
|
49
|
+
>
|
|
50
|
+
> 드리프트 가드: `tools/check-api-drift.ps1`(본 라인은 기본적으로 `dsh-v0.1.5-rc.2`에 대해 필수 API 존재를 검증).
|
|
51
|
+
|
|
29
52
|
> 피크 과금 시간대에 실행 중인 세션을 자동 일시정지하고 오피크/주말에 자동 재개; input-traffic의 동결 버튼과 페어링하여 **세션급** 잠금 구현; 백엔드 **자동 재시도**는 동결/게이트 기간 중 양보. 커스텀 세션 게이트(`agent.cancel keepInbox + goals.pause + session/event 안전 경계 + followup 재개`) 기반, dsh-task-control 의존성 제거.
|
|
30
53
|
|
|
31
54
|
`dsh plugin` 명령으로 조립 + 번들 패치로 장착하는 cordis 플러그인. dsh 소스 변경이나 PR 필요 없음.
|
|
@@ -45,10 +68,23 @@
|
|
|
45
68
|
## 설치
|
|
46
69
|
|
|
47
70
|
```bash
|
|
71
|
+
# DSH 0.1.5-rc.x 호스트(본 라인, dist-tag dsh-0.1.5)
|
|
72
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.5
|
|
73
|
+
|
|
74
|
+
# 또는 git 브랜치 직접 지정
|
|
48
75
|
dsh plugin --profile web add github:drscrewdriver/dsh-session-guard#compat/0.1.5
|
|
76
|
+
|
|
77
|
+
# DSH 0.1.2-rc.x 호스트는 0.1.2 라인 사용
|
|
78
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.2
|
|
49
79
|
```
|
|
50
80
|
|
|
51
|
-
`compat/0.1.5`는 DSH `0.1.5-rc.x` 전용
|
|
81
|
+
`compat/0.1.5`는 DSH `0.1.5-rc.x` 전용 라인이며 npm 버전은 **`3.0.0`**입니다. DSH `0.1.2-rc.x`
|
|
82
|
+
호스트는 **`legacy/0.1.2`** 브랜치(npm dist-tag `dsh-0.1.2`, 버전 `0.3.1`)를 사용하세요.
|
|
83
|
+
**`main`은 `0.2.0-beta.1`에서 동결되었고 0.1.2 라인의 릴리스 브랜치가 아닙니다.**
|
|
84
|
+
|
|
85
|
+
> ⚠️ 맨 패키지명 `dsh-session-guard`에 의존하지 마세요: npm `latest` 태그는
|
|
86
|
+
> 상호 배타적인 두 버전 라인(`engines.dsh`가 semver 프리릴리스 매칭상 배타)을
|
|
87
|
+
> 동시에 제공할 수 없습니다. 반드시 dist-tag를 명시하세요.
|
|
52
88
|
|
|
53
89
|
설치 후 dsh web을 재시작하고 페이지를 새로고침.
|
|
54
90
|
|
package/README.md
CHANGED
|
@@ -32,12 +32,23 @@
|
|
|
32
32
|
>
|
|
33
33
|
> | DSH 版本 | 加载 | 设置注册 | 会话事件 / 会话门 | 客户端半 |
|
|
34
34
|
> | --- | --- | --- | --- | --- |
|
|
35
|
-
> | 0.1.0-rc.7 ~ 0.1.1-rc.x |
|
|
36
|
-
> | 0.1.2-alpha.2+ / 0.1.2-rc.1 |
|
|
37
|
-
> | **0.1.5-rc.2** |
|
|
35
|
+
> | 0.1.0-rc.7 ~ 0.1.1-rc.x | ➖ 不在本线(`legacy/0.1.2` 之前的历史版本) | `ctx.settings.register(ns, schema, { base })` | ✅ 形状一致 | ✅ 无平台值导入 |
|
|
36
|
+
> | 0.1.2-alpha.2+ / 0.1.2-rc.1 | ➖ 不在本线 → 用 `legacy/0.1.2`(npm `@dsh-0.1.2`) | `register` 仍保留(另加 `installSection`) | ✅ 形状一致 | ✅ 无平台值导入 |
|
|
37
|
+
> | **0.1.5-rc.2** | ✅(**本线**,dist-tag `dsh-0.1.5`) | `register` 仍在(字符串命名空间) | ✅ 事件经 `snapshotEvents()` 双路径读取 | ✅ |
|
|
38
38
|
>
|
|
39
|
-
>
|
|
40
|
-
>
|
|
39
|
+
> **本线身份**:分支 `compat/0.1.5`,npm 版本号 **`3.0.0`**(semver),dist-tag **`dsh-0.1.5`**。
|
|
40
|
+
> `package.json` 与 `dsh.plugin.json` 的 `engines.dsh` 与三个 `@deepseek-ai/dsh-client-*`
|
|
41
|
+
> peer 下界统一为 `>=0.1.5-rc.2 <0.2.0-0`。
|
|
42
|
+
> 历史上 README 曾用「2.x / 3.x」当**线代号**,那是叙述习惯,**不是注册表里可拉取的版本号** ——
|
|
43
|
+
> 请一律以 npm 版本号 `0.3.1`(0.1.2 线)与 `3.0.0`(0.1.5 线)为准。
|
|
44
|
+
>
|
|
45
|
+
> **其它线的落点**:DSH `0.1.2-rc.x` 宿主请使用分支 **`legacy/0.1.2`**(npm dist-tag
|
|
46
|
+
> `dsh-0.1.2`,版本 `0.3.1`)。**`main` 已冻结在 `0.2.0-beta.1`,不是 0.1.2 线的发布分支。**
|
|
47
|
+
> DSH `0.1.0-rc.7` ~ `0.1.1-rc.x` 宿主请使用 ≤ `0.1.2` 的历史版本。
|
|
48
|
+
> 字段源头定义见
|
|
49
|
+
> `mine-dsh-plugins/improve-dsh-plugins/DSH-PLUGIN-VERSION-DISTRIBUTION-STRATEGY.md` §2.2。
|
|
50
|
+
>
|
|
51
|
+
> **0.1.5 适配(compat/0.1.5 分支,npm 3.0.0)**:
|
|
41
52
|
> ① `agent.followup` 双路径——0.1.5 将 Inbox 改为 agent-loop 只读投影,若 `followup`
|
|
42
53
|
> 不再存在则回退 `agent.send`,两者皆无时 warn 降级不抛错(恢复续跑的兜底);
|
|
43
54
|
> ② 恢复消息 `source` 补 `form: 'instructions'`(0.1.5 ContextFormed 契约,旧版本忽略);
|
|
@@ -46,17 +57,18 @@
|
|
|
46
57
|
> 旧数组回退(仅影响 `findToolOutcome` / `lastUserPrompt` 两条辅助路径,事件类型匹配不变)。
|
|
47
58
|
> 已核实 0.1.5 的 `WebRoute`(exact/prefix + SSE)契约不变,客户端
|
|
48
59
|
> `fetch('/session-guard/...')` 无需改 `/api` 前缀。
|
|
49
|
-
>
|
|
60
|
+
> 下面这张兼容表跨 0.1.1 / 0.1.2 两代 API,本线只认领 0.1.5 那一行。
|
|
61
|
+
> `session/event`、`agent.cancel`、`goals.pause`、
|
|
50
62
|
> `agent.followup`、`commands.register`、`timer.interval`、`webServer.register`、
|
|
51
63
|
> `agent/request`、`llm.listConfigurableProviders`、`settings.register/get` 在
|
|
52
|
-
> `dsh-v0.1.1-rc.2` 与 `dsh-v0.1.2-rc.1`
|
|
64
|
+
> `dsh-v0.1.1-rc.2` 与 `dsh-v0.1.2-rc.1` 之间签名一致(本线已核到 `dsh-v0.1.5-rc.2`);
|
|
53
65
|
> 唯一需要双读的是 `tool/result` 记录的调用 id 形态(`content[].toolCallId` 优先、
|
|
54
66
|
> `source.callId` 回退),已抽到 `src/tool-call-id.js` 并配单测——两版本的回放日志都可能出现这两种形态。
|
|
55
|
-
> 0.1.5 起 `session.events`
|
|
67
|
+
> 0.1.5 起 `session.events` 数组访问器被移除,本线经 `snapshotEvents()`(保留旧数组回退)读取,
|
|
56
68
|
> 只影响 `findToolOutcome` / `lastUserPrompt` 两条辅助路径。
|
|
57
69
|
> `model/selection` 事件**仅 0.1.2+**,只做切模型加速且必须特性探测;设置面只用
|
|
58
70
|
> `register` + `get` 交集(不碰 `installSection` / 已移除的 `installSettingsSection`)。
|
|
59
|
-
> 漂移守卫脚本:`tools/check-api-drift.ps1
|
|
71
|
+
> 漂移守卫脚本:`tools/check-api-drift.ps1`(本线默认对 `dsh-v0.1.5-rc.2` 断言必需接口存在)。
|
|
60
72
|
|
|
61
73
|
> 高峰时段自动暂停运行中的会话、低峰/周末自动续跑;配合 input-traffic 的冻结按钮做到**会话级**锁定;后端**自动重试**在冻结/门控期间让路。核心基于**自研会话门**(`agent.cancel keepInbox + goals.pause + session/event 安全边界 + followup 续跑`),不再依赖 dsh-task-control。
|
|
62
74
|
|
|
@@ -86,10 +98,22 @@
|
|
|
86
98
|
## 安装
|
|
87
99
|
|
|
88
100
|
```bash
|
|
101
|
+
# DSH 0.1.5-rc.x 宿主(本线,dist-tag dsh-0.1.5)
|
|
102
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.5
|
|
103
|
+
|
|
104
|
+
# 或直接走 git 分支
|
|
89
105
|
dsh plugin --profile web add github:drscrewdriver/dsh-session-guard#compat/0.1.5
|
|
106
|
+
|
|
107
|
+
# DSH 0.1.2-rc.x 宿主请改用 0.1.2 线
|
|
108
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.2
|
|
90
109
|
```
|
|
91
110
|
|
|
92
|
-
`compat/0.1.5` 是 DSH `0.1.5-rc.x`
|
|
111
|
+
`compat/0.1.5` 是 DSH `0.1.5-rc.x` 专线,npm 版本号 **`3.0.0`**;DSH `0.1.2-rc.x` 宿主请改用
|
|
112
|
+
分支 **`legacy/0.1.2`**(npm dist-tag `dsh-0.1.2`,版本 `0.3.1`)。**`main` 已冻结在 `0.2.0-beta.1`,
|
|
113
|
+
不是 0.1.2 线的发布分支。**
|
|
114
|
+
|
|
115
|
+
> ⚠️ 不要依赖裸包名 `dsh-session-guard`:npm 的 `latest` 标签无法同时服务两条互斥版本线
|
|
116
|
+
> (两条线的 `engines.dsh` 按 semver 预发布规则互斥),必须显式指定 dist-tag。
|
|
93
117
|
|
|
94
118
|
装后重启 dsh web 并刷新页面。
|
|
95
119
|
|
package/cordis.patch.yml
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# dsh-session-guard bundle patch:一行装配进 profile。
|
|
2
|
-
#
|
|
3
|
-
# host 半(src/index.js)注册 sessionGuard 服务(冗余端口,供 input-traffic 适配)、
|
|
4
|
-
# 高峰自动会话门(taskControl.pause/resume,缺失时回退锁等待队列)、
|
|
5
|
-
# /session-guard/* 路由与 设置→插件→session-guard 子板块(简单开关)。
|
|
6
|
-
# 浏览器半(src/client/index.js,经 package.json dsh.client 声明)提供
|
|
7
|
-
# 高峰状态徽标 + 无 input-traffic 时的回退冻结按钮。
|
|
8
|
-
- insert:
|
|
9
|
-
- id: session-guard
|
|
10
|
-
name: dsh-session-guard
|
|
1
|
+
# dsh-session-guard bundle patch:一行装配进 profile。
|
|
2
|
+
#
|
|
3
|
+
# host 半(src/index.js)注册 sessionGuard 服务(冗余端口,供 input-traffic 适配)、
|
|
4
|
+
# 高峰自动会话门(taskControl.pause/resume,缺失时回退锁等待队列)、
|
|
5
|
+
# /session-guard/* 路由与 设置→插件→session-guard 子板块(简单开关)。
|
|
6
|
+
# 浏览器半(src/client/index.js,经 package.json dsh.client 声明)提供
|
|
7
|
+
# 高峰状态徽标 + 无 input-traffic 时的回退冻结按钮。
|
|
8
|
+
- insert:
|
|
9
|
+
- id: session-guard
|
|
10
|
+
name: dsh-session-guard
|