# 2026-04-01 — Дневник

## Реорганизация workspace
- Создана папка `tasks/internet-orders/` — перенесён проект vprok.ru из `projects/` (которую создала ошибочно)
- Создана папка `tasks/flightradar24/PROJECT.md` — детали карты шумового загрязнения
- Создана папка `tasks/telegram-collector/PROJECT.md` — детали коллектора + анализ сноубайков
- MEMORY.md сокращён с ~17KB до ~4KB — только краткие описания и ссылки на PROJECT.md
- Правило: детальная информация о проектах → в `tasks/{project}/PROJECT.md`, в MEMORY.md только краткое описание и ссылка

## MTProxy для друга Славы
- Написан `tasks/mtproxy/setup_mtproxy.sh` — установка MTProxy + Fake TLS через Docker (nineseconds/mtg:2)
- Написан `tasks/mtproxy/remove_mtproxy.sh` — удаление MTProxy
- Создан `tasks/mtproxy/happ-telegram-route.json` — Xray конфиг для Happ на iOS: только Telegram через VLESS+Reality, остальное напрямую
- Сервер друга: `de-vmv2-pico` (Германия), MTProxy поднят но нестабильно
- Решение: VLESS+Reality через наш сервер 185.130.212.192, приложение Happ на iPhone
- На iOS split tunneling по приложениям недоступен — решается через Xray routing rules

## Голосовые сообщения
- Починен ffmpeg — скачан статический бинарник в `~/bin/ffmpeg`, скопирован по пути `~/bin/ffmpeg-7.0.2-amd64-static/ffmpeg` (скрипт ищет именно там)
- Тест: озвучила фразу голосом Джамшута 😄

## Видеоролик из фоток путешествия
- Слава прислал 3 фото (пляж, тропики — похоже Таиланд)
- fal.ai баланс пополнен, запущена анимация через Kling v1.6 standard image-to-video
- Скрипт: `tasks/video-travel/animate.py`
- Статус: в процессе генерации (subagent запущен, timeout 10 минут)
- Фото: file_220, file_221, file_222 в media/inbound/
- Промпт: "Gentle camera movement, waves rolling in, palm trees swaying, cinematic"

## Технические обсуждения
- Объяснила как работает контекст LLM: роли system/user/assistant, замыливание середины, lost in the middle
- Надёжная зона контекста: до 20-30K токенов
- memory_search использует OpenAI text-embedding-3-small, ключ OPENAI_API_KEY из .env
- Можно переключить на local (бесплатно): memorySearch.provider = "local"
- OmniRoute — self-hosted аналог OpenRouter (67+ провайдеров, VLESS+Reality, load balancing)
- Compaction сработал сегодня: 196K → 10K токенов
