tg-secretary (@tgsecretary_robot)

Заброшенный на вид, но живой проект — обнаружен 2026-07-24 не задокументированным в vault (пробел с момента создания, не сознательное решение). Код: /home/claude/tg-secretary/, репо есть git-история (первый коммит 2026-06-05, последний 2026-07-16). Контейнер tg-secretary работает непрерывно (uptime 10+ дней на момент находки), домен secretary.08317.ru через Traefik (docker-compose.yml, сеть proxy, cloudflare certresolver).

Что делает

  • Подключён через Telegram Business API (business_connection_id в схеме БД и в webhook.ts/telegram.ts) — это не отдельный бот-аккаунт, а business-connection на личный Telegram-аккаунт Сергея. Читает входящие сообщения личной переписки и сохраняет их в Postgres (messages).
  • Напоминания (reminders, node-cron)
  • Утренний брифинг (src/lib/morning.ts)
  • Полнотекстовый поиск по истории (src/lib/search.ts)
  • Транскрипция голоса (src/lib/transcribe.ts, Deepgram опционально)
  • Диалоговая память (conversations таблица)

Стек

Node.js + TypeScript (ts-node в проде, не собран в dist/), Postgres (init.sql: messages/reminders/pending_actions/conversations), Express + node-cron, Docker (node:20-alpine).

Важно: функция называется askClaude (src/lib/claude.ts), но реально дёргает Groq API (llama-3.3-70b-versatile) через groqChat() — никакого настоящего Anthropic Claude там нет, название вводит в заблуждение.

Конфиг (.env)

TELEGRAM_BOT_TOKEN, TELEGRAM_MY_CHAT_ID, GROQ_API_KEY, DATABASE_URL, PORT=3100, OWNER_NAME, CITY, OWNER_INFO. Опционально DEEPGRAM_API_KEY, CRON_SECRET.

Открытые вопросы (не выяснено на момент записи)

  • Актуальна ли ещё бизнес-коннекция, или это осталось от эксперимента и просто никто не отключил
  • Пересекается функционально с d-brain/agent-second-brain (напоминания, брифинг, память переписки) — не решено, объединять или оставить отдельно
  • Нет systemd-юнита — держится только на docker-compose (restart: unless-stopped), не входит ни в один из известных health-check/watchdog контуров (services)