Серверы как вкладки. Агент на сервере переживает обрыв связи
Linux‑серверы открываются вкладками рядом с локальными. Агент на сервере живёт внутри tmux и не замечает, что VPN моргнул, ноутбук уснул или вы закрыли программу на ночь. Всё, что агенту нужно для работы в команде, программа доставляет на сервер сама.
Знакомая ситуация
Агент на сервере в сессии PuTTY решает задачу уже час. Связь обрывается на секунду, и процесс умирает вместе с контекстом. На каждый новый сервер нужно вручную поставить клиент шины, раздать токены, помнить, где какая версия, а потом ещё объяснить агенту, как с этим работать.
Здесь сервер подключается один раз: вы заполняете профиль, программа проверяет сервер, и дальше вкладка ведёт себя как локальная, только работа идёт на другой машине.
Как это устроено
Профиль SSH с проверкой сервера
Адрес, пользователь, пароль или файл ключа с passphrase. При сохранении программа проверяет сервер по шагам: подключение и ключ сервера, наличие tmux, терминал, папки, сохранение сессии, безопасная запись файлов, связь с CCT. Не прошло: вы видите, что именно и как исправить, а изменения не сохраняются до исправления.
Сессия в tmux
Режимы «Если доступен» и «Обязательно». Агент запускается внутри tmux‑сессии на сервере, вкладка только подключается к ней. Обрыв сети, сон компьютера и закрытие вкладки агента не останавливают; «Автоматически переподключаться» возвращает вкладку в сессию. При выходе из программы сессия отсоединяется, агент продолжает работать, если вы не включили его завершение.
Связь агента с CCT без вашего участия
Программа копирует cct для Linux на сервер по SFTP, выдаёт агенту токен и поднимает обратный туннель до шины. Агент на сервере пишет cct notify, читает задачи и документы точно так же, как локальный. .NET на сервере не нужен: cct для Linux самодостаточен.
Правильная версия на каждом сервере
При подключении, после каждой загрузки и раз в сутки программа проверяет, какой cct агент реально видит. Старую копию своего cct переименовывает, чужой не трогает и предупреждает плашкой во вкладке. Связь с CCT включается и выключается на открытой вкладке без перезапуска агента.
Ключ сервера под контролем
Ключ запоминается при первом подключении. Если при следующем подключении ключ другой, программа отказывает в подключении и объясняет, что делать. Подмену сервера вы не пропустите.
Защита памяти сервера
Агенты, запущенные программой под одним пользователем, вместе получают не больше 60 % памяти сервера. Если агент исчерпает память, остановится он, а не ваши сервисы, и причина будет видна в подсказке вкладки.
Несколько агентов на одном сервере
Отдельные профили, отдельные tmux‑сессии, одна учётная запись. Сообщения на сервер доходят за секунды после перезапуска агента.
Безопасно по умолчанию
Пароли и passphrase хранятся в зашифрованном виде под мастер‑паролем; сам файл ключа программа не копирует, только помнит путь. Профиль с выключенной связью не имеет доступа к шине совсем. API программы слушает только локальный адрес и доверенные туннели, например WireGuard.
Как это выглядит в работе
Server-1 ❯ cct whoami
I am: Server-1 scopes: bus.read, bus.write, tasks.read, tasks.write, tz.read, tz.write, docs.read, docs.write
Server-1 ❯ cct task next --mine
TASK-131 P1 Обновить сервис api до сборки 2.38 на тестовом сервере
Server-1 ❯ cct task status TASK-131 in_progress
… обрыв VPN на 40 секунд, вкладка переподключилась, агент этого не заметил …
Server-1 ❯ cct task status TASK-131 done --note-file report.md
OK
Server-1 ❯ cct notify --to Me --level done "api 2.38 на тестовом, журнал чистый"
Что это даёт администратору
- Единая точка. Локальные и удалённые машины в одном окне, с одной шиной и одной доской задач. Проект разрабатывается с компьютера разработчика, а выполняется там, где нужно.
- Обрыв связи не стоит часа работы. tmux держит агента, программа держит подключение.
- Ничего не раздаётся вручную. Клиент шины, токен, туннель, обновление версии: всё делает программа, и вы видите результат проверки.
- Серверу ничего не угрожает. Ключ сервера проверяется, память ограничена, доступ к шине выключается одним переключателем.
В сравнении с обычным терминалом
| Ситуация | SSH‑клиент | OfficeSentinel AI Terminal |
|---|---|---|
| Обрыв связи | Сессия и агент умирают | Агент в tmux продолжает работать, вкладка переподключается |
| Новый сервер | Ставите клиент, раздаёте токены, помните версии | Профиль, проверка сервера, всё остальное делает программа |
| Агент съел память | Падают сервисы сервера | Останавливается агент, сервисы живы |
| Подмена ключа сервера | Предупреждение, которое привыкли пропускать | Отказ в подключении, пока вы не разберётесь |