dsh-desktop-kit 2.1.0 → 2.1.1

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/README.md CHANGED
@@ -4,9 +4,9 @@
4
4
 
5
5
  Набор из **7 плагинов и 25 навыков** для DeepSeek Harness 0.2.x: русский интерфейс, автопилот навыков, токен-лаборатория, студия навыков, память проектов, перенос чатов и резервные копии профиля.
6
6
 
7
- ![DSH Desktop Kit 2.1](https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.0/docs/images/hero.png)
7
+ ![DSH Desktop Kit 2.1](https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.1/docs/images/hero.png)
8
8
 
9
- **v2.1.0** · MIT · проверено на DSH `0.2.1-rc.5` (Windows 11) · без внешних зависимостей и телеметрии
9
+ **v2.1.1** · MIT · проверено на DSH `0.2.1-rc.5` (Windows 11) · без внешних зависимостей и телеметрии
10
10
 
11
11
  ---
12
12
 
@@ -57,19 +57,19 @@
57
57
 
58
58
  ### Skills Studio: каталог, стоимость и редактор
59
59
 
60
- ![Каталог навыков](https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.0/plugins/dsh-gkb-ru-ui/screenshots/02-skills-1440-light.png)
60
+ ![Каталог навыков](https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.1/plugins/dsh-gkb-ru-ui/screenshots/02-skills-1440-light.png)
61
61
 
62
- ![Редактор навыка](https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.0/plugins/dsh-gkb-ru-ui/screenshots/03-skills-editor-1440-light.png)
62
+ ![Редактор навыка](https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.1/plugins/dsh-gkb-ru-ui/screenshots/03-skills-editor-1440-light.png)
63
63
 
64
64
  ### Token Lab: куда уходит контекст
65
65
 
66
- ![Токен-лаборатория](https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.0/plugins/dsh-token-lab/screenshots/01-token-lab-1440-light.png)
66
+ ![Токен-лаборатория](https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.1/plugins/dsh-token-lab/screenshots/01-token-lab-1440-light.png)
67
67
 
68
68
  ### Тёмная тема и мобильный
69
69
 
70
- ![Тёмная тема](https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.0/plugins/dsh-gkb-ru-ui/screenshots/04-skills-1440-dark.png)
70
+ ![Тёмная тема](https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.1/plugins/dsh-gkb-ru-ui/screenshots/04-skills-1440-dark.png)
71
71
 
72
- <img src="https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.0/plugins/dsh-gkb-ru-ui/screenshots/05-skills-390-light.png" alt="Каталог навыков на 390 px" width="390">
72
+ <img src="https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.1/plugins/dsh-gkb-ru-ui/screenshots/05-skills-390-light.png" alt="Каталог навыков на 390 px" width="390">
73
73
 
74
74
  ## Окно-напоминание: пиковый тариф
75
75
 
@@ -79,11 +79,11 @@ DeepSeek включает двойной тариф в пиковые часы (
79
79
  - **в окне** — красная карточка: причина, границы окна в местном времени и UTC, живой отсчёт до конца и рекомендация, когда вернуться;
80
80
  - **после окна** — карточка исчезает; состояние всегда доступно через `window.__DSH_PEAK_GUARD__.state()`.
81
81
 
82
- ![Окно-напоминание: светлая тема](https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.0/plugins/dsh-peak-guard/screenshots/03-peak-card-1440-light.png)
82
+ ![Окно-напоминание: светлая тема](https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.1/plugins/dsh-peak-guard/screenshots/03-peak-card-1440-light.png)
83
83
 
84
- ![Окно-напоминание: тёмная тема](https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.0/plugins/dsh-peak-guard/screenshots/04-peak-card-1440-dark.png)
84
+ ![Окно-напоминание: тёмная тема](https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.1/plugins/dsh-peak-guard/screenshots/04-peak-card-1440-dark.png)
85
85
 
86
- <img src="https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.0/plugins/dsh-peak-guard/screenshots/05-peak-card-390-light.png" alt="Окно-напоминание на 390 px" width="390">
86
+ <img src="https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.1/plugins/dsh-peak-guard/screenshots/05-peak-card-390-light.png" alt="Окно-напоминание на 390 px" width="390">
87
87
 
88
88
  Подробности и настройки — [plugins/dsh-peak-guard/README.md](plugins/dsh-peak-guard/README.md).
89
89
 
package/docs/INSTALL.md CHANGED
@@ -11,7 +11,7 @@
11
11
  В DSH: **Плагины → Add plugin** → вставьте:
12
12
 
13
13
  ```
14
- dsh-desktop-kit@2.1.0
14
+ dsh-desktop-kit@2.1.1
15
15
  ```
16
16
 
17
17
  Либо локально: `npm i dsh-desktop-kit@2.0.0` — но для GUI всё равно нужен Add plugin/bundle.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-desktop-kit",
3
- "version": "2.1.0",
3
+ "version": "2.1.1",
4
4
  "description": "DeepSeek Harness desktop kit 2.1: self-applying skills, live token lab, Skills Studio, self-scanning project memory, Russian UI, peak guard, chat move and profile transfer.",
5
5
  "keywords": [
6
6
  "deepseek-harness",
@@ -476,6 +476,14 @@ function scanNow(registry, project, reason = "auto") {
476
476
  const target = path.join(dossierDir(record), SECTION_FILES[file]);
477
477
  writeText(target, mergeAutoBlock(readText(target), block));
478
478
  }
479
+ const stack = (facts.stack?.labels ?? []).join(" · ");
480
+ if (stack.length > 0) {
481
+ const projectFile = path.join(dossierDir(record), "PROJECT.md");
482
+ const text = readText(projectFile);
483
+ if (/- Стек: \(не определён\)/u.test(text)) {
484
+ writeText(projectFile, text.replace(/- Стек: \(не определён\)/u, `- Стек: ${stack}`));
485
+ }
486
+ }
479
487
  record.lastScanAt = facts.scannedAt;
480
488
  record.lastScanHead = facts.git?.head ?? null;
481
489
  record.scanVersion = facts.version;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-project-memory",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "private": true,
5
5
  "description": "Local per-project long-term memory for DSH: auto-detection, bounded local recon, auto-injected digest with recall, project_memory tool, automatic session journal.",
6
6
  "type": "module",
@@ -266,6 +266,14 @@ function detectStack({ packageInfo, composer, manifests, root, files }) {
266
266
  const databases = [];
267
267
  const add = (list, value) => { if (value && !list.includes(value)) list.push(value); };
268
268
 
269
+ if (packageInfo) add(labels, "Node.js");
270
+ if (manifests.composer) add(labels, "PHP");
271
+ if (manifests.gemfile) add(labels, "Ruby");
272
+ if (manifests.go) add(labels, "Go");
273
+ if (manifests.cargo) add(labels, "Rust");
274
+ if (manifests.dotnet) add(labels, ".NET");
275
+ if (manifests.pyproject || manifests.requirements) add(labels, "Python");
276
+
269
277
  if (deps.has("laravel/framework") || exists(path.join(root, "artisan"))) { add(frameworks, "Laravel"); add(labels, "PHP · Laravel"); }
270
278
  else if (deps.has("symfony/framework-bundle")) { add(frameworks, "Symfony"); add(labels, "PHP · Symfony"); }
271
279
  else if (manifests.composer) { add(frameworks, "PHP"); add(labels, "PHP"); }