dsh-desktop-kit 2.1.0 → 2.1.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/README.md
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
Набор из **7 плагинов и 25 навыков** для DeepSeek Harness 0.2.x: русский интерфейс, автопилот навыков, токен-лаборатория, студия навыков, память проектов, перенос чатов и резервные копии профиля.
|
|
6
6
|
|
|
7
|
-

|
|
8
8
|
|
|
9
|
-
**v2.1.
|
|
9
|
+
**v2.1.2** · 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
|
-

|
|
61
61
|
|
|
62
|
-

|
|
63
63
|
|
|
64
64
|
### Token Lab: куда уходит контекст
|
|
65
65
|
|
|
66
|
-

|
|
67
67
|
|
|
68
68
|
### Тёмная тема и мобильный
|
|
69
69
|
|
|
70
|
-

|
|
71
71
|
|
|
72
|
-
<img src="https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.
|
|
72
|
+
<img src="https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.2/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
|
-

|
|
83
83
|
|
|
84
|
-

|
|
85
85
|
|
|
86
|
-
<img src="https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.
|
|
86
|
+
<img src="https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.2/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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-desktop-kit",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.2",
|
|
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;
|
|
@@ -743,7 +751,7 @@ function buildDigest(registry, project, sessionId, settings, state) {
|
|
|
743
751
|
}
|
|
744
752
|
const projectFile = readText(path.join(dossierDir(project), "PROJECT.md"));
|
|
745
753
|
const stackLine = projectFile.split(/\r?\n/u).find((line) => /Стек:/u.test(line));
|
|
746
|
-
if (stackLine && !/\(не определён\)/u.test(stackLine)) parts.push(truncate(stackLine.trim(), 220));
|
|
754
|
+
if (!facts && stackLine && !/\(не определён\)/u.test(stackLine)) parts.push(truncate(stackLine.trim(), 220));
|
|
747
755
|
parts.push(`Статус памяти: ${fresh.text}${fresh.git ? ` · git ${fresh.git.branch}@${fresh.git.head}` : ""}.`);
|
|
748
756
|
const invariants = bulletLines(readText(path.join(dossierDir(project), "INVARIANTS.md")), 5);
|
|
749
757
|
if (invariants.length > 0) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-project-memory",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
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"); }
|