@taskless-app/swarm 0.3.0 → 0.4.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.
package/README.md CHANGED
@@ -71,6 +71,52 @@ Taskless-аккаунт** и логиньте под ним. Один и тот
71
71
  делит один кап и один счётчик дронов (они реально соревнуются за слоты); разные
72
72
  аккаунты — полностью независимые капы, без единой правки конфига.
73
73
 
74
+ ## Несколько машин: закрепить прогон
75
+
76
+ Один аккаунт может держать демона на нескольких машинах (ноутбук + рабочая станция).
77
+ Очередь у них общая: свободный прогон берёт тот демон, у которого репозиторий прогона
78
+ есть локально. Когда работа обязана идти именно на конкретной машине — закрепите
79
+ прогон за ней:
80
+
81
+ ```bash
82
+ swarm hosts # какие машины есть: имя, пульс, id
83
+ swarm spawn PRJ-42 --host Hunt-gaming-laptop # закрепить прогон за машиной (имя или id)
84
+ ```
85
+
86
+ Закреплённый прогон возьмёт **только** демон этой машины — остальные его не видят.
87
+ Если машина не на связи, прогон её ждёт и на другую **не уезжает**: это осознанный
88
+ выбор оператора, а не сбой (в дашборде `/swarm` видно, какую машину он ждёт и что
89
+ она молчит). Снять закрепление — выбрать «Любая машина» в модалке прогона или
90
+ `swarm_run_upsert{runId, hostId:null}`.
91
+
92
+ Без `--host` всё работает как раньше: прогон свободен, а машина, которая его взяла и
93
+ потом замолчала на 15 минут, отпускает его обратно в очередь.
94
+
95
+ ## Логи с удалённой машины
96
+
97
+ Когда дрон спотыкается, нужен сырой лог — а он лежит файлом на машине демона
98
+ (`~/.taskless-swarm/run-logs/<id>/`). Просить владельца машины показать хвост больше
99
+ не нужно: **MCP-тулы отдают его сами**, независимо от того, где выполнялся прогон.
100
+
101
+ ```
102
+ swarm_run_log(runId, lines) # хвост лога прогона (stdout + stderr дрона)
103
+ swarm_daemon_log(hostId, lines) # хвост лога самого демона — когда дрон не стартовал вовсе
104
+ ```
105
+
106
+ Прод к демону за домашним роутером не стучится, поэтому запрос уезжает **командой в
107
+ ответе на пульс** — ответ приходит со следующим пульсом (~15с), тул ждёт его сам.
108
+ Отдаётся только ХВОСТ (потолок и по строкам, и по байтам) и только транзитом: в базе
109
+ трекера лог не оседает, строка обмена умирает на чтении. Чужие логи недоступны —
110
+ и запрос, и доставка скоупятся владельцем машины.
111
+
112
+ Лог самого демона демон не заводит (пишет в stdout) — заведите его перенаправлением
113
+ или укажите свой путь:
114
+
115
+ ```bash
116
+ swarm start --repo <путь> >> ~/.taskless-swarm/overmind.log 2>&1 # путь по умолчанию
117
+ SWARM_DAEMON_LOG=/var/log/overmind.log swarm start --repo <путь> # свой путь
118
+ ```
119
+
74
120
  ## Правообладатель и лицензия
75
121
 
76
122
  © 2026 Ilya Smurov. Проприетарное коммерческое ПО — см. [LICENSE](./LICENSE).