# LaunchAgent: SOCKS-туннель для Telegram при входе в систему

Поднимает `ssh -D 1081 ahau@149.154.64.19` при логине и перезапускает при обрыве.

- **Порт:** 1081 (отдельно от Cursor 10809, конфликтов нет)
- **Сервер:** 149.154.64.19 (ru.hunab.app), пользователь ahau

## Установка (один раз — дальше работает при каждом входе)

```bash
# из корня репо local_machine
./connectivity/launchd/install.sh
```

Скрипт копирует plist в `~/Library/LaunchAgents/` и выполняет `launchctl load`. После этого туннель будет автоматически подниматься при каждом старте/входе в систему.

Проверка: туннель уже должен быть поднят (RunAtLoad), порт слушает:

```bash
lsof -i :1081
# или
./connectivity/scripts/telegram-socks-tunnel.sh status
```

## Удаление

```bash
./connectivity/launchd/uninstall.sh
```

## Поведение

- **RunAtLoad** — запуск при входе в систему
- **KeepAlive** — при обрыве SSH launchd перезапускает туннель
- **ThrottleInterval 30** — не чаще одного перезапуска в 30 секунд при постоянных падениях
- Лог: `/tmp/telegram-socks-tunnel.log` (при желании замените путь в plist после копирования)

## Требования

- SSH-ключ для `ahau@149.154.64.19` должен быть доступен при логине (в клюchain или без пароля), иначе туннель не поднимется. Проверка вручную: `ssh -D 1081 -N ahau@149.154.64.19`.
- Если используете алиас из `~/.ssh/config` (например `hsites-ahau`), в plist можно заменить `ahau@149.154.64.19` на `hsites-ahau`.

## Конфликты портов

- **10809** — Cursor SOCKS (скрипт `docs/cursor/scripts/cursor-socks-tunnel.sh`), не пересекается с 1081.
- **1081** — если у вас уже слушает Shadowsocks или другой прокси, смените порт в plist (и в Telegram/приложениях) или отключите этот LaunchAgent.
