# Установка mac-sync

## Требования
- Python 3.11+ установлен (`brew install python@3.11` или pyenv)
- Создан и доступен по SSH приватный GitHub-репо `tasks-bot-data`
- Локально склонирован в `~/tasks-bot-data`
- В `~/tasks-bot-data` есть хотя бы пустой `tasks.json` (`echo "[]" > tasks.json && git add . && git commit -m init && git push`)

## Установка

```bash
# 1. Создать venv
python3.11 -m venv ~/.venvs/tasks-bot
source ~/.venvs/tasks-bot/bin/activate

# 2. Поставить пакет в venv
cd /Users/nataliadudina/Desktop/ObsidianVault/projects/vibe-coding/tasks-bot
pip install -e .

# 3. Проверить, что бинарь в PATH
which tasks-mac-sync
# Должно показать: /Users/nataliadudina/.venvs/tasks-bot/bin/tasks-mac-sync

# 4. Запустить вручную один раз
TASKS_BOT_REPO_PATH=$HOME/tasks-bot-data \
TASKS_BOT_VAULT_PATH=/Users/nataliadudina/Desktop/ObsidianVault \
TASKS_BOT_STATE_PATH=$HOME/.tasks-bot-sync/state.json \
tasks-mac-sync

# 5. Проверить лог
cat ~/.tasks-bot-sync/sync.log
```

## Установка launchd-сервиса

```bash
# Скопировать plist в LaunchAgents
cp deploy/ru.dudina.tasks-bot.mac-sync.plist ~/Library/LaunchAgents/

# Загрузить в launchd
launchctl load -w ~/Library/LaunchAgents/ru.dudina.tasks-bot.mac-sync.plist

# Убедиться, что сервис стартовал
launchctl list | grep tasks-bot
# должно показать строку с pid и кодом 0

# Через 5 минут проверить, что лог обновляется
tail -f ~/.tasks-bot-sync/sync.log
```

## Управление

```bash
# Остановить
launchctl unload ~/Library/LaunchAgents/ru.dudina.tasks-bot.mac-sync.plist

# Снова запустить
launchctl load -w ~/Library/LaunchAgents/ru.dudina.tasks-bot.mac-sync.plist

# Запустить прямо сейчас, не дожидаясь интервала
launchctl start ru.dudina.tasks-bot.mac-sync
```

## Если что-то сломалось

- `~/.tasks-bot-sync/sync.log` — основной лог приложения
- `~/.tasks-bot-sync/launchd.err.log` — stderr launchd (тут ошибки старта)
- `~/.tasks-bot-sync/launchd.out.log` — stdout launchd
- Удалить state и начать с чистого листа:
  ```bash
  rm ~/.tasks-bot-sync/state.json
  launchctl start ru.dudina.tasks-bot.mac-sync
  ```
