dsh-session-guard 0.3.1 → 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.ja.md +28 -0
- package/CHANGELOG.ko.md +28 -0
- package/CHANGELOG.md +29 -0
- package/INSTALL.ja.md +14 -2
- package/INSTALL.ko.md +14 -2
- package/INSTALL.md +19 -5
- package/INSTALL.zh.md +15 -2
- package/README.en.md +35 -8
- package/README.ja.md +36 -1
- package/README.ko.md +36 -1
- package/README.md +29 -7
- package/dsh.plugin.json +16 -13
- package/package.json +10 -6
package/CHANGELOG.ja.md
CHANGED
|
@@ -6,6 +6,34 @@
|
|
|
6
6
|
- [日本語 changelog](./CHANGELOG.ja.md)
|
|
7
7
|
- [한국어 changelog](./CHANGELOG.ko.md)
|
|
8
8
|
|
|
9
|
+
## 0.3.1 — 2026-09-18
|
|
10
|
+
|
|
11
|
+
### 修正
|
|
12
|
+
|
|
13
|
+
- **リポジトリメタデータ**:`repository.url` / `homepage` を実在するリポジトリ
|
|
14
|
+
(`drscrewdriver/dsh-session-guard`。以前は存在しない `drscrewdriver/session-guard`)に修正。
|
|
15
|
+
- **ホスト範囲をフィールドソースで宣言**:`@deepseek-ai/dsh-client-*` の peer 下限を
|
|
16
|
+
`>=0.1.0-rc.7` から `>=0.1.2-rc.1` に狭め、`engines.dsh` と一致させました。`dsh.plugin.json` に
|
|
17
|
+
対応する `engines.dsh`(`>=0.1.2-rc.1 <0.2.0-0`)を追加し、`version` をパッケージ版に再同期。
|
|
18
|
+
以前はマニフェスト版が `0.2.0-beta.1` のまま遅延し、ホスト範囲を宣言していませんでした。
|
|
19
|
+
- **ドキュメント**:README/INSTALL(zh/en/ja/ko)が本ラインの識別情報(ブランチ `legacy/0.1.2`、
|
|
20
|
+
dist-tag `dsh-0.1.2`)を明記し、「1 つの成果物で両バージョン対応」という記述を削除。`0.1.5-rc.2`
|
|
21
|
+
の行は専用ラインへのポインタに置換。インストールコマンドの未置換オーナープレースホルダを除去。
|
|
22
|
+
|
|
23
|
+
### 備考
|
|
24
|
+
|
|
25
|
+
- **ソース変更なし**:`src/`、`lib/`、`tests/` は `0.2.0-beta.1` とバイト単位で同一。
|
|
26
|
+
`0.3.0` と `0.3.1` は同一ツリーのパッケージングのみの再リリースです。
|
|
27
|
+
|
|
28
|
+
## 0.3.0 — 2026-09-18
|
|
29
|
+
|
|
30
|
+
### 変更
|
|
31
|
+
|
|
32
|
+
- **0.2.0-beta.1 ツリーのパッケージング再リリース**:`publishConfig`
|
|
33
|
+
(`registry: https://registry.npmjs.org`、`access: public`、`tag: dsh-0.1.2`)を追加し、
|
|
34
|
+
`engines.dsh` を `>=0.1.2-rc.1 <0.2.0-0` に狭めました(旧 `>=0.1.0-rc.7` 範囲は
|
|
35
|
+
strict-semver 照合では `0.1.2-rc.x` プレリリースに一致しません)。
|
|
36
|
+
|
|
9
37
|
## 0.2.0-beta.1 — 2026-09-10
|
|
10
38
|
|
|
11
39
|
### 追加
|
package/CHANGELOG.ko.md
CHANGED
|
@@ -6,6 +6,34 @@
|
|
|
6
6
|
- [日本語 changelog](./CHANGELOG.ja.md)
|
|
7
7
|
- [한국어 changelog](./CHANGELOG.ko.md)
|
|
8
8
|
|
|
9
|
+
## 0.3.1 — 2026-09-18
|
|
10
|
+
|
|
11
|
+
### 수정
|
|
12
|
+
|
|
13
|
+
- **저장소 메타데이터**: `repository.url` / `homepage`를 실제 저장소
|
|
14
|
+
(`drscrewdriver/dsh-session-guard`; 이전에는 존재하지 않는 `drscrewdriver/session-guard`)로 수정.
|
|
15
|
+
- **호스트 범위를 필드 소스에서 선언**: `@deepseek-ai/dsh-client-*` peer 하한을
|
|
16
|
+
`>=0.1.0-rc.7`에서 `>=0.1.2-rc.1`로 좁혀 `engines.dsh`와 일치시켰습니다. `dsh.plugin.json`에
|
|
17
|
+
대응하는 `engines.dsh`(`>=0.1.2-rc.1 <0.2.0-0`)를 추가하고 `version`을 패키지 버전에 재동기화.
|
|
18
|
+
이전에는 매니페스트 버전이 `0.2.0-beta.1`로 지연되었고 호스트 범위를 선언하지 않았습니다.
|
|
19
|
+
- **문서**: README/INSTALL(zh/en/ja/ko)이 본 라인 식별 정보(브랜치 `legacy/0.1.2`,
|
|
20
|
+
dist-tag `dsh-0.1.2`)를 명시하고 "하나의 산출물로 두 버전 지원" 서술을 삭제했습니다. `0.1.5-rc.2`
|
|
21
|
+
행은 전용 라인 포인터로 교체. 설치 명령의 미치환 오너 자리표시자를 제거.
|
|
22
|
+
|
|
23
|
+
### 비고
|
|
24
|
+
|
|
25
|
+
- **소스 변경 없음**: `src/`, `lib/`, `tests/`는 `0.2.0-beta.1`과 바이트 단위로 동일.
|
|
26
|
+
`0.3.0`과 `0.3.1`은 동일 트리의 패키징 전용 재릴리스입니다.
|
|
27
|
+
|
|
28
|
+
## 0.3.0 — 2026-09-18
|
|
29
|
+
|
|
30
|
+
### 변경
|
|
31
|
+
|
|
32
|
+
- **0.2.0-beta.1 트리의 패키징 재릴리스**: `publishConfig`
|
|
33
|
+
(`registry: https://registry.npmjs.org`, `access: public`, `tag: dsh-0.1.2`)를 추가하고
|
|
34
|
+
`engines.dsh`를 `>=0.1.2-rc.1 <0.2.0-0`로 좁혔습니다(구 `>=0.1.0-rc.7` 범위는
|
|
35
|
+
strict-semver 매칭에서 `0.1.2-rc.x` 프리릴리스와 일치하지 않습니다).
|
|
36
|
+
|
|
9
37
|
## 0.2.0-beta.1 — 2026-09-10
|
|
10
38
|
|
|
11
39
|
### 추가
|
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,35 @@ 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.3.1 — 2026-09-18
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- **Repository metadata.** `repository.url` / `homepage` now point at the real repo
|
|
14
|
+
(`drscrewdriver/dsh-session-guard`, previously the non-existent `drscrewdriver/session-guard`).
|
|
15
|
+
- **Host range declared at its source.** The `@deepseek-ai/dsh-client-*` peer floors are narrowed
|
|
16
|
+
from `>=0.1.0-rc.7` to `>=0.1.2-rc.1` so they match `engines.dsh`; `dsh.plugin.json` gains the
|
|
17
|
+
matching `engines.dsh` (`>=0.1.2-rc.1 <0.2.0-0`) and its `version` is re-synced to the package
|
|
18
|
+
version. Previously the manifest version lagged at `0.2.0-beta.1` and declared no host range.
|
|
19
|
+
- **Docs.** README/INSTALL (zh/en/ja/ko) now state this line's identity (branch `legacy/0.1.2`,
|
|
20
|
+
dist-tag `dsh-0.1.2`) and stop claiming "one artifact covers both versions"; the `0.1.5-rc.2`
|
|
21
|
+
row is replaced by a pointer to the dedicated line. The unfilled owner placeholder in the
|
|
22
|
+
install command is gone.
|
|
23
|
+
|
|
24
|
+
### Notes
|
|
25
|
+
|
|
26
|
+
- **No source changes.** `src/`, `lib/` and `tests/` are byte-identical to `0.2.0-beta.1`;
|
|
27
|
+
`0.3.0` and `0.3.1` are packaging-only re-releases of the same tree.
|
|
28
|
+
|
|
29
|
+
## 0.3.0 — 2026-09-18
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
|
|
33
|
+
- **Packaging re-release of the 0.2.0-beta.1 tree.** Adds `publishConfig`
|
|
34
|
+
(`registry: https://registry.npmjs.org`, `access: public`, `tag: dsh-0.1.2`) and narrows
|
|
35
|
+
`engines.dsh` to `>=0.1.2-rc.1 <0.2.0-0` (the old `>=0.1.0-rc.7` range never matched a
|
|
36
|
+
`0.1.2-rc.x` prerelease under strict-semver matching).
|
|
37
|
+
|
|
9
38
|
## 0.2.0-beta.1 — 2026-09-10
|
|
10
39
|
|
|
11
40
|
### Added
|
package/INSTALL.ja.md
CHANGED
|
@@ -22,9 +22,21 @@ dsh --version
|
|
|
22
22
|
## 1. インストール
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
|
|
25
|
+
# DSH 0.1.2-rc.x ホスト(本ライン、dist-tag dsh-0.1.2)
|
|
26
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.2
|
|
27
|
+
|
|
28
|
+
# または git ブランチを直接指定
|
|
29
|
+
dsh plugin --profile web add github:drscrewdriver/dsh-session-guard#legacy/0.1.2
|
|
26
30
|
```
|
|
27
31
|
|
|
32
|
+
> **本ラインは DSH `0.1.2-rc.1` … `0.1.4-beta.1` のみを対象とします**
|
|
33
|
+
> (`package.json` と `dsh.plugin.json` の `engines.dsh` はいずれも `>=0.1.2-rc.1 <0.2.0-0`)。
|
|
34
|
+
> DSH `0.1.0-rc.7` … `0.1.1-rc.x` は**対象外**——`0.1.2` 以下の過去バージョンを使用してください。
|
|
35
|
+
> DSH `0.1.5-rc.x` も**対象外**——専用ライン(`compat/0.1.5` / npm dist-tag `dsh-0.1.5`、バージョン `3.0.0`)を使用してください。
|
|
36
|
+
> 裸のパッケージ名に依存しないでください:npm の `latest` タグは排他的な 2 ラインを同時に提供できません。
|
|
37
|
+
> フィールドソースの正規定義:
|
|
38
|
+
> `mine-dsh-plugins/improve-dsh-plugins/DSH-PLUGIN-VERSION-DISTRIBUTION-STRATEGY.md` §2.2。
|
|
39
|
+
|
|
28
40
|
dsh web を再起動し、ページをリフレッシュ。
|
|
29
41
|
|
|
30
42
|
## 2. 検証
|
|
@@ -52,7 +64,7 @@ npm test
|
|
|
52
64
|
|
|
53
65
|
```bash
|
|
54
66
|
dsh plugin --profile web remove dsh-session-guard
|
|
55
|
-
dsh plugin --profile web add
|
|
67
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.2
|
|
56
68
|
```
|
|
57
69
|
|
|
58
70
|
dsh web を再起動しページをリフレッシュ。設定は `$DSH_HOME/settings.yaml` の `session-guard`
|
package/INSTALL.ko.md
CHANGED
|
@@ -22,9 +22,21 @@ dsh --version
|
|
|
22
22
|
## 1. 설치
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
|
|
25
|
+
# DSH 0.1.2-rc.x 호스트(본 라인, dist-tag dsh-0.1.2)
|
|
26
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.2
|
|
27
|
+
|
|
28
|
+
# 또는 git 브랜치 직접 지정
|
|
29
|
+
dsh plugin --profile web add github:drscrewdriver/dsh-session-guard#legacy/0.1.2
|
|
26
30
|
```
|
|
27
31
|
|
|
32
|
+
> **본 라인은 DSH `0.1.2-rc.1` … `0.1.4-beta.1`만 지원합니다**
|
|
33
|
+
> (`package.json`과 `dsh.plugin.json`의 `engines.dsh` 모두 `>=0.1.2-rc.1 <0.2.0-0`).
|
|
34
|
+
> DSH `0.1.0-rc.7` … `0.1.1-rc.x`는 **대상 아님** — `0.1.2` 이하의 과거 버전을 사용하세요.
|
|
35
|
+
> DSH `0.1.5-rc.x`도 **대상 아님** — 전용 라인(`compat/0.1.5` / npm dist-tag `dsh-0.1.5`, 버전 `3.0.0`)을 사용하세요.
|
|
36
|
+
> 맨 패키지명에 의존하지 마세요: npm `latest` 태그는 배타적인 두 라인을 동시에 제공할 수 없습니다.
|
|
37
|
+
> 필드 소스 정식 정의:
|
|
38
|
+
> `mine-dsh-plugins/improve-dsh-plugins/DSH-PLUGIN-VERSION-DISTRIBUTION-STRATEGY.md` §2.2.
|
|
39
|
+
|
|
28
40
|
dsh web을 재시작하고 페이지를 새로고침.
|
|
29
41
|
|
|
30
42
|
## 2. 검증
|
|
@@ -52,7 +64,7 @@ npm test
|
|
|
52
64
|
|
|
53
65
|
```bash
|
|
54
66
|
dsh plugin --profile web remove dsh-session-guard
|
|
55
|
-
dsh plugin --profile web add
|
|
67
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.2
|
|
56
68
|
```
|
|
57
69
|
|
|
58
70
|
dsh web을 재시작하고 페이지를 새로고침. 설정은 `$DSH_HOME/settings.yaml`의 `session-guard`
|
package/INSTALL.md
CHANGED
|
@@ -24,9 +24,22 @@ dsh --version
|
|
|
24
24
|
## 1. Install
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
-
|
|
27
|
+
# DSH 0.1.2-rc.x hosts (this line, dist-tag dsh-0.1.2)
|
|
28
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.2
|
|
29
|
+
|
|
30
|
+
# or straight from the git branch
|
|
31
|
+
dsh plugin --profile web add github:drscrewdriver/dsh-session-guard#legacy/0.1.2
|
|
28
32
|
```
|
|
29
33
|
|
|
34
|
+
> **This line serves DSH `0.1.2-rc.1` … `0.1.4-beta.1`** only
|
|
35
|
+
> (`engines.dsh = >=0.1.2-rc.1 <0.2.0-0` in both `package.json` and `dsh.plugin.json`).
|
|
36
|
+
> DSH `0.1.0-rc.7` … `0.1.1-rc.x` are **not** in range — use a historical version ≤ `0.1.2`.
|
|
37
|
+
> DSH `0.1.5-rc.x` is **not** in range — use the dedicated line
|
|
38
|
+
> (`compat/0.1.5` / npm dist-tag `dsh-0.1.5`, version `3.0.0`).
|
|
39
|
+
> Never rely on the bare package name: npm's `latest` tag cannot serve two mutually
|
|
40
|
+
> exclusive lines. Field-source doctrine:
|
|
41
|
+
> `mine-dsh-plugins/improve-dsh-plugins/DSH-PLUGIN-VERSION-DISTRIBUTION-STRATEGY.md` §2.2.
|
|
42
|
+
|
|
30
43
|
Restart dsh web and refresh the page.
|
|
31
44
|
|
|
32
45
|
## 2. Verify
|
|
@@ -55,16 +68,17 @@ npm test
|
|
|
55
68
|
|
|
56
69
|
```bash
|
|
57
70
|
dsh plugin --profile web remove dsh-session-guard
|
|
58
|
-
dsh plugin --profile web add
|
|
71
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.2
|
|
59
72
|
```
|
|
60
73
|
|
|
61
74
|
Restart dsh web and refresh the page. Settings live in `$DSH_HOME/settings.yaml` under the
|
|
62
75
|
`session-guard` namespace and survive the upgrade; new keys (`providerGuard`, `deferredMode`, …)
|
|
63
76
|
fall back to their defaults until you touch them.
|
|
64
77
|
|
|
65
|
-
From `0.1.3
|
|
66
|
-
block **only** official-source targets by default. To restore the old blanket
|
|
67
|
-
`providerGuard: false` (or `officialProviders` / `officialBaseURLs` to narrow the verdict).
|
|
78
|
+
From **plugin** `0.1.3` / `0.1.4-beta.1` to **plugin** `0.1.5-beta.1` the only behavior change is
|
|
79
|
+
that peak hours now block **only** official-source targets by default. To restore the old blanket
|
|
80
|
+
behavior set `providerGuard: false` (or `officialProviders` / `officialBaseURLs` to narrow the verdict).
|
|
81
|
+
(Those are plugin versions, not DSH versions — do not confuse them with the host ranges above.)
|
|
68
82
|
|
|
69
83
|
## 4. Troubleshooting
|
|
70
84
|
|
package/INSTALL.zh.md
CHANGED
|
@@ -22,9 +22,22 @@ dsh --version
|
|
|
22
22
|
## 1. 安装
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
|
|
25
|
+
# DSH 0.1.2-rc.x 宿主(本线,dist-tag dsh-0.1.2)
|
|
26
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.2
|
|
27
|
+
|
|
28
|
+
# 或直接走 git 分支
|
|
29
|
+
dsh plugin --profile web add github:drscrewdriver/dsh-session-guard#legacy/0.1.2
|
|
26
30
|
```
|
|
27
31
|
|
|
32
|
+
> **本线只服务 DSH `0.1.2-rc.1` … `0.1.4-beta.1`**(`package.json` 与 `dsh.plugin.json`
|
|
33
|
+
> 的 `engines.dsh` 均为 `>=0.1.2-rc.1 <0.2.0-0`)。
|
|
34
|
+
> DSH `0.1.0-rc.7` … `0.1.1-rc.x` **不在范围内** —— 请使用 ≤ `0.1.2` 的历史版本。
|
|
35
|
+
> DSH `0.1.5-rc.x` **不在范围内** —— 请改用专线
|
|
36
|
+
> (`compat/0.1.5` / npm dist-tag `dsh-0.1.5`,版本 `3.0.0`)。
|
|
37
|
+
> 不要依赖裸包名:npm 的 `latest` 标签无法同时服务两条互斥版本线。
|
|
38
|
+
> 字段源头定义见
|
|
39
|
+
> `mine-dsh-plugins/improve-dsh-plugins/DSH-PLUGIN-VERSION-DISTRIBUTION-STRATEGY.md` §2.2。
|
|
40
|
+
|
|
28
41
|
重启 dsh web 并刷新页面。
|
|
29
42
|
|
|
30
43
|
## 2. 验证
|
|
@@ -52,7 +65,7 @@ npm test
|
|
|
52
65
|
|
|
53
66
|
```bash
|
|
54
67
|
dsh plugin --profile web remove dsh-session-guard
|
|
55
|
-
dsh plugin --profile web add
|
|
68
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.2
|
|
56
69
|
```
|
|
57
70
|
|
|
58
71
|
重启 dsh web 并刷新页面。设置在 `$DSH_HOME/settings.yaml` 的 `session-guard` 命名空间下,升级不会丢;
|
package/README.en.md
CHANGED
|
@@ -30,22 +30,38 @@
|
|
|
30
30
|
>
|
|
31
31
|
> | DSH version | Load | Settings registration | Session events / gate | Client half |
|
|
32
32
|
> | --- | --- | --- | --- | --- |
|
|
33
|
-
> | 0.1.
|
|
34
|
-
> | 0.1.2-alpha.2+ / 0.1.2-rc.1 | ✅ | `register` still present (`installSection` added) | ✅ same shape | ✅ no platform value imports |
|
|
35
|
-
> | 0.1.
|
|
33
|
+
> | 0.1.2-rc.1 ~ 0.1.4-beta.1 | ✅ this line | `ctx.settings.register(ns, schema, { base })` | ✅ same shape | ✅ no platform value imports |
|
|
34
|
+
> | 0.1.2-alpha.2+ / 0.1.2-rc.1 | ✅ this line | `register` still present (`installSection` added) | ✅ same shape | ✅ no platform value imports |
|
|
35
|
+
> | 0.1.5-rc.2 | ➖ **not this line** | see the dedicated line | see the dedicated line | see the dedicated line |
|
|
36
36
|
>
|
|
37
|
-
>
|
|
37
|
+
> **This line's identity**: branch `legacy/0.1.2`, npm version `0.3.x`, dist-tag
|
|
38
|
+
> **`dsh-0.1.2`**, host range `engines.dsh = >=0.1.2-rc.1 <0.2.0-0`.
|
|
39
|
+
> **0.1.0-rc.7 ~ 0.1.1-rc.x are NOT in this line's range** — both `engines.dsh` and the
|
|
40
|
+
> `@deepseek-ai/dsh-client-*` peer floors are pinned to `>=0.1.2-rc.1` in `package.json`
|
|
41
|
+
> *and* `dsh.plugin.json`; those older hosts should use a historical version ≤ `0.1.2`.
|
|
42
|
+
> The canonical definition of these field sources lives in
|
|
43
|
+
> `mine-dsh-plugins/improve-dsh-plugins/DSH-PLUGIN-VERSION-DISTRIBUTION-STRATEGY.md` §2.2.
|
|
44
|
+
>
|
|
45
|
+
> **0.1.5-rc.2 is now a dedicated line.** DSH 0.1.5 removed the `session.events` array
|
|
46
|
+
> accessor (events must be read through `snapshotEvents()`), and its `engines.dsh` is
|
|
47
|
+
> mutually exclusive with `>=0.1.2-rc.1` under semver prerelease matching.
|
|
48
|
+
> **0.1.5-rc.x hosts must use the `compat/0.1.5` branch** (npm dist-tag
|
|
49
|
+
> **`dsh-0.1.5`**, version `3.0.0`):
|
|
50
|
+
> `dsh plugin --profile web add github:drscrewdriver/dsh-session-guard#compat/0.1.5`.
|
|
51
|
+
> **"One artifact covers both" has been false since the 0.1.5 split.**
|
|
52
|
+
>
|
|
53
|
+
> `session/event`, `agent.cancel`, `goals.pause`,
|
|
38
54
|
> `agent.followup`, `commands.register`, `timer.interval`, `webServer.register`,
|
|
39
55
|
> `agent/request`, `llm.listConfigurableProviders` and `settings.register/get`
|
|
40
|
-
> are signature-identical between `dsh-v0.1.1-rc.2` and `dsh-v0.1.2-rc.1
|
|
41
|
-
>
|
|
56
|
+
> are signature-identical between `dsh-v0.1.1-rc.2` and `dsh-v0.1.2-rc.1`.
|
|
57
|
+
> The one
|
|
42
58
|
> seam that needs a dual read is the `tool/result` call id (`content[].toolCallId`
|
|
43
59
|
> first, `source.callId` as fallback) — both forms appear in replay logs of both
|
|
44
60
|
> versions. It now lives in `src/tool-call-id.js` with unit tests.
|
|
45
61
|
> The `model/selection` event exists **only on 0.1.2+** and is feature-probed; the
|
|
46
62
|
> settings surface uses only the `register` + `get` intersection (never
|
|
47
63
|
> `installSection`, never the removed `installSettingsSection`). Drift guard:
|
|
48
|
-
> `tools/check-api-drift.ps1
|
|
64
|
+
> `tools/check-api-drift.ps1` (this line asserts against four tags by default).
|
|
49
65
|
|
|
50
66
|
> Automatically pause running sessions during peak pricing hours and resume during off-peak/weekend; pair with input-traffic's freeze button for **per-session** locking; backend **auto-retry** yields during freeze/gate. Core based on a custom session gate (`agent.cancel keepInbox + goals.pause + session/event safe boundary + followup resume`), no longer depending on dsh-task-control.
|
|
51
67
|
|
|
@@ -66,9 +82,20 @@ A cordis plugin assembled via the `dsh plugin` command and a bundle patch — no
|
|
|
66
82
|
## Installation
|
|
67
83
|
|
|
68
84
|
```bash
|
|
69
|
-
|
|
85
|
+
# DSH 0.1.2-rc.x hosts (this line, dist-tag dsh-0.1.2)
|
|
86
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.2
|
|
87
|
+
|
|
88
|
+
# or straight from the git branch
|
|
89
|
+
dsh plugin --profile web add github:drscrewdriver/dsh-session-guard#legacy/0.1.2
|
|
90
|
+
|
|
91
|
+
# DSH 0.1.5-rc.x hosts must use the dedicated line (dist-tag dsh-0.1.5)
|
|
92
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.5
|
|
70
93
|
```
|
|
71
94
|
|
|
95
|
+
> ⚠️ **Do not rely on the bare package name `dsh-session-guard`**: npm's `latest`
|
|
96
|
+
> tag cannot serve two mutually exclusive version lines (their `engines.dsh` ranges
|
|
97
|
+
> are exclusive under semver prerelease matching) — always pin the dist-tag explicitly.
|
|
98
|
+
|
|
72
99
|
Restart dsh web and refresh the page after installation.
|
|
73
100
|
|
|
74
101
|
## Settings (Settings → Plugins → session-guard, simple toggles)
|
package/README.ja.md
CHANGED
|
@@ -26,6 +26,30 @@
|
|
|
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.2-rc.1 ~ 0.1.4-beta.1 | ✅ 本ライン対応 | `ctx.settings.register(ns, schema, { base })` | ✅ 形状一致 | ✅ プラットフォーム値の import なし |
|
|
34
|
+
> | 0.1.2-alpha.2+ / 0.1.2-rc.1 | ✅ 本ライン対応 | `register` は維持(`installSection` 追加) | ✅ 形状一致 | ✅ プラットフォーム値の import なし |
|
|
35
|
+
> | 0.1.5-rc.2 | ➖ **本ライン対象外** | 下記の専用ラインを参照 | 同左 | 同左 |
|
|
36
|
+
>
|
|
37
|
+
> **本ラインの識別情報**:ブランチ `legacy/0.1.2`、npm バージョン `0.3.x`、dist-tag **`dsh-0.1.2`**、
|
|
38
|
+
> ホスト範囲 `engines.dsh = >=0.1.2-rc.1 <0.2.0-0`。
|
|
39
|
+
> **0.1.0-rc.7 ~ 0.1.1-rc.x は本ラインの対象外です**——`package.json` と `dsh.plugin.json` の
|
|
40
|
+
> 両方で `engines.dsh` および `@deepseek-ai/dsh-client-*` の peer 下限を `>=0.1.2-rc.1` に固定しています。
|
|
41
|
+
> これらの旧ホストは `0.1.2` 以下の過去バージョンを使用してください。
|
|
42
|
+
> これらのフィールドソースの正規定義は
|
|
43
|
+
> `mine-dsh-plugins/improve-dsh-plugins/DSH-PLUGIN-VERSION-DISTRIBUTION-STRATEGY.md` §2.2 にあります。
|
|
44
|
+
>
|
|
45
|
+
> **0.1.5-rc.2 は専用ラインに分離されました**:DSH 0.1.5 で `session.events` 配列アクセサが削除され
|
|
46
|
+
> (イベントは `snapshotEvents()` 経由で読む必要があります)、また semver のプレリリース照合規則により
|
|
47
|
+
> `engines.dsh` が `>=0.1.2-rc.1` と排他になります。
|
|
48
|
+
> **0.1.5-rc.x ホストは `compat/0.1.5` ブランチ**(npm dist-tag **`dsh-0.1.5`**、バージョン `3.0.0`)**を使用してください**:
|
|
49
|
+
> `dsh plugin --profile web add github:drscrewdriver/dsh-session-guard#compat/0.1.5`。
|
|
50
|
+
> **「1 つの成果物で両バージョン対応」は 0.1.5 分離以降成立しません。**
|
|
51
|
+
> ドリフトガード:`tools/check-api-drift.ps1`(本ラインは既定で 4 つの tag に対して必須 API の存在を検証)。
|
|
52
|
+
|
|
29
53
|
> ピーク課金時間帯に実行中のセッションを自動一時停止し、オフピーク/週末に自動再開。input-traffic の凍結ボタンと連携して**セッション級**ロックを実現。バックエンド**自動リトライ**は凍結/ゲート期間中は譲歩。カスタムセッションゲート(`agent.cancel keepInbox + goals.pause + session/event 安全境界 + followup 再開`)に基づき、dsh-task-control に依存しません。
|
|
30
54
|
|
|
31
55
|
`dsh plugin` コマンドで组装 + バンドルパッチで装配する cordis プラグイン。dsh ソース変更も PR も不要。
|
|
@@ -45,9 +69,20 @@
|
|
|
45
69
|
## インストール
|
|
46
70
|
|
|
47
71
|
```bash
|
|
48
|
-
|
|
72
|
+
# DSH 0.1.2-rc.x ホスト(本ライン、dist-tag dsh-0.1.2)
|
|
73
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.2
|
|
74
|
+
|
|
75
|
+
# または git ブランチを直接指定
|
|
76
|
+
dsh plugin --profile web add github:drscrewdriver/dsh-session-guard#legacy/0.1.2
|
|
77
|
+
|
|
78
|
+
# DSH 0.1.5-rc.x ホストは専用ライン(dist-tag dsh-0.1.5)を使用
|
|
79
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.5
|
|
49
80
|
```
|
|
50
81
|
|
|
82
|
+
> ⚠️ **裸のパッケージ名 `dsh-session-guard` に依存しないでください**:npm の `latest` タグは
|
|
83
|
+
> 排他的な 2 つのバージョンライン(`engines.dsh` が semver プレリリース照合で排他)を
|
|
84
|
+
> 同時に提供できません。必ず dist-tag を明示してください。
|
|
85
|
+
|
|
51
86
|
インストール後 dsh web を再起動し、ページをリフレッシュ。
|
|
52
87
|
|
|
53
88
|
## 設定(設定 → プラグイン → session-guard)
|
package/README.ko.md
CHANGED
|
@@ -26,6 +26,30 @@
|
|
|
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.2-rc.1 ~ 0.1.4-beta.1 | ✅ 본 라인 지원 | `ctx.settings.register(ns, schema, { base })` | ✅ 형태 동일 | ✅ 플랫폼 값 import 없음 |
|
|
34
|
+
> | 0.1.2-alpha.2+ / 0.1.2-rc.1 | ✅ 본 라인 지원 | `register` 유지(`installSection` 추가) | ✅ 형태 동일 | ✅ 플랫폼 값 import 없음 |
|
|
35
|
+
> | 0.1.5-rc.2 | ➖ **본 라인 대상 아님** | 아래 전용 라인 참조 | 동일 | 동일 |
|
|
36
|
+
>
|
|
37
|
+
> **본 라인 식별 정보**: 브랜치 `legacy/0.1.2`, npm 버전 `0.3.x`, dist-tag **`dsh-0.1.2`**,
|
|
38
|
+
> 호스트 범위 `engines.dsh = >=0.1.2-rc.1 <0.2.0-0`.
|
|
39
|
+
> **0.1.0-rc.7 ~ 0.1.1-rc.x는 본 라인 범위가 아닙니다** — `package.json`과 `dsh.plugin.json`
|
|
40
|
+
> 양쪽 모두에서 `engines.dsh` 및 `@deepseek-ai/dsh-client-*` peer 하한을 `>=0.1.2-rc.1`로 고정했습니다.
|
|
41
|
+
> 해당 구형 호스트는 `0.1.2` 이하의 과거 버전을 사용하세요.
|
|
42
|
+
> 이 필드 소스의 정식 정의는
|
|
43
|
+
> `mine-dsh-plugins/improve-dsh-plugins/DSH-PLUGIN-VERSION-DISTRIBUTION-STRATEGY.md` §2.2에 있습니다.
|
|
44
|
+
>
|
|
45
|
+
> **0.1.5-rc.2는 전용 라인으로 분리되었습니다**: DSH 0.1.5에서 `session.events` 배열 접근자가 제거되었고
|
|
46
|
+
> (이벤트는 `snapshotEvents()`로 읽어야 합니다), semver 프리릴리스 매칭 규칙상 `engines.dsh`가
|
|
47
|
+
> `>=0.1.2-rc.1`과 상호 배타가 됩니다.
|
|
48
|
+
> **0.1.5-rc.x 호스트는 `compat/0.1.5` 브랜치**(npm dist-tag **`dsh-0.1.5`**, 버전 `3.0.0`)**를 사용하세요**:
|
|
49
|
+
> `dsh plugin --profile web add github:drscrewdriver/dsh-session-guard#compat/0.1.5`.
|
|
50
|
+
> **"하나의 산출물로 두 버전 지원"은 0.1.5 분리 이후 성립하지 않습니다.**
|
|
51
|
+
> 드리프트 가드: `tools/check-api-drift.ps1`(본 라인은 기본적으로 4개 tag에 대해 필수 API 존재를 검증).
|
|
52
|
+
|
|
29
53
|
> 피크 과금 시간대에 실행 중인 세션을 자동 일시정지하고 오피크/주말에 자동 재개; input-traffic의 동결 버튼과 페어링하여 **세션급** 잠금 구현; 백엔드 **자동 재시도**는 동결/게이트 기간 중 양보. 커스텀 세션 게이트(`agent.cancel keepInbox + goals.pause + session/event 안전 경계 + followup 재개`) 기반, dsh-task-control 의존성 제거.
|
|
30
54
|
|
|
31
55
|
`dsh plugin` 명령으로 조립 + 번들 패치로 장착하는 cordis 플러그인. dsh 소스 변경이나 PR 필요 없음.
|
|
@@ -45,9 +69,20 @@
|
|
|
45
69
|
## 설치
|
|
46
70
|
|
|
47
71
|
```bash
|
|
48
|
-
|
|
72
|
+
# DSH 0.1.2-rc.x 호스트(본 라인, dist-tag dsh-0.1.2)
|
|
73
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.2
|
|
74
|
+
|
|
75
|
+
# 또는 git 브랜치 직접 지정
|
|
76
|
+
dsh plugin --profile web add github:drscrewdriver/dsh-session-guard#legacy/0.1.2
|
|
77
|
+
|
|
78
|
+
# DSH 0.1.5-rc.x 호스트는 전용 라인(dist-tag dsh-0.1.5) 사용
|
|
79
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.5
|
|
49
80
|
```
|
|
50
81
|
|
|
82
|
+
> ⚠️ **맨 패키지명 `dsh-session-guard`에 의존하지 마세요**: npm `latest` 태그는
|
|
83
|
+
> 상호 배타적인 두 버전 라인(`engines.dsh`가 semver 프리릴리스 매칭상 배타)을
|
|
84
|
+
> 동시에 제공할 수 없습니다. 반드시 dist-tag를 명시하세요.
|
|
85
|
+
|
|
51
86
|
설치 후 dsh web을 재시작하고 페이지를 새로고침.
|
|
52
87
|
|
|
53
88
|
## 설정 (설정 → 플러그인 → session-guard)
|
package/README.md
CHANGED
|
@@ -32,19 +32,31 @@
|
|
|
32
32
|
>
|
|
33
33
|
> | DSH 版本 | 加载 | 设置注册 | 会话事件 / 会话门 | 客户端半 |
|
|
34
34
|
> | --- | --- | --- | --- | --- |
|
|
35
|
-
> | 0.1.
|
|
36
|
-
> | 0.1.2-alpha.2+ / 0.1.2-rc.1 | ✅ | `register` 仍保留(另加 `installSection`) | ✅ 形状一致 | ✅ 无平台值导入 |
|
|
37
|
-
> | 0.1.
|
|
35
|
+
> | 0.1.2-rc.1 ~ 0.1.4-beta.1 | ✅ 本线支持 | `ctx.settings.register(ns, schema, { base })` | ✅ 形状一致 | ✅ 无平台值导入 |
|
|
36
|
+
> | 0.1.2-alpha.2+ / 0.1.2-rc.1 | ✅ 本线支持 | `register` 仍保留(另加 `installSection`) | ✅ 形状一致 | ✅ 无平台值导入 |
|
|
37
|
+
> | 0.1.5-rc.2 | ➖ **不在本线** | 见下方专线 | 见下方专线 | 见下方专线 |
|
|
38
38
|
>
|
|
39
|
-
>
|
|
39
|
+
> **本线身份**:分支 `legacy/0.1.2`,npm 版本 `0.3.x`,dist-tag **`dsh-0.1.2`**,
|
|
40
|
+
> 宿主范围 `engines.dsh = >=0.1.2-rc.1 <0.2.0-0`。**0.1.0-rc.7 ~ 0.1.1-rc.x 不在本线范围内**
|
|
41
|
+
> (本线 `package.json` / `dsh.plugin.json` 的 `engines.dsh` 与 `@deepseek-ai/dsh-client-*`
|
|
42
|
+
> peer 下界统一为 `>=0.1.2-rc.1`;这些老宿主请使用 ≤ `0.1.2` 的历史版本)。
|
|
43
|
+
> `0.1.0`/`0.1.1` 字段源头的定义见 `mine-dsh-plugins/improve-dsh-plugins/DSH-PLUGIN-VERSION-DISTRIBUTION-STRATEGY.md` §2.2。
|
|
44
|
+
>
|
|
45
|
+
> **0.1.5-rc.2 已拆为专线**:DSH 0.1.5 起 `session.events` 数组访问器被移除,
|
|
46
|
+
> 事件需经 `snapshotEvents()` 读取,且 `engines.dsh` 按 semver 预发布规则与 `>=0.1.2-rc.1` 互斥。
|
|
47
|
+
> 因此 **0.1.5-rc.x 宿主请改用 `compat/0.1.5` 分支**(npm dist-tag **`dsh-0.1.5`**,版本 `3.0.0`):
|
|
48
|
+
> `dsh plugin --profile web add github:drscrewdriver/dsh-session-guard#compat/0.1.5`。
|
|
49
|
+
> **「一份产物同时支持两版本」自 0.1.5 拆线起不再成立。**
|
|
50
|
+
>
|
|
51
|
+
> `session/event`、`agent.cancel`、`goals.pause`、
|
|
40
52
|
> `agent.followup`、`commands.register`、`timer.interval`、`webServer.register`、
|
|
41
53
|
> `agent/request`、`llm.listConfigurableProviders`、`settings.register/get` 在
|
|
42
|
-
> `dsh-v0.1.1-rc.2` 与 `dsh-v0.1.2-rc.1`
|
|
54
|
+
> `dsh-v0.1.1-rc.2` 与 `dsh-v0.1.2-rc.1` 之间签名一致;
|
|
43
55
|
> 唯一需要双读的是 `tool/result` 记录的调用 id 形态(`content[].toolCallId` 优先、
|
|
44
56
|
> `source.callId` 回退),已抽到 `src/tool-call-id.js` 并配单测——两版本的回放日志都可能出现这两种形态。
|
|
45
57
|
> `model/selection` 事件**仅 0.1.2+**,只做切模型加速且必须特性探测;设置面只用
|
|
46
58
|
> `register` + `get` 交集(不碰 `installSection` / 已移除的 `installSettingsSection`)。
|
|
47
|
-
> 漂移守卫脚本:`tools/check-api-drift.ps1
|
|
59
|
+
> 漂移守卫脚本:`tools/check-api-drift.ps1`(本线默认对四个 tag 断言必需接口存在)。
|
|
48
60
|
|
|
49
61
|
> 高峰时段自动暂停运行中的会话、低峰/周末自动续跑;配合 input-traffic 的冻结按钮做到**会话级**锁定;后端**自动重试**在冻结/门控期间让路。核心基于**自研会话门**(`agent.cancel keepInbox + goals.pause + session/event 安全边界 + followup 续跑`),不再依赖 dsh-task-control。
|
|
50
62
|
|
|
@@ -74,9 +86,19 @@
|
|
|
74
86
|
## 安装
|
|
75
87
|
|
|
76
88
|
```bash
|
|
77
|
-
|
|
89
|
+
# 0.1.2-rc.x 宿主(本线,dist-tag dsh-0.1.2)
|
|
90
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.2
|
|
91
|
+
|
|
92
|
+
# 或直接走 git 分支
|
|
93
|
+
dsh plugin --profile web add github:drscrewdriver/dsh-session-guard#legacy/0.1.2
|
|
94
|
+
|
|
95
|
+
# 0.1.5-rc.x 宿主请改用专线(dist-tag dsh-0.1.5)
|
|
96
|
+
dsh plugin --profile web add dsh-session-guard@dsh-0.1.5
|
|
78
97
|
```
|
|
79
98
|
|
|
99
|
+
> ⚠️ **不要依赖裸包名 `dsh-session-guard`**:npm `latest` 标签无法同时服务两条
|
|
100
|
+
> 互斥版本线(`engines.dsh` 按 semver 预发布规则互斥),必须显式指定 dist-tag。
|
|
101
|
+
|
|
80
102
|
装后重启 dsh web 并刷新页面。
|
|
81
103
|
|
|
82
104
|
## 设置(设置 → 插件 → session-guard,简单开关)
|
package/dsh.plugin.json
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
{
|
|
2
|
-
"id": "dsh-external/dsh-session-guard",
|
|
3
|
-
"version": "0.2
|
|
4
|
-
"main": "./src/index.js",
|
|
5
|
-
"description": "高峰自动会话门:step 级门控 + 周末模式 + 高峰自动暂停 + 官方源二维判定 + 会话级冻结 + 后端自动重试。",
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
"
|
|
12
|
-
}
|
|
13
|
-
|
|
1
|
+
{
|
|
2
|
+
"id": "dsh-external/dsh-session-guard",
|
|
3
|
+
"version": "0.3.2",
|
|
4
|
+
"main": "./src/index.js",
|
|
5
|
+
"description": "高峰自动会话门:step 级门控 + 周末模式 + 高峰自动暂停 + 官方源二维判定 + 会话级冻结 + 后端自动重试。",
|
|
6
|
+
"engines": {
|
|
7
|
+
"dsh": ">=0.1.2-rc.1 <0.2.0-0"
|
|
8
|
+
},
|
|
9
|
+
"contributes": {
|
|
10
|
+
"tools": [],
|
|
11
|
+
"skills": []
|
|
12
|
+
},
|
|
13
|
+
"client": {
|
|
14
|
+
"main": "./lib/client.js"
|
|
15
|
+
}
|
|
16
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-session-guard",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"registry": "https://registry.npmjs.org",
|
|
6
6
|
"access": "public",
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
"license": "MIT",
|
|
24
24
|
"repository": {
|
|
25
25
|
"type": "git",
|
|
26
|
-
"url": "git+https://github.com/drscrewdriver/session-guard.git"
|
|
26
|
+
"url": "git+https://github.com/drscrewdriver/dsh-session-guard.git"
|
|
27
27
|
},
|
|
28
|
-
"homepage": "https://github.com/drscrewdriver/session-guard",
|
|
28
|
+
"homepage": "https://github.com/drscrewdriver/dsh-session-guard",
|
|
29
29
|
"main": "src/index.js",
|
|
30
30
|
"exports": {
|
|
31
31
|
".": "./src/index.js",
|
|
@@ -77,9 +77,10 @@
|
|
|
77
77
|
},
|
|
78
78
|
"peerDependencies": {
|
|
79
79
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
80
|
-
"@deepseek-ai/dsh-client-locale": ">=0.1.
|
|
81
|
-
"@deepseek-ai/dsh-client-ui-settings": ">=0.1.
|
|
82
|
-
"@deepseek-ai/dsh-client-ui-slots": ">=0.1.
|
|
80
|
+
"@deepseek-ai/dsh-client-locale": ">=0.1.2-rc.1 <0.2.0-0",
|
|
81
|
+
"@deepseek-ai/dsh-client-ui-settings": ">=0.1.2-rc.1 <0.2.0-0",
|
|
82
|
+
"@deepseek-ai/dsh-client-ui-slots": ">=0.1.2-rc.1 <0.2.0-0",
|
|
83
|
+
"@deepseek-ai/dsh-client-ui-renderer": ">=0.1.2-rc.1 <0.2.0-0"
|
|
83
84
|
},
|
|
84
85
|
"peerDependenciesMeta": {
|
|
85
86
|
"@deepseek-ai/cordis": {
|
|
@@ -93,6 +94,9 @@
|
|
|
93
94
|
},
|
|
94
95
|
"@deepseek-ai/dsh-client-ui-slots": {
|
|
95
96
|
"optional": true
|
|
97
|
+
},
|
|
98
|
+
"@deepseek-ai/dsh-client-ui-renderer": {
|
|
99
|
+
"optional": true
|
|
96
100
|
}
|
|
97
101
|
},
|
|
98
102
|
"devDependencies": {
|