dsh-desktop-kit 2.1.3 → 2.1.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/README.md +13 -11
- package/docs/COMPATIBILITY.md +7 -1
- package/docs/INSTALL.md +1 -1
- package/docs/TEST-0.2.2.md +47 -0
- package/docs/images/022-peak-guard.png +0 -0
- package/docs/images/022-skills-studio.png +0 -0
- package/docs/images/022-token-lab.png +0 -0
- package/docs/images/022-transfer.png +0 -0
- package/package.json +1 -1
- package/plugins/dsh-skill-autopilot/index.js +21 -4
- package/plugins/dsh-skill-autopilot/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,14 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
Набор из **7 плагинов и 25 навыков** для DeepSeek Harness 0.2.x: русский интерфейс, автопилот навыков, токен-лаборатория, студия навыков, память проектов, перенос чатов и резервные копии профиля.
|
|
6
6
|
|
|
7
|
-

|
|
8
8
|
|
|
9
|
-
**v2.1.
|
|
9
|
+
**v2.1.4** · MIT · проверено на DSH `0.2.1-rc.5` (Windows 11) · без внешних зависимостей и телеметрии
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
## Что нового
|
|
14
14
|
|
|
15
|
+
- **Проверено на DSH `0.2.2-rc.1` (win-x64).** Установка из репозитория, все 7 плагинов, 25 навыков, Skills Studio, Token Lab, Peak Guard, перенос чатов/профиля и память проектов. Найден и исправлен сдвиг формата `user/message` в 0.2.2, из-за которого автопилот молчал. Отчёт: [docs/TEST-0.2.2.md](docs/TEST-0.2.2.md).
|
|
15
16
|
- **Русский интерфейс 2.1.3.** Исправлены машинные переводы: «Этот повтор не удался» → «Не удалось выполнить запрос», ошибка потока DeepSeek, «Кэш попаданий», очередь сообщений и ещё 18 формулировок — в словаре и на живом экране.
|
|
16
17
|
- **Память проектов 2.1.** Проект распознаётся сам по рабочей папке, локальный автоскан (без LLM и сети) сразу даёт стек, команды, точки входа и тесты; дайджест сам подмешивает фрагменты досье, похожие на текущий запрос. Секреты и PII вычищаются до записи, файлы приватные (`0700/0600`). Новые действия `brief`/`scan` и команда `/memory`.
|
|
17
18
|
- **Навыки стали в 3–5 раз дешевле.** Ядро `content-writing` — 2,1k токенов вместо 11k, `seo` — 2,0k вместо 11k. Вся библиотека из 25 навыков — ≈37,6k вместо ≈60,6k, а грузятся только нужные ядра.
|
|
@@ -58,19 +59,19 @@
|
|
|
58
59
|
|
|
59
60
|
### Skills Studio: каталог, стоимость и редактор
|
|
60
61
|
|
|
61
|
-

|
|
62
63
|
|
|
63
|
-

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

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

|
|
72
73
|
|
|
73
|
-
<img src="https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.
|
|
74
|
+
<img src="https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.4/plugins/dsh-gkb-ru-ui/screenshots/05-skills-390-light.png" alt="Каталог навыков на 390 px" width="390">
|
|
74
75
|
|
|
75
76
|
## Окно-напоминание: пиковый тариф
|
|
76
77
|
|
|
@@ -80,11 +81,11 @@ DeepSeek включает двойной тариф в пиковые часы (
|
|
|
80
81
|
- **в окне** — красная карточка: причина, границы окна в местном времени и UTC, живой отсчёт до конца и рекомендация, когда вернуться;
|
|
81
82
|
- **после окна** — карточка исчезает; состояние всегда доступно через `window.__DSH_PEAK_GUARD__.state()`.
|
|
82
83
|
|
|
83
|
-

|
|
84
85
|
|
|
85
|
-

|
|
86
87
|
|
|
87
|
-
<img src="https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.
|
|
88
|
+
<img src="https://cdn.jsdelivr.net/npm/dsh-desktop-kit@2.1.4/plugins/dsh-peak-guard/screenshots/05-peak-card-390-light.png" alt="Окно-напоминание на 390 px" width="390">
|
|
88
89
|
|
|
89
90
|
Подробности и настройки — [plugins/dsh-peak-guard/README.md](plugins/dsh-peak-guard/README.md).
|
|
90
91
|
|
|
@@ -158,7 +159,7 @@ powershell -ExecutionPolicy Bypass -File "$env:USERPROFILE\dsh-desktop-kit\insta
|
|
|
158
159
|
## Совместимость
|
|
159
160
|
|
|
160
161
|
- DSH `0.2.1-rc.5` — проверено вживую: хост-часть, клиентские плагины, Skills Studio, Token Lab, автопилот.
|
|
161
|
-
- DSH `0.2.2` —
|
|
162
|
+
- DSH `0.2.2-rc.1` (win-x64) — проверено 2026-11-06: установка из репозитория, 4 плитки, 25 навыков, редактор, Token Lab, Peak Guard, Session Move, Profile Transfer, память проектов и автопилот. Подробности и ограничения — [docs/TEST-0.2.2.md](docs/TEST-0.2.2.md).
|
|
162
163
|
- Пакет **не тянет** версии `@deepseek-ai/*`: обновление клиента не ломает плагины.
|
|
163
164
|
|
|
164
165
|
Подробности — [docs/COMPATIBILITY.md](docs/COMPATIBILITY.md).
|
|
@@ -171,6 +172,7 @@ powershell -ExecutionPolicy Bypass -File "$env:USERPROFILE\dsh-desktop-kit\insta
|
|
|
171
172
|
|
|
172
173
|
## Документация
|
|
173
174
|
|
|
175
|
+
- [docs/TEST-0.2.2.md](docs/TEST-0.2.2.md) — отчёт тестирования на DSH 0.2.2-rc.1.
|
|
174
176
|
- [docs/TOKENS.md](docs/TOKENS.md) — экономика токенов, бюджеты, как измерять.
|
|
175
177
|
- [docs/ROADMAP.md](docs/ROADMAP.md) — развитие плагинов и навыков.
|
|
176
178
|
- [docs/INSTALL.md](docs/INSTALL.md) — все способы установки и проверка.
|
package/docs/COMPATIBILITY.md
CHANGED
|
@@ -5,9 +5,15 @@
|
|
|
5
5
|
| DSH | Состояние | Что проверено |
|
|
6
6
|
|---|---|---|
|
|
7
7
|
| `0.2.1-rc.5` | работает | **2.1 проверена вживую**: память проектов (авто-распознавание, автоскан, `brief`/`scan`, `/memory`, redaction), Skills Studio, Token Lab, автопилот, 25 навыков |
|
|
8
|
-
| `0.2.2-rc.1` | работает (1.
|
|
8
|
+
| `0.2.2-rc.1` | работает (2.1.4+) | **проверено 2026-11-06**: установка из репозитория, 4 плитки, 25 навыков, редактор с бэкапом, Token Lab (27 217 токенов / 24 узла), Peak Guard (карточка + бейдж), Session Move, Profile Transfer, память проектов (`/memory`, `scan.json`, дайджест), автопилот после фикса формата `user/message`. Отчёт: [TEST-0.2.2.md](TEST-0.2.2.md) |
|
|
9
9
|
| новее `0.2.2` | не проверено | API плагинов в 0.2.x ещё меняется; см. «Если сломалось» |
|
|
10
10
|
|
|
11
|
+
### 0.2.2-rc.1: что отличается
|
|
12
|
+
|
|
13
|
+
- `user/message` storing: Message лежит в `event.data`, а не в `event.data.message`; автопилот теперь читает оба формата и дополнительно смотрит `session.snapshotEvents()`.
|
|
14
|
+
- Путь рабочей области по умолчанию на русской Windows создаётся с битой кодировкой (`Документы`) и не существует — это дефект 0.2.2, не пакета; для теста путь заменён.
|
|
15
|
+
- Headless-профиль по умолчанию использует `deepseek-official` API-key route; без `DEEPSEEK_API_KEY` ход падает `MISSING_CREDENTIAL`. Web-профиль с `deepseek-account` работает.
|
|
16
|
+
|
|
11
17
|
## Что использует 2.x
|
|
12
18
|
|
|
13
19
|
| Возможность DSH | Где используется | Проверено |
|
package/docs/INSTALL.md
CHANGED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Тест на DeepSeek Harness 0.2.2-rc.1 (win-x64)
|
|
2
|
+
|
|
3
|
+
Дата: **2026-11-06** · пакет: **dsh-desktop-kit 2.1.3** (исправление автопилота вошло в 2.1.4) · ОС: Windows 11.
|
|
4
|
+
|
|
5
|
+
## Стенд
|
|
6
|
+
|
|
7
|
+
- Установщик: `deepseek-harness-0.2.2-rc.1-win-x64.exe` (293 425 336 байт), распакован в `C:\Users\bulav\dsh-022-runtime` (7-Zip, без установки поверх рабочего DSH).
|
|
8
|
+
- Версия рантайма: `0.2.2-rc.1`, Node `24.21.0`, pnpm `11.28.5`.
|
|
9
|
+
- Изолированный `DSH_HOME`: `C:\Users\bulav\dsh-022-home` — рабочий профиль пользователя не тронут.
|
|
10
|
+
- Профиль `probe` создан из шаблона `web`:
|
|
11
|
+
```powershell
|
|
12
|
+
$env:DSH_HOME = 'C:\Users\bulav\dsh-022-home'
|
|
13
|
+
dsh --profile probe --from-default-profile web --dump-config
|
|
14
|
+
dsh plugin --profile probe add C:\Users\bulav\OneDrive\Desktop\Projects\dsh
|
|
15
|
+
```
|
|
16
|
+
Установка из репозитория прошла как `link:...\Projects\dsh`; `--dump-config` показывает ряд `dsh-desktop-kit`.
|
|
17
|
+
- Для UI-проверок скопирован локальный `.credentials.yaml`, модель переключена на `provider: deepseek-account` (иначе web-профиль 0.2.2 по умолчанию идёт в `deepseek-official` без API-ключа).
|
|
18
|
+
|
|
19
|
+
## Результаты
|
|
20
|
+
|
|
21
|
+
| Плагин / сценарий | Результат | Доказательство |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| Хост-часть, 7 плагинов | монтируется, ошибок в stderr нет | профиль, 25 навыков в `DSH_HOME/skills`, `_access.log` памяти |
|
|
24
|
+
| Сайдбар: 4 плитки | «Навыки / Токены / Баланс / Расход» | скриншот `docs/images/022-skills-studio.png` (фон) |
|
|
25
|
+
| `dsh-gkb-ru-ui` | 25 карточек, категории, поиск, редактор | 25 `.gkb-sk-card`; сохранение навыка + бэкап `.dsh-kit-backups` |
|
|
26
|
+
| Skills Studio save | `Сохранили`, файл обновлён, резервная копия создана | `code-review-checklist-…md` в бэкапах |
|
|
27
|
+
| `dsh-token-lab` | панель, живой замер 27 217 токенов / 24 узла / 3% | `docs/images/022-token-lab.png` |
|
|
28
|
+
| `dsh-peak-guard` | карточка «Пиковый тариф ×2» + бейдж в шапке (после активной сессии) | `docs/images/022-peak-guard.png` |
|
|
29
|
+
| `dsh-session-move` | пункт «Переместить в рабочую область…» в меню сессии | меню сессии, `window.__DSH_SESSION_MOVE__` |
|
|
30
|
+
| `dsh-profile-transfer` | раздел «Перенос и резервные копии», экспорт 7/11 | `docs/images/022-transfer.png` |
|
|
31
|
+
| `dsh-project-memory` | авто-регистрация проекта, `scan.json`, досье, `/memory status` | `projects-memory/dsh`, `command/done` в сессии |
|
|
32
|
+
| Дайджест памяти в промпте | `<project-memory slug="dsh">` | session log, user/runtime context |
|
|
33
|
+
| `dsh-skill-autopilot` | `<skill-autopilot>` с wow-design/ui-design-system/seo | session log после фикса 2.1.4 |
|
|
34
|
+
| Переводы RU | «Этот повтор не удался» → «Не удалось выполнить запрос», поток/кэш/очередь | DOM-probe на 0.2.2 |
|
|
35
|
+
| Консоль | только `[deepseek-account] account read failed {field: profile}` | как и на 0.2.1, к плагинам не относится |
|
|
36
|
+
|
|
37
|
+
## Найденные отличия 0.2.2
|
|
38
|
+
|
|
39
|
+
1. **Автопилот не видел сообщение.** В 0.2.2 `user/message` хранит Message в `event.data`, а не в `event.data.message`; старый код возвращал пустой текст, и подсказка не появлялась. Исправлено в 2.1.4: поддержаны оба формата + fallback на `session.snapshotEvents()`. После фикса `<skill-autopilot>` присутствует в системном контексте.
|
|
40
|
+
2. **Путь рабочей области по умолчанию.** На русской Windows 0.2.2 создаёт `C:\Users\<user>\OneDrive\Документы\deepseek-harness\default-workspace` — битая кодировка «Документы», каталог не существует. Это поведение самого 0.2.2, не пакета; для теста путь рабочей области заменён на репозиторий.
|
|
41
|
+
3. **Headless-профиль** по умолчанию использует API-key route `deepseek-official`; без `DEEPSEEK_API_KEY` ход падает `MISSING_CREDENTIAL`. Web-профиль с `deepseek-account` работает; это ограничение окружения, не плагинов.
|
|
42
|
+
|
|
43
|
+
## Ограничения теста
|
|
44
|
+
|
|
45
|
+
- Проверялся профиль `web` и UI через Playwright; отдельный `desktop`-шелл 0.2.2 не запускался (он использует тот же рантайм).
|
|
46
|
+
- Модель работала через аккаунт; часть запросов в тесте была короткой, чтобы не тратить токены.
|
|
47
|
+
- Скриншоты 0.2.2 лежат в `docs/images/022-*.png`; полный набор — в `qa/022/` (локально, вне npm).
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-desktop-kit",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.4",
|
|
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",
|
|
@@ -215,18 +215,19 @@ function latestUserMessage(session) {
|
|
|
215
215
|
const cached = lastMessageCache.get(id);
|
|
216
216
|
let lastSeq = 0;
|
|
217
217
|
try {
|
|
218
|
-
lastSeq = Number(session.seq) || 0;
|
|
218
|
+
lastSeq = Number(session.seq) || Number(session.logRevision) || 0;
|
|
219
219
|
} catch {
|
|
220
220
|
lastSeq = 0;
|
|
221
221
|
}
|
|
222
|
-
if (cached && cached.seq === lastSeq) return cached.value;
|
|
222
|
+
if (lastSeq > 0 && cached && cached.seq === lastSeq) return cached.value;
|
|
223
223
|
let value = null;
|
|
224
224
|
try {
|
|
225
225
|
const nodes = session.surface?.nodes ?? [];
|
|
226
226
|
for (let index = nodes.length - 1; index >= 0; index -= 1) {
|
|
227
227
|
const event = session.eventAt(nodes[index]);
|
|
228
228
|
if (!event || event.type !== "user/message") continue;
|
|
229
|
-
|
|
229
|
+
/* DSH 0.2.1 keeps the Message under data.message; 0.2.2 stores it as data. */
|
|
230
|
+
const text = messageText(event.data?.message ?? event.data);
|
|
230
231
|
if (text.length > 0) {
|
|
231
232
|
value = { seq: Number(event.seq), text };
|
|
232
233
|
break;
|
|
@@ -235,7 +236,23 @@ function latestUserMessage(session) {
|
|
|
235
236
|
} catch {
|
|
236
237
|
value = null;
|
|
237
238
|
}
|
|
238
|
-
|
|
239
|
+
if (!value) {
|
|
240
|
+
try {
|
|
241
|
+
const events = session.snapshotEvents?.() ?? [];
|
|
242
|
+
for (let index = events.length - 1; index >= 0; index -= 1) {
|
|
243
|
+
const event = events[index];
|
|
244
|
+
if (!event || event.type !== "user/message") continue;
|
|
245
|
+
const text = messageText(event.data?.message ?? event.data);
|
|
246
|
+
if (text.length > 0) {
|
|
247
|
+
value = { seq: Number(event.seq), text };
|
|
248
|
+
break;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
} catch {
|
|
252
|
+
value = null;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
if (lastSeq > 0) lastMessageCache.set(id, { seq: lastSeq, value });
|
|
239
256
|
return value;
|
|
240
257
|
}
|
|
241
258
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-skill-autopilot",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Skill autopilot for DSH: reads the current user message and injects a ~80-token routing hint naming the exact skills to load, so skills apply themselves without bloating the context.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|