@taskless-app/swarm 0.4.1 → 0.4.3

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
@@ -28,12 +28,51 @@ npx @taskless-app/swarm start --repo <путь к репо> # поднят
28
28
  ```bash
29
29
  npm i -g @taskless-app/swarm
30
30
  swarm login --workspace <slug>
31
- swarm start --repo <путь к репо> # держит процесс живым — разбирает очередь, спавнит/будит дронов
31
+ swarm start --repo <путь к репо> # поднять рой: уходит в фон, терминал остаётся вам
32
32
  swarm --help # список остальных команд (spawn/ls/questions/answer/…)
33
33
  ```
34
34
 
35
+ **Демон открепляется от терминала.** `swarm start` не занимает окно: процесс уходит
36
+ в фон, а весь вывод пишется в `~/.taskless-swarm/overmind.log` — тот самый файл, из
37
+ которого агент читает хвост лога удалённо. Посмотреть: `swarm logs -f`. Нужен вывод
38
+ прямо в терминале (отладка, systemd, docker, где фоном занимается супервизор) —
39
+ `swarm start --foreground` (он же `-f`, `--attach`).
40
+
41
+ Команда не отчитывается о запуске раньше времени: она ждёт, пока демон реально
42
+ поднимется, и только тогда говорит «поднят». Не поднялся — покажет хвост лога с
43
+ настоящей причиной (занятый порт, отсутствующий токен) и завершится с ошибкой.
44
+
35
45
  Полный гайд по настройке и запуску роя — на [taskless.ru](https://taskless.ru).
36
46
 
47
+ ## Остановить, приостановить, отключить машину
48
+
49
+ Гасить демона по имени процесса (`pkill -f overmind`) не нужно — есть штатные команды:
50
+
51
+ ```bash
52
+ swarm status # жив ли демон, на паузе ли рой, сколько дронов в работе
53
+ swarm pause «причина» # не брать НОВУЮ работу; живые дроны доработают
54
+ swarm resume # снова брать работу
55
+ swarm stop # погасить демона на этой машине
56
+ swarm remove --yes # отключить машину от роя целиком
57
+ ```
58
+
59
+ **`swarm stop` по умолчанию не обрывает дронов.** Есть живые сессии — команда
60
+ покажет, кто работает, и не станет их убивать: незапушенная работа дрона умирает
61
+ вместе с ним. Дальше выбираете сами: `swarm stop --wait` (дождаться, новую работу
62
+ рой в это время не берёт) или `swarm stop --force` (погасить сейчас, оборвав их).
63
+
64
+ **Пауза переживает перезапуск.** Она лежит файлом `~/.taskless-swarm/pause.json`,
65
+ поэтому перезагрузка машины не возвращает рой к работе молча. Поставить её можно и
66
+ при лежащем демоне — тогда следующий `swarm start` поднимется уже на паузе. Пауза,
67
+ поставленная из интерфейса Taskless, снимается командой на машине и наоборот:
68
+ состояние одно, и оно же видно в парке машин («на паузе» — не то же самое, что
69
+ «молчит» или «нет работы»).
70
+
71
+ **`swarm remove` ≠ `swarm logout`.** `logout` забывает токены на этой машине
72
+ (перелогиниться); `remove` выводит машину из роя: гасит демона, убирает её из парка
73
+ машин (её незавершённые прогоны освобождаются и уедут на другие машины) и стирает
74
+ токены. Вернуть — `swarm login && swarm start`.
75
+
37
76
  ## Windows
38
77
 
39
78
  Рой работает на Windows, но **рекомендуемый способ — WSL2**: там он ведёт себя ровно
@@ -109,14 +148,19 @@ swarm_daemon_log(hostId, lines) # хвост лога самого демона
109
148
  трекера лог не оседает, строка обмена умирает на чтении. Чужие логи недоступны —
110
149
  и запрос, и доставка скоупятся владельцем машины.
111
150
 
112
- Лог самого демона демон не заводит (пишет в stdout) — заведите его перенаправлением
113
- или укажите свой путь:
151
+ Лог самого демона заводится сам: фоновый `swarm start` пишет в
152
+ `~/.taskless-swarm/overmind.log` и ротирует его при старте (прошлый — `.1`). Свой
153
+ путь — `SWARM_DAEMON_LOG`. Смотреть на месте:
114
154
 
115
155
  ```bash
116
- swarm start --repo <путь> >> ~/.taskless-swarm/overmind.log 2>&1 # путь по умолчанию
117
- SWARM_DAEMON_LOG=/var/log/overmind.log swarm start --repo <путь> # свой путь
156
+ swarm logs # хвост лога демона (по умолчанию 200 строк)
157
+ swarm logs -n 50 -f # следить за новыми строками
158
+ swarm log <runId> # это ДРУГОЕ: лог конкретного прогона
118
159
  ```
119
160
 
161
+ Запустили с `--foreground` — вывод идёт в терминал, и файла не будет: тогда за него
162
+ отвечает тот, кто перенаправил (systemd, docker, `tee`).
163
+
120
164
  ## Правообладатель и лицензия
121
165
 
122
166
  © 2026 Ilya Smurov. Проприетарное коммерческое ПО — см. [LICENSE](./LICENSE).