@taskless-app/swarm 0.2.2 → 0.3.0

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.
Files changed (4) hide show
  1. package/README.md +37 -0
  2. package/dist/cli.js +1436 -241
  3. package/dist/overmind.js +3380 -501
  4. package/package.json +15 -16
package/README.md CHANGED
@@ -34,6 +34,43 @@ swarm --help # список остальных коман
34
34
 
35
35
  Полный гайд по настройке и запуску роя — на [taskless.ru](https://taskless.ru).
36
36
 
37
+ ## Windows
38
+
39
+ Рой работает на Windows, но **рекомендуемый способ — WSL2**: там он ведёт себя ровно
40
+ как на macOS/Linux. Нативная Windows проверена вживую 02–03.08.2026 (Windows 11 Pro),
41
+ рой поднимается и доводит задачи до конца, но у неё есть особенности:
42
+
43
+ - `ps` и `lsof` на Windows нет. Демон берёт снапшот процессов через
44
+ `Get-CimInstance Win32_Process` (нужен PowerShell в `PATH`) и гасит дерево процессов
45
+ через `taskkill /T /F` — групповых сигналов (`kill(-pid)`) Windows не умеет.
46
+ У `Win32_Process` нет рабочего каталога процесса, поэтому процессы worktree
47
+ опознаются по командной строке и по родству, а не по `cwd`, — детект чуть грубее.
48
+ - **Длинные пути.** Демон включает `core.longpaths=true` для рабочего репозитория сам.
49
+ Без него `git worktree remove` падает `Filename too long` на `node_modules`.
50
+ - **Бинарь `claude`.** `spawn` на Windows ищет исполняемый файл по `PATHEXT`, поэтому
51
+ bash-обёртка `~/bin/claude` без расширения ему не видна. Демон сам находит
52
+ `claude.exe` в `%APPDATA%\Claude\claude-code\<версия>` и в MSIX-копии под
53
+ `%LOCALAPPDATA%\Packages\Claude*`. Нестандартная установка — укажите путь явно:
54
+ `SWARM_CLAUDE_BIN=D:\path\to\claude.exe`.
55
+ - **Docker Desktop** вызовы `docker ps` может подвешивать, пока поднимается, — и вместе
56
+ с ними тик демона. Для тестов на фейк-базе Docker дронам не нужен вовсе.
57
+
58
+ ## Лимит дронов: машина + проект
59
+
60
+ `maxDrones` — двухуровневый: личный (`uiPrefs.swarm.maxDrones` в профиле — «Рой»
61
+ в настройках Taskless) — жёсткий потолок дронов **этой машины**, физическая
62
+ ёмкость железа; проектный (`swarmConfig.maxDrones`, `set_project_swarm`) — квота
63
+ **внутри** машинного капа, сколько из этих дронов одновременно может занять
64
+ один проект. Оба подхватываются без рестарта демона.
65
+
66
+ Демон = машина: кап и счётчик активных дронов считаются **по Taskless-аккаунту**,
67
+ которым демон залогинен (`swarm login`), а не по физическому железу напрямую.
68
+ Если поднимаете второй демон на выделенном сервере отдельного проекта и не
69
+ хотите, чтобы он делил кап с ноутбуком оператора — заводите ему **отдельный
70
+ Taskless-аккаунт** и логиньте под ним. Один и тот же аккаунт на двух машинах
71
+ делит один кап и один счётчик дронов (они реально соревнуются за слоты); разные
72
+ аккаунты — полностью независимые капы, без единой правки конфига.
73
+
37
74
  ## Правообладатель и лицензия
38
75
 
39
76
  © 2026 Ilya Smurov. Проприетарное коммерческое ПО — см. [LICENSE](./LICENSE).