dsh-manage-session 0.5.7 → 2.0.4
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 +33 -229
- package/CHANGELOG.ko.md +33 -229
- package/CHANGELOG.md +33 -363
- package/INSTALL.ja.md +164 -164
- package/INSTALL.ko.md +164 -164
- package/INSTALL.md +164 -164
- package/INSTALL.zh.md +164 -164
- package/LICENSE +21 -21
- package/README.en.md +41 -46
- package/README.ja.md +33 -57
- package/README.ko.md +32 -55
- package/README.md +64 -64
- package/cordis.patch.yml +19 -16
- package/dsh.plugin.json +4 -4
- package/lib/client.js +661 -3082
- package/lib/index.d.ts +79 -970
- package/lib/index.js +249 -2669
- package/locale/de.json +2 -2
- package/locale/en.json +2 -2
- package/locale/es.json +2 -2
- package/locale/fr.json +2 -2
- package/locale/it.json +2 -2
- package/locale/ja.json +2 -2
- package/locale/ko.json +2 -2
- package/locale/ru.json +2 -2
- package/locale/zh.json +2 -2
- package/package.json +15 -25
- package/screenshots.json +3 -3
- package/src/client/bridge-scope.ts +202 -213
- package/src/client/card.tsx +154 -154
- package/src/client/health-panel.tsx +49 -49
- package/src/client/host-api.ts +72 -6
- package/src/client/index.ts +594 -503
- package/src/client/locales.ts +893 -893
- package/src/client/manage-locales.ts +178 -0
- package/src/client/{search/manage.tsx → manage.tsx} +430 -404
- package/src/client/panel.tsx +131 -129
- package/src/client/session-menu-legacy.ts +2 -3
- package/src/client/session-menu.tsx +5 -5
- package/src/config.ts +43 -99
- package/src/host/health/attribution.ts +118 -118
- package/src/host/health/lossless.ts +128 -128
- package/src/host/health/repair.ts +2 -2
- package/src/host/health/source-kind.ts +350 -350
- package/src/host/history/archive-source.ts +250 -250
- package/src/host/history/archive.ts +249 -249
- package/src/host/history/favorites.ts +71 -71
- package/src/host/history/purge.ts +370 -370
- package/src/host/history/tombstones.ts +3 -3
- package/src/host/registry/archive-registry.ts +317 -317
- package/src/host/settings-bridge.ts +222 -264
- package/src/index.ts +66 -694
- package/src/client/search/card.tsx +0 -563
- package/src/client/search/host-api.ts +0 -213
- package/src/client/search/locales.ts +0 -861
- package/src/client/search/locate.ts +0 -330
- package/src/client/search/panel.tsx +0 -940
- package/src/client/search/platform.ts +0 -136
- package/src/host/index/archive-source.ts +0 -90
- package/src/host/index/drs-source.ts +0 -211
- package/src/host/index/engine.ts +0 -699
- package/src/host/index/extract.ts +0 -272
- package/src/host/index/peers.ts +0 -62
- package/src/host/index/rebuild.ts +0 -432
- package/src/host/index/schema.ts +0 -136
- package/src/host/index/snapshot.ts +0 -135
- package/src/host/index/sync.ts +0 -413
package/INSTALL.ko.md
CHANGED
|
@@ -1,164 +1,164 @@
|
|
|
1
|
-
# 설치 가이드(공식 DSH CLI)
|
|
2
|
-
|
|
3
|
-
이 가이드는 공식 DSH `dsh plugin` 명령만 사용합니다. 이 명령은 의존성을 프로필에 설치하고 `dsh.profile.bundles`를 동기화합니다. 이를 일반 `npm install`, 프로필에서의 직접적인 `pnpm add`, 또는 프로필 매니페스트의 수동 편집으로 대체하지 마세요.
|
|
4
|
-
|
|
5
|
-
- [영어 설치 가이드](./INSTALL.md)
|
|
6
|
-
- [中文安装指南](./INSTALL.zh.md)
|
|
7
|
-
- [日本語インストールガイド](./INSTALL.ja.md)
|
|
8
|
-
- [한국어 설치 안내](./INSTALL.ko.md)
|
|
9
|
-
- [中文 README](./README.md)
|
|
10
|
-
- [영어 README](./README.en.md)
|
|
11
|
-
- [日本語 README](./README.ja.md)
|
|
12
|
-
- [한국어 README](./README.ko.md)
|
|
13
|
-
- [변경 이력](./CHANGELOG.md)
|
|
14
|
-
- [日本語 changelog](./CHANGELOG.ja.md)
|
|
15
|
-
- [한국어 changelog](./CHANGELOG.ko.md)
|
|
16
|
-
|
|
17
|
-
이 가이드의 자리표시자는 다음과 같습니다.
|
|
18
|
-
|
|
19
|
-
- `<profile>`: 수정할 DSH 프로필이며, 보통 `web`입니다;
|
|
20
|
-
- `dsh-manage-session`: npm 패키지이자 런타임 플러그인 ID입니다.
|
|
21
|
-
|
|
22
|
-
> **지원 DSH 범위:
|
|
23
|
-
>
|
|
24
|
-
> 이는 `package.json`과 `dsh.plugin.json` 양쪽의 `engines.dsh`에 선언된 범위이며, 이 플러그인이 자체 `@deepseek-ai/dsh-client-ui-slots` 의존성에 대해 이미 선언한 `^0.1.0-rc.6` 하한과 일치합니다. 설치 전에 `dsh --version`으로 실행 중인 버전을 확인하세요.
|
|
25
|
-
|
|
26
|
-
## 0. 사전 요구 사항과 프로필 확인
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
echo "DSH_HOME=${DSH_HOME:-$HOME/.dsh}"
|
|
30
|
-
dsh --version
|
|
31
|
-
ls "${DSH_HOME:-$HOME/.dsh}/profiles"
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
실행 중인 DSH 프로세스가 지정한 프로필을 사용하세요. `web`이 일반적이지만, 활성 `--profile` 인자가 기준입니다.
|
|
35
|
-
|
|
36
|
-
## 1. 공식 설치
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
dsh plugin --profile <profile> add dsh-manage-session -w
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
(프로필이 `web`처럼 pnpm 워크스페이스 루트인 경우 `-w` 플래그가 필요합니다.)
|
|
43
|
-
|
|
44
|
-
특정 버전을 명시적으로 설치:
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
dsh plugin --profile <profile> add dsh-manage-session@
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
공식 CLI는 프로필 의존성, 잠금 파일, `dsh.profile.bundles`를 자동으로 갱신합니다. YAML 행을 수동으로 추가하지 마세요.
|
|
51
|
-
|
|
52
|
-
### 공급망 쿨다운 기간
|
|
53
|
-
|
|
54
|
-
DSH 런타임은 pnpm 11을 사용하며, 그 `minimumReleaseAge` 정책이 갓 게시된 버전을 `ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION`과 함께 차단할 수 있습니다. `~/.dsh/profiles/<profile>/pnpm-workspace.yaml`의 `minimumReleaseAgeExclude`에 해당 버전을 추가하세요:
|
|
55
|
-
|
|
56
|
-
```yaml
|
|
57
|
-
minimumReleaseAgeExclude:
|
|
58
|
-
- dsh-manage-session@
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
## 2. 호스트 재시작
|
|
62
|
-
|
|
63
|
-
**설치 또는 업그레이드 후에는 DSH 재시작이 필요합니다.** 브라우저 페이지 새로고침만으로는 부족합니다: 호스트 측은 시작 시 `/session
|
|
64
|
-
|
|
65
|
-
## 3. 업그레이드
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
dsh plugin --profile <profile> update dsh-manage-session -w
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
이후 DSH를 재시작하세요.
|
|
72
|
-
|
|
73
|
-
## 4. 로컬 경로 / `link:` 등록(대안)
|
|
74
|
-
|
|
75
|
-
개발이나 오프라인 설치의 경우 로컬 체크아웃에서 플러그인을 등록합니다:
|
|
76
|
-
|
|
77
|
-
```bash
|
|
78
|
-
# ~/.dsh/profiles/<profile>/package.json dependencies:
|
|
79
|
-
# "dsh-manage-session": "link:<absolute path to dsh-manage-session>"
|
|
80
|
-
# ~/.dsh/profiles/<profile>/cordis.patch.yml:
|
|
81
|
-
# - insert:
|
|
82
|
-
# - id: dsh-manage-session
|
|
83
|
-
# name: dsh-manage-session
|
|
84
|
-
cd ~/.dsh/profiles/<profile> && pnpm install && dsh web
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
또는 로컬 경로와 함께 공식 CLI를 사용하세요(네트워크 불필요):
|
|
88
|
-
|
|
89
|
-
```bash
|
|
90
|
-
dsh plugin --profile <profile> add /absolute/path/to/dsh-manage-session -w
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
소스 체크아웃에서 빌드할 때는 다음 스크립트를 사용합니다:
|
|
94
|
-
|
|
95
|
-
```bash
|
|
96
|
-
pnpm install
|
|
97
|
-
pnpm typecheck # tsc -b --pretty false
|
|
98
|
-
pnpm test # vitest run
|
|
99
|
-
pnpm build # tsc -b && tsdown → lib/index.js + lib/index.d.ts + lib/client.js
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
`lib/`는 커밋되지 않으므로, 소스 체크아웃은 경로로 등록하기 전에 빌드해야 합니다. 게시 시에는 `prepublishOnly` 훅을 통해 자동으로 빌드됩니다.
|
|
103
|
-
|
|
104
|
-
## 5. 설치 검증
|
|
105
|
-
|
|
106
|
-
의존성과 설치된 버전을 확인합니다:
|
|
107
|
-
|
|
108
|
-
```bash
|
|
109
|
-
grep -n "dsh-manage-session" \
|
|
110
|
-
"${DSH_HOME:-$HOME/.dsh}/profiles/<profile>/package.json"
|
|
111
|
-
node -p "require('${DSH_HOME:-$HOME/.dsh}/profiles/<profile>/node_modules/dsh-manage-session/package.json').version"
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
공식 구성을 확인합니다:
|
|
115
|
-
|
|
116
|
-
```bash
|
|
117
|
-
dsh --profile <profile> --dump-default-config
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
다음이 포함되어야 합니다:
|
|
121
|
-
|
|
122
|
-
```yaml
|
|
123
|
-
- id: dsh-manage-session
|
|
124
|
-
name: dsh-manage-session
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
## 6. 플러그인 검증
|
|
128
|
-
|
|
129
|
-
재시작 후 사이드바 항목 `dsh-manage-session`를 사용할 수 있고, 설정 섹션은 `session
|
|
130
|
-
|
|
131
|
-
1. 두 기능 게이트가 모두 켜져 있을 때 **기록 보관소**와 **점검** 두 탭이 모두 렌더링됩니다.
|
|
132
|
-
2. `historyFiles`를 끄면 기록 보관소 탭이 사라지고 모든 `session-history-*` 호출이 명시적인 disabled 오류를 반환합니다.
|
|
133
|
-
3. `healthCheck`를 끄면 점검 탭이 사라지고 모든 `session-health-*` 호출이 명시적인 disabled 오류를 반환합니다.
|
|
134
|
-
4. `/session
|
|
135
|
-
|
|
136
|
-
닫힌 도메인은 `{ ok: false, error: '子域已关闭(…=false):<method> 未注册' }`를 반환합니다 — 플러그인은 빈 껍데기를 남기지 않습니다.
|
|
137
|
-
|
|
138
|
-
## 7. 문제 해결
|
|
139
|
-
|
|
140
|
-
| 증상 | 조치 |
|
|
141
|
-
| --- | --- |
|
|
142
|
-
| `dsh`를 찾을 수 없음 | 공식 DSH CLI를 설치하거나 활성화하세요. |
|
|
143
|
-
| `ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION` | 프로필의 `pnpm-workspace.yaml`에 있는 `minimumReleaseAgeExclude`에 해당 버전을 추가하세요. |
|
|
144
|
-
| 설치 후 탭이나 라우트가 없음 | 호스트 프로세스를 재시작하세요 — 페이지 새로고침은 라우트를 다시 등록하지 않습니다. |
|
|
145
|
-
| 아카이브 집합 변경 사항이 보이지 않음 | 호스트를 재시작하세요; 아카이브 소스는 시작 시 읽힙니다. |
|
|
146
|
-
| `session-history-*`가 disabled 오류를 반환함 | `historyFiles` 게이트가 꺼져 있습니다. 플러그인 설정에서 다시 켜세요. |
|
|
147
|
-
| `session-health-*`가 disabled 오류를 반환함 | `healthCheck` 게이트가 꺼져 있습니다. 플러그인 설정에서 다시 켜세요. |
|
|
148
|
-
| 업그레이드 후 클라이언트 번들이 오래됨 | 브라우저를 강력 새로고침하세요(Ctrl+Shift+R). |
|
|
149
|
-
|
|
150
|
-
## 8. 제거
|
|
151
|
-
|
|
152
|
-
```bash
|
|
153
|
-
dsh plugin --profile <profile> remove dsh-manage-session
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
이후 DSH를 재시작하세요.
|
|
157
|
-
|
|
158
|
-
## 제거해도 복구가 되돌려지지는 않습니다
|
|
159
|
-
|
|
160
|
-
이 플러그인은 세션 로그나 히스토리 데이터를 재작성하지 않으며, 필드를 조용히 버리지도 않습니다. 되돌릴 수 없어 보이는 유일한 동작 — 손상된 프로젝션 캐시 레코드 격리 — 은 먼저 백업을 복사하며, 격리 디렉터리는 복원에 사용할 수 있도록 디스크에 남겨 둡니다. 따라서 플러그인을 제거해도 요청한 격리 결과는 그대로 남습니다; 상태를 되돌리려면 직접 복원하세요.
|
|
161
|
-
|
|
162
|
-
## 라이선스
|
|
163
|
-
|
|
164
|
-
MIT
|
|
1
|
+
# 설치 가이드(공식 DSH CLI)
|
|
2
|
+
|
|
3
|
+
이 가이드는 공식 DSH `dsh plugin` 명령만 사용합니다. 이 명령은 의존성을 프로필에 설치하고 `dsh.profile.bundles`를 동기화합니다. 이를 일반 `npm install`, 프로필에서의 직접적인 `pnpm add`, 또는 프로필 매니페스트의 수동 편집으로 대체하지 마세요.
|
|
4
|
+
|
|
5
|
+
- [영어 설치 가이드](./INSTALL.md)
|
|
6
|
+
- [中文安装指南](./INSTALL.zh.md)
|
|
7
|
+
- [日本語インストールガイド](./INSTALL.ja.md)
|
|
8
|
+
- [한국어 설치 안내](./INSTALL.ko.md)
|
|
9
|
+
- [中文 README](./README.md)
|
|
10
|
+
- [영어 README](./README.en.md)
|
|
11
|
+
- [日本語 README](./README.ja.md)
|
|
12
|
+
- [한국어 README](./README.ko.md)
|
|
13
|
+
- [변경 이력](./CHANGELOG.md)
|
|
14
|
+
- [日本語 changelog](./CHANGELOG.ja.md)
|
|
15
|
+
- [한국어 changelog](./CHANGELOG.ko.md)
|
|
16
|
+
|
|
17
|
+
이 가이드의 자리표시자는 다음과 같습니다.
|
|
18
|
+
|
|
19
|
+
- `<profile>`: 수정할 DSH 프로필이며, 보통 `web`입니다;
|
|
20
|
+
- `dsh-manage-session`: npm 패키지이자 런타임 플러그인 ID입니다.
|
|
21
|
+
|
|
22
|
+
> **지원 DSH 범위: `engines.dsh`의 rc별 화이트리스트(`0.1.0-rc.2` ~ `0.2.1-rc.3`, 각 버전 실측).**
|
|
23
|
+
>
|
|
24
|
+
> 이는 `package.json`과 `dsh.plugin.json` 양쪽의 `engines.dsh`에 선언된 범위이며, 이 플러그인이 자체 `@deepseek-ai/dsh-client-ui-slots` 의존성에 대해 이미 선언한 `^0.1.0-rc.6` 하한과 일치합니다. 설치 전에 `dsh --version`으로 실행 중인 버전을 확인하세요.
|
|
25
|
+
|
|
26
|
+
## 0. 사전 요구 사항과 프로필 확인
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
echo "DSH_HOME=${DSH_HOME:-$HOME/.dsh}"
|
|
30
|
+
dsh --version
|
|
31
|
+
ls "${DSH_HOME:-$HOME/.dsh}/profiles"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
실행 중인 DSH 프로세스가 지정한 프로필을 사용하세요. `web`이 일반적이지만, 활성 `--profile` 인자가 기준입니다.
|
|
35
|
+
|
|
36
|
+
## 1. 공식 설치
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
dsh plugin --profile <profile> add dsh-manage-session -w
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
(프로필이 `web`처럼 pnpm 워크스페이스 루트인 경우 `-w` 플래그가 필요합니다.)
|
|
43
|
+
|
|
44
|
+
특정 버전을 명시적으로 설치:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
dsh plugin --profile <profile> add dsh-manage-session@1.0.0 -w
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
공식 CLI는 프로필 의존성, 잠금 파일, `dsh.profile.bundles`를 자동으로 갱신합니다. YAML 행을 수동으로 추가하지 마세요.
|
|
51
|
+
|
|
52
|
+
### 공급망 쿨다운 기간
|
|
53
|
+
|
|
54
|
+
DSH 런타임은 pnpm 11을 사용하며, 그 `minimumReleaseAge` 정책이 갓 게시된 버전을 `ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION`과 함께 차단할 수 있습니다. `~/.dsh/profiles/<profile>/pnpm-workspace.yaml`의 `minimumReleaseAgeExclude`에 해당 버전을 추가하세요:
|
|
55
|
+
|
|
56
|
+
```yaml
|
|
57
|
+
minimumReleaseAgeExclude:
|
|
58
|
+
- dsh-manage-session@1.0.0
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 2. 호스트 재시작
|
|
62
|
+
|
|
63
|
+
**설치 또는 업그레이드 후에는 DSH 재시작이 필요합니다.** 브라우저 페이지 새로고침만으로는 부족합니다: 호스트 측은 시작 시 `/manage-session/api` 라우트와 설정 네임스페이스를 등록하며, 정리 결과를 반영하려면 호스트가 아카이브 소스를 다시 로드해야 합니다.
|
|
64
|
+
|
|
65
|
+
## 3. 업그레이드
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
dsh plugin --profile <profile> update dsh-manage-session -w
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
이후 DSH를 재시작하세요.
|
|
72
|
+
|
|
73
|
+
## 4. 로컬 경로 / `link:` 등록(대안)
|
|
74
|
+
|
|
75
|
+
개발이나 오프라인 설치의 경우 로컬 체크아웃에서 플러그인을 등록합니다:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# ~/.dsh/profiles/<profile>/package.json dependencies:
|
|
79
|
+
# "dsh-manage-session": "link:<absolute path to dsh-manage-session>"
|
|
80
|
+
# ~/.dsh/profiles/<profile>/cordis.patch.yml:
|
|
81
|
+
# - insert:
|
|
82
|
+
# - id: dsh-manage-session
|
|
83
|
+
# name: dsh-manage-session
|
|
84
|
+
cd ~/.dsh/profiles/<profile> && pnpm install && dsh web
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
또는 로컬 경로와 함께 공식 CLI를 사용하세요(네트워크 불필요):
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
dsh plugin --profile <profile> add /absolute/path/to/dsh-manage-session -w
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
소스 체크아웃에서 빌드할 때는 다음 스크립트를 사용합니다:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
pnpm install
|
|
97
|
+
pnpm typecheck # tsc -b --pretty false
|
|
98
|
+
pnpm test # vitest run
|
|
99
|
+
pnpm build # tsc -b && tsdown → lib/index.js + lib/index.d.ts + lib/client.js
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
`lib/`는 커밋되지 않으므로, 소스 체크아웃은 경로로 등록하기 전에 빌드해야 합니다. 게시 시에는 `prepublishOnly` 훅을 통해 자동으로 빌드됩니다.
|
|
103
|
+
|
|
104
|
+
## 5. 설치 검증
|
|
105
|
+
|
|
106
|
+
의존성과 설치된 버전을 확인합니다:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
grep -n "dsh-manage-session" \
|
|
110
|
+
"${DSH_HOME:-$HOME/.dsh}/profiles/<profile>/package.json"
|
|
111
|
+
node -p "require('${DSH_HOME:-$HOME/.dsh}/profiles/<profile>/node_modules/dsh-manage-session/package.json').version"
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
공식 구성을 확인합니다:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
dsh --profile <profile> --dump-default-config
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
다음이 포함되어야 합니다:
|
|
121
|
+
|
|
122
|
+
```yaml
|
|
123
|
+
- id: dsh-manage-session
|
|
124
|
+
name: dsh-manage-session
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## 6. 플러그인 검증
|
|
128
|
+
|
|
129
|
+
재시작 후 사이드바 항목 `dsh-manage-session`를 사용할 수 있고, 설정 섹션은 `manage-session` 네임스페이스를 사용합니다. 다음을 확인하세요:
|
|
130
|
+
|
|
131
|
+
1. 두 기능 게이트가 모두 켜져 있을 때 **기록 보관소**와 **점검** 두 탭이 모두 렌더링됩니다.
|
|
132
|
+
2. `historyFiles`를 끄면 기록 보관소 탭이 사라지고 모든 `session-history-*` 호출이 명시적인 disabled 오류를 반환합니다.
|
|
133
|
+
3. `healthCheck`를 끄면 점검 탭이 사라지고 모든 `session-health-*` 호출이 명시적인 disabled 오류를 반환합니다.
|
|
134
|
+
4. `/manage-session/api`의 인식되지 않는 메서드는 조용히 성공하지 않고 명시적인 오류를 반환합니다.
|
|
135
|
+
|
|
136
|
+
닫힌 도메인은 `{ ok: false, error: '子域已关闭(…=false):<method> 未注册' }`를 반환합니다 — 플러그인은 빈 껍데기를 남기지 않습니다.
|
|
137
|
+
|
|
138
|
+
## 7. 문제 해결
|
|
139
|
+
|
|
140
|
+
| 증상 | 조치 |
|
|
141
|
+
| --- | --- |
|
|
142
|
+
| `dsh`를 찾을 수 없음 | 공식 DSH CLI를 설치하거나 활성화하세요. |
|
|
143
|
+
| `ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION` | 프로필의 `pnpm-workspace.yaml`에 있는 `minimumReleaseAgeExclude`에 해당 버전을 추가하세요. |
|
|
144
|
+
| 설치 후 탭이나 라우트가 없음 | 호스트 프로세스를 재시작하세요 — 페이지 새로고침은 라우트를 다시 등록하지 않습니다. |
|
|
145
|
+
| 아카이브 집합 변경 사항이 보이지 않음 | 호스트를 재시작하세요; 아카이브 소스는 시작 시 읽힙니다. |
|
|
146
|
+
| `session-history-*`가 disabled 오류를 반환함 | `historyFiles` 게이트가 꺼져 있습니다. 플러그인 설정에서 다시 켜세요. |
|
|
147
|
+
| `session-health-*`가 disabled 오류를 반환함 | `healthCheck` 게이트가 꺼져 있습니다. 플러그인 설정에서 다시 켜세요. |
|
|
148
|
+
| 업그레이드 후 클라이언트 번들이 오래됨 | 브라우저를 강력 새로고침하세요(Ctrl+Shift+R). |
|
|
149
|
+
|
|
150
|
+
## 8. 제거
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
dsh plugin --profile <profile> remove dsh-manage-session
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
이후 DSH를 재시작하세요.
|
|
157
|
+
|
|
158
|
+
## 제거해도 복구가 되돌려지지는 않습니다
|
|
159
|
+
|
|
160
|
+
이 플러그인은 세션 로그나 히스토리 데이터를 재작성하지 않으며, 필드를 조용히 버리지도 않습니다. 되돌릴 수 없어 보이는 유일한 동작 — 손상된 프로젝션 캐시 레코드 격리 — 은 먼저 백업을 복사하며, 격리 디렉터리는 복원에 사용할 수 있도록 디스크에 남겨 둡니다. 따라서 플러그인을 제거해도 요청한 격리 결과는 그대로 남습니다; 상태를 되돌리려면 직접 복원하세요.
|
|
161
|
+
|
|
162
|
+
## 라이선스
|
|
163
|
+
|
|
164
|
+
MIT
|
package/INSTALL.md
CHANGED
|
@@ -1,164 +1,164 @@
|
|
|
1
|
-
# Installation Guide (Official DSH CLI)
|
|
2
|
-
|
|
3
|
-
This guide uses only the official DSH `dsh plugin` command. That command installs the dependency into a profile and synchronizes `dsh.profile.bundles`. Do not replace it with plain `npm install`, a direct `pnpm add` in the profile, or manual edits to the profile manifest.
|
|
4
|
-
|
|
5
|
-
- [English installation guide](./INSTALL.md)
|
|
6
|
-
- [中文安装指南](./INSTALL.zh.md)
|
|
7
|
-
- [日本語インストールガイド](./INSTALL.ja.md)
|
|
8
|
-
- [한국어 설치 안내](./INSTALL.ko.md)
|
|
9
|
-
- [中文 README](./README.md)
|
|
10
|
-
- [English README](./README.en.md)
|
|
11
|
-
- [日本語 README](./README.ja.md)
|
|
12
|
-
- [한국어 README](./README.ko.md)
|
|
13
|
-
- [Changelog](./CHANGELOG.md)
|
|
14
|
-
- [日本語 changelog](./CHANGELOG.ja.md)
|
|
15
|
-
- [한국어 changelog](./CHANGELOG.ko.md)
|
|
16
|
-
|
|
17
|
-
The placeholders in this guide are:
|
|
18
|
-
|
|
19
|
-
- `<profile>`: the DSH profile to modify, usually `web`;
|
|
20
|
-
- `dsh-manage-session`: the npm package and runtime plugin ID.
|
|
21
|
-
|
|
22
|
-
> **Supported DSH range:
|
|
23
|
-
>
|
|
24
|
-
> This is the range declared in `engines.dsh` of both `package.json` and `dsh.plugin.json`, and it matches the `^0.1.0-rc.6` floor this plugin already declares for its own `@deepseek-ai/dsh-client-ui-slots` dependency. Check the running version with `dsh --version` before installing.
|
|
25
|
-
|
|
26
|
-
## 0. Prerequisites and profile discovery
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
echo "DSH_HOME=${DSH_HOME:-$HOME/.dsh}"
|
|
30
|
-
dsh --version
|
|
31
|
-
ls "${DSH_HOME:-$HOME/.dsh}/profiles"
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
Use the profile named by your running DSH process. `web` is common, but the active `--profile` argument is authoritative.
|
|
35
|
-
|
|
36
|
-
## 1. Official installation
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
dsh plugin --profile <profile> add dsh-manage-session -w
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
(the `-w` flag is required when the profile is a pnpm workspace root, as `web` is.)
|
|
43
|
-
|
|
44
|
-
Install a specific version explicitly:
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
dsh plugin --profile <profile> add dsh-manage-session@
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
The official CLI updates the profile dependency, the lockfile, and `dsh.profile.bundles` automatically. Do not add a manual YAML row.
|
|
51
|
-
|
|
52
|
-
### Supply-chain cooling period
|
|
53
|
-
|
|
54
|
-
The DSH runtime uses pnpm 11, whose `minimumReleaseAge` policy may block a freshly published version with `ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION`. Add the version to `minimumReleaseAgeExclude` in `~/.dsh/profiles/<profile>/pnpm-workspace.yaml`:
|
|
55
|
-
|
|
56
|
-
```yaml
|
|
57
|
-
minimumReleaseAgeExclude:
|
|
58
|
-
- dsh-manage-session@
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
## 2. Restart the host
|
|
62
|
-
|
|
63
|
-
**A DSH restart is required after installing or upgrading.** Refreshing the browser page is not enough: the host half registers the `/session
|
|
64
|
-
|
|
65
|
-
## 3. Upgrade
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
dsh plugin --profile <profile> update dsh-manage-session -w
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
Restart DSH afterwards.
|
|
72
|
-
|
|
73
|
-
## 4. Local-path / `link:` registration (alternative)
|
|
74
|
-
|
|
75
|
-
For development or offline installs, register the plugin from a local checkout:
|
|
76
|
-
|
|
77
|
-
```bash
|
|
78
|
-
# ~/.dsh/profiles/<profile>/package.json dependencies:
|
|
79
|
-
# "dsh-manage-session": "link:<absolute path to dsh-manage-session>"
|
|
80
|
-
# ~/.dsh/profiles/<profile>/cordis.patch.yml:
|
|
81
|
-
# - insert:
|
|
82
|
-
# - id: dsh-manage-session
|
|
83
|
-
# name: dsh-manage-session
|
|
84
|
-
cd ~/.dsh/profiles/<profile> && pnpm install && dsh web
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
Or use the official CLI with a local path (no network needed):
|
|
88
|
-
|
|
89
|
-
```bash
|
|
90
|
-
dsh plugin --profile <profile> add /absolute/path/to/dsh-manage-session -w
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
Building from a source checkout uses these scripts:
|
|
94
|
-
|
|
95
|
-
```bash
|
|
96
|
-
pnpm install
|
|
97
|
-
pnpm typecheck # tsc -b --pretty false
|
|
98
|
-
pnpm test # vitest run
|
|
99
|
-
pnpm build # tsc -b && tsdown → lib/index.js + lib/index.d.ts + lib/client.js
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
`lib/` is not committed, so a source checkout must be built before it can be registered by path. Publishing builds it automatically through the `prepublishOnly` hook.
|
|
103
|
-
|
|
104
|
-
## 5. Verify installation
|
|
105
|
-
|
|
106
|
-
Check the dependency and the installed version:
|
|
107
|
-
|
|
108
|
-
```bash
|
|
109
|
-
grep -n "dsh-manage-session" \
|
|
110
|
-
"${DSH_HOME:-$HOME/.dsh}/profiles/<profile>/package.json"
|
|
111
|
-
node -p "require('${DSH_HOME:-$HOME/.dsh}/profiles/<profile>/node_modules/dsh-manage-session/package.json').version"
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
Check the official composition:
|
|
115
|
-
|
|
116
|
-
```bash
|
|
117
|
-
dsh --profile <profile> --dump-default-config
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
It must contain:
|
|
121
|
-
|
|
122
|
-
```yaml
|
|
123
|
-
- id: dsh-manage-session
|
|
124
|
-
name: dsh-manage-session
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
## 6. Verify the plugin
|
|
128
|
-
|
|
129
|
-
After the restart, the sidebar entry `dsh-manage-session` is available and the settings section uses the `session
|
|
130
|
-
|
|
131
|
-
1. Both tabs render — **Retirement Home** and **Checkup** — while both feature gates are on.
|
|
132
|
-
2. Turning `historyFiles` off removes the Retirement Home tab and makes every `session-history-*` call return an explicit disabled error.
|
|
133
|
-
3. Turning `healthCheck` off removes the Checkup tab and makes every `session-health-*` call return an explicit disabled error.
|
|
134
|
-
4. An unrecognized method on `/session
|
|
135
|
-
|
|
136
|
-
Closed domains return `{ ok: false, error: '子域已关闭(…=false):<method> 未注册' }` — the plugin does not leave empty shells behind.
|
|
137
|
-
|
|
138
|
-
## 7. Troubleshooting
|
|
139
|
-
|
|
140
|
-
| Symptom | Action |
|
|
141
|
-
| --- | --- |
|
|
142
|
-
| `dsh` is not found | Install or enable the official DSH CLI. |
|
|
143
|
-
| `ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION` | Add the version to `minimumReleaseAgeExclude` in the profile's `pnpm-workspace.yaml`. |
|
|
144
|
-
| Tabs or routes missing after install | Restart the host process — a page refresh does not re-register routes. |
|
|
145
|
-
| Changes to the archive set are not visible | Restart the host; the archive source is read at startup. |
|
|
146
|
-
| `session-history-*` returns a disabled error | The `historyFiles` gate is off. Re-enable it in the plugin settings. |
|
|
147
|
-
| `session-health-*` returns a disabled error | The `healthCheck` gate is off. Re-enable it in the plugin settings. |
|
|
148
|
-
| Stale client bundle after an upgrade | Hard-refresh the browser (Ctrl+Shift+R). |
|
|
149
|
-
|
|
150
|
-
## 8. Remove
|
|
151
|
-
|
|
152
|
-
```bash
|
|
153
|
-
dsh plugin --profile <profile> remove dsh-manage-session
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
Restart DSH afterwards.
|
|
157
|
-
|
|
158
|
-
## Removal does not undo repairs
|
|
159
|
-
|
|
160
|
-
The plugin never rewrites session logs, history data, or silently drops fields. The only irreversible-looking action it takes — quarantining a damaged projection-cache record — copies a backup first, and the quarantine directory is left on disk for you to restore from. Removing the plugin therefore leaves any quarantine you asked for in place; restore it manually if you want the state back.
|
|
161
|
-
|
|
162
|
-
## License
|
|
163
|
-
|
|
164
|
-
MIT
|
|
1
|
+
# Installation Guide (Official DSH CLI)
|
|
2
|
+
|
|
3
|
+
This guide uses only the official DSH `dsh plugin` command. That command installs the dependency into a profile and synchronizes `dsh.profile.bundles`. Do not replace it with plain `npm install`, a direct `pnpm add` in the profile, or manual edits to the profile manifest.
|
|
4
|
+
|
|
5
|
+
- [English installation guide](./INSTALL.md)
|
|
6
|
+
- [中文安装指南](./INSTALL.zh.md)
|
|
7
|
+
- [日本語インストールガイド](./INSTALL.ja.md)
|
|
8
|
+
- [한국어 설치 안내](./INSTALL.ko.md)
|
|
9
|
+
- [中文 README](./README.md)
|
|
10
|
+
- [English README](./README.en.md)
|
|
11
|
+
- [日本語 README](./README.ja.md)
|
|
12
|
+
- [한국어 README](./README.ko.md)
|
|
13
|
+
- [Changelog](./CHANGELOG.md)
|
|
14
|
+
- [日本語 changelog](./CHANGELOG.ja.md)
|
|
15
|
+
- [한국어 changelog](./CHANGELOG.ko.md)
|
|
16
|
+
|
|
17
|
+
The placeholders in this guide are:
|
|
18
|
+
|
|
19
|
+
- `<profile>`: the DSH profile to modify, usually `web`;
|
|
20
|
+
- `dsh-manage-session`: the npm package and runtime plugin ID.
|
|
21
|
+
|
|
22
|
+
> **Supported DSH range: the enumerated whitelist in `engines.dsh` (`0.1.0-rc.2` … `0.2.1-rc.3`, each rc tested).**
|
|
23
|
+
>
|
|
24
|
+
> This is the range declared in `engines.dsh` of both `package.json` and `dsh.plugin.json`, and it matches the `^0.1.0-rc.6` floor this plugin already declares for its own `@deepseek-ai/dsh-client-ui-slots` dependency. Check the running version with `dsh --version` before installing.
|
|
25
|
+
|
|
26
|
+
## 0. Prerequisites and profile discovery
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
echo "DSH_HOME=${DSH_HOME:-$HOME/.dsh}"
|
|
30
|
+
dsh --version
|
|
31
|
+
ls "${DSH_HOME:-$HOME/.dsh}/profiles"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Use the profile named by your running DSH process. `web` is common, but the active `--profile` argument is authoritative.
|
|
35
|
+
|
|
36
|
+
## 1. Official installation
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
dsh plugin --profile <profile> add dsh-manage-session -w
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
(the `-w` flag is required when the profile is a pnpm workspace root, as `web` is.)
|
|
43
|
+
|
|
44
|
+
Install a specific version explicitly:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
dsh plugin --profile <profile> add dsh-manage-session@1.0.0 -w
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
The official CLI updates the profile dependency, the lockfile, and `dsh.profile.bundles` automatically. Do not add a manual YAML row.
|
|
51
|
+
|
|
52
|
+
### Supply-chain cooling period
|
|
53
|
+
|
|
54
|
+
The DSH runtime uses pnpm 11, whose `minimumReleaseAge` policy may block a freshly published version with `ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION`. Add the version to `minimumReleaseAgeExclude` in `~/.dsh/profiles/<profile>/pnpm-workspace.yaml`:
|
|
55
|
+
|
|
56
|
+
```yaml
|
|
57
|
+
minimumReleaseAgeExclude:
|
|
58
|
+
- dsh-manage-session@1.0.0
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 2. Restart the host
|
|
62
|
+
|
|
63
|
+
**A DSH restart is required after installing or upgrading.** Refreshing the browser page is not enough: the host half registers the `/manage-session/api` routes and the settings namespace at startup, and the host must reload the archive source before it reflects a prune.
|
|
64
|
+
|
|
65
|
+
## 3. Upgrade
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
dsh plugin --profile <profile> update dsh-manage-session -w
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Restart DSH afterwards.
|
|
72
|
+
|
|
73
|
+
## 4. Local-path / `link:` registration (alternative)
|
|
74
|
+
|
|
75
|
+
For development or offline installs, register the plugin from a local checkout:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# ~/.dsh/profiles/<profile>/package.json dependencies:
|
|
79
|
+
# "dsh-manage-session": "link:<absolute path to dsh-manage-session>"
|
|
80
|
+
# ~/.dsh/profiles/<profile>/cordis.patch.yml:
|
|
81
|
+
# - insert:
|
|
82
|
+
# - id: dsh-manage-session
|
|
83
|
+
# name: dsh-manage-session
|
|
84
|
+
cd ~/.dsh/profiles/<profile> && pnpm install && dsh web
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Or use the official CLI with a local path (no network needed):
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
dsh plugin --profile <profile> add /absolute/path/to/dsh-manage-session -w
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Building from a source checkout uses these scripts:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
pnpm install
|
|
97
|
+
pnpm typecheck # tsc -b --pretty false
|
|
98
|
+
pnpm test # vitest run
|
|
99
|
+
pnpm build # tsc -b && tsdown → lib/index.js + lib/index.d.ts + lib/client.js
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
`lib/` is not committed, so a source checkout must be built before it can be registered by path. Publishing builds it automatically through the `prepublishOnly` hook.
|
|
103
|
+
|
|
104
|
+
## 5. Verify installation
|
|
105
|
+
|
|
106
|
+
Check the dependency and the installed version:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
grep -n "dsh-manage-session" \
|
|
110
|
+
"${DSH_HOME:-$HOME/.dsh}/profiles/<profile>/package.json"
|
|
111
|
+
node -p "require('${DSH_HOME:-$HOME/.dsh}/profiles/<profile>/node_modules/dsh-manage-session/package.json').version"
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Check the official composition:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
dsh --profile <profile> --dump-default-config
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
It must contain:
|
|
121
|
+
|
|
122
|
+
```yaml
|
|
123
|
+
- id: dsh-manage-session
|
|
124
|
+
name: dsh-manage-session
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## 6. Verify the plugin
|
|
128
|
+
|
|
129
|
+
After the restart, the sidebar entry `dsh-manage-session` is available and the settings section uses the `manage-session` namespace. Confirm:
|
|
130
|
+
|
|
131
|
+
1. Both tabs render — **Retirement Home** and **Checkup** — while both feature gates are on.
|
|
132
|
+
2. Turning `historyFiles` off removes the Retirement Home tab and makes every `session-history-*` call return an explicit disabled error.
|
|
133
|
+
3. Turning `healthCheck` off removes the Checkup tab and makes every `session-health-*` call return an explicit disabled error.
|
|
134
|
+
4. An unrecognized method on `/manage-session/api` returns an explicit error rather than succeeding silently.
|
|
135
|
+
|
|
136
|
+
Closed domains return `{ ok: false, error: '子域已关闭(…=false):<method> 未注册' }` — the plugin does not leave empty shells behind.
|
|
137
|
+
|
|
138
|
+
## 7. Troubleshooting
|
|
139
|
+
|
|
140
|
+
| Symptom | Action |
|
|
141
|
+
| --- | --- |
|
|
142
|
+
| `dsh` is not found | Install or enable the official DSH CLI. |
|
|
143
|
+
| `ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION` | Add the version to `minimumReleaseAgeExclude` in the profile's `pnpm-workspace.yaml`. |
|
|
144
|
+
| Tabs or routes missing after install | Restart the host process — a page refresh does not re-register routes. |
|
|
145
|
+
| Changes to the archive set are not visible | Restart the host; the archive source is read at startup. |
|
|
146
|
+
| `session-history-*` returns a disabled error | The `historyFiles` gate is off. Re-enable it in the plugin settings. |
|
|
147
|
+
| `session-health-*` returns a disabled error | The `healthCheck` gate is off. Re-enable it in the plugin settings. |
|
|
148
|
+
| Stale client bundle after an upgrade | Hard-refresh the browser (Ctrl+Shift+R). |
|
|
149
|
+
|
|
150
|
+
## 8. Remove
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
dsh plugin --profile <profile> remove dsh-manage-session
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Restart DSH afterwards.
|
|
157
|
+
|
|
158
|
+
## Removal does not undo repairs
|
|
159
|
+
|
|
160
|
+
The plugin never rewrites session logs, history data, or silently drops fields. The only irreversible-looking action it takes — quarantining a damaged projection-cache record — copies a backup first, and the quarantine directory is left on disk for you to restore from. Removing the plugin therefore leaves any quarantine you asked for in place; restore it manually if you want the state back.
|
|
161
|
+
|
|
162
|
+
## License
|
|
163
|
+
|
|
164
|
+
MIT
|