{"op":"create","entity":{"id":"p_slava","type":"Person","properties":{"name":"Слава","username":"SlavaMel","timezone":"UTC+3","pronouns":"он/его"},"created":"2026-03-18T00:00:00Z"}}
{"op":"create","entity":{"id":"agent_stream","type":"Agent","properties":{"id":"main","name":"Стрим 🌊","type":"assistant","workspace":"/home/node/.openclaw/workspace/","model":"openrouter/anthropic/claude-sonnet-4.6","status":"active"},"created":"2026-03-18T00:00:00Z"}}
{"op":"create","entity":{"id":"agent_dev","type":"Agent","properties":{"id":"dev","name":"Dev-агент","type":"dev","workspace":"/home/node/.openclaw/workspace-dev/","model":"nekocode/gpt-5.4","status":"active"},"created":"2026-03-18T00:00:00Z"}}
{"op":"create","entity":{"id":"agent_legal","type":"Agent","properties":{"id":"legal","name":"Юрист","type":"legal","workspace":"/home/node/.openclaw/workspace-legal/","status":"planned"},"created":"2026-03-18T00:00:00Z"}}
{"op":"create","entity":{"id":"agent_planner","type":"Agent","properties":{"id":"planner","name":"Planner","type":"planner","workspace":"tasks/planner-agent/","status":"planned"},"created":"2026-03-18T00:00:00Z"}}
{"op":"create","entity":{"id":"proj_snowbike_rag","type":"Project","properties":{"name":"Snowbike RAG","status":"active","start_date":"2026-03-20","description":"База знаний сноубайков — Telegram коллектор + RAG поиск (Meilisearch + ChromaDB). messages.jsonl: 140275 сообщений"},"created":"2026-03-20T00:00:00Z"}}
{"op":"create","entity":{"id":"proj_noisemap","type":"Project","properties":{"name":"Карта шумового загрязнения FR24","status":"paused","start_date":"2026-03-22","description":"FR24 кредиты закончились, следующий шаг — RTL-SDR"},"created":"2026-03-22T00:00:00Z"}}
{"op":"create","entity":{"id":"proj_telegram_collector","type":"Project","properties":{"name":"Telegram Collector","status":"active","start_date":"2026-03-20","description":"Сбор данных из Telegram-каналов. @snowbikerussia загружен (155K сообщений), ежедневный инкремент"},"created":"2026-03-20T00:00:00Z"}}
{"op":"create","entity":{"id":"proj_internet_orders","type":"Project","properties":{"name":"Интернет-заказы (vprok.ru)","status":"active","start_date":"2026-03-31","description":"Relay-сервер 185.130.212.192:5000, Windows-клиент готов, ожидает первого теста"},"created":"2026-03-31T00:00:00Z"}}
{"op":"create","entity":{"id":"proj_ha","type":"Project","properties":{"name":"Home Assistant","status":"active","start_date":"2026-04-03","description":"LocalTuya устройства: котёл, водонагреватель, CO2, уличное реле. Telegram бот через VLESS proxy"},"created":"2026-04-03T00:00:00Z"}}
{"op":"create","entity":{"id":"proj_proxy_vm","type":"Project","properties":{"name":"Proxy VM (vpn-srv)","status":"active","start_date":"2026-04-04","description":"Ubuntu VM для прокси HA Telegram + прозрачный шлюз для Wi-Fi ТВ. IP: 192.168.2.200. Xray VLESS Reality"},"created":"2026-04-04T00:00:00Z"}}
{"op":"create","entity":{"id":"task_chromadb_up","type":"Task","properties":{"title":"Поднять ChromaDB на :8000","status":"open","priority":"high","assignee":"dev","project":"proj_snowbike_rag"}},"created":"2026-04-07T00:00:00Z"}
{"op":"create","entity":{"id":"task_incremental_index","type":"Task","properties":{"title":"Долить incremental_20260407.jsonl в Meilisearch и ChromaDB","status":"open","priority":"high","assignee":"dev","project":"proj_snowbike_rag"}},"created":"2026-04-07T00:00:00Z"}
{"op":"create","entity":{"id":"task_iptables_persist","type":"Task","properties":{"title":"Сохранить iptables tproxy правила постоянными (iptables-persistent)","status":"open","priority":"medium","assignee":"dev","project":"proj_proxy_vm"}},"created":"2026-04-05T00:00:00Z"}
{"op":"create","entity":{"id":"task_xray_schema","type":"Task","properties":{"title":"Проверить схему Xray → gpt2giga (валидация Славой)","status":"open","priority":"low","assignee":"p_slava","project":"proj_proxy_vm"}},"created":"2026-04-08T00:00:00Z"}
{"op":"create","entity":{"id":"task_tv_wifi","type":"Task","properties":{"title":"Проверить Wi-Fi homenet-vpn для телевизора (YouTube)","status":"open","priority":"medium","assignee":"p_slava","project":"proj_proxy_vm"}},"created":"2026-04-05T00:00:00Z"}
{"op":"create","entity":{"id":"svc_gpt2giga","type":"Service","properties":{"name":"gpt2giga proxy","url":"http://185.130.212.192:8443","description":"Прокси для GigaChat API. Маршрут через Xray под вопросом (TODO: провалидировать)"},"created":"2026-04-08T00:00:00Z"}}
{"op":"create","entity":{"id":"svc_xray","type":"Service","properties":{"name":"Xray VLESS Reality","url":"43.245.226.231:15281","description":"Outbound proxy — Франкфурт (HOSTKEY B.V.). UUID: 94adf929-..., SNI: google.com. Запущен на vpn-srv (192.168.2.200)"},"created":"2026-04-04T00:00:00Z"}}
{"op":"create","entity":{"id":"svc_frp","type":"Service","properties":{"name":"frp туннель","url":"185.130.212.192:7000","description":"frps на 185.130.212.192, frpc на vpn-srv. SSH доступ: ssh -i ha_ssh_key -p 3322 vpn@185.130.212.192"},"created":"2026-04-05T00:00:00Z"}}
{"op":"create","entity":{"id":"svc_fr24","type":"Service","properties":{"name":"Flightradar24 API","url":"","description":"Тариф Explorer, 60K кредитов/мес (до 31.05.2026 промо 120K). Кредиты закончились в марте."},"created":"2026-03-22T00:00:00Z"}}
{"op":"create","entity":{"id":"svc_meilisearch","type":"Service","properties":{"name":"Meilisearch","url":"localhost:7700","port":7700,"description":"Поисковый движок snowbike-rag. Индекс: 140059 документов (UP)"},"created":"2026-03-20T00:00:00Z"}}
{"op":"create","entity":{"id":"svc_chromadb","type":"Service","properties":{"name":"ChromaDB","url":"localhost:8000","port":8000,"description":"Векторная база snowbike-rag. Индекс: 136428 документов (DOWN — требует починки)"},"created":"2026-03-20T00:00:00Z"}}
{"op":"create","entity":{"id":"svc_ha","type":"Service","properties":{"name":"Home Assistant","url":"192.168.2.xxx","description":"Интеграции: LocalTuya, telegram_bot (ha542, setup_retry — ждёт прокси)"},"created":"2026-04-03T00:00:00Z"}}
{"op":"create","entity":{"id":"skill_voice_tts","type":"Skill","properties":{"name":"voice-tts","location":"~/.openclaw/skills/voice-tts/","shared":true,"description":"ElevenLabs + Yandex SpeechKit fallback"},"created":"2026-03-18T00:00:00Z"}}
{"op":"create","entity":{"id":"skill_diagram_png","type":"Skill","properties":{"name":"diagram-png","location":"~/.openclaw/skills/diagram-png/","shared":true,"description":"Генерация PNG-диаграмм из JSON (Pillow)"},"created":"2026-04-08T00:00:00Z"}}
{"op":"create","entity":{"id":"skill_ontology","type":"Skill","properties":{"name":"ontology","location":"workspace/skills/ontology/","shared":false,"owner":"Стрим","description":"Граф знаний — сущности и связи"},"created":"2026-04-08T00:00:00Z"}}
{"op":"create","entity":{"id":"skill_telegram_collector","type":"Skill","properties":{"name":"telegram-collector","location":"workspace/skills/telegram-collector/","shared":false,"owner":"Стрим","description":"Сбор данных из Telegram"},"created":"2026-03-20T00:00:00Z"}}
{"op":"create","entity":{"id":"skill_youtube_search","type":"Skill","properties":{"name":"youtube-search","location":"workspace/skills/youtube-search/","shared":false,"owner":"Стрим","description":"YouTube Data API v3. Ключ: YOUTUBE_API_KEY"},"created":"2026-03-24T00:00:00Z"}}
{"op":"create","entity":{"id":"skill_yandex_search","type":"Skill","properties":{"name":"yandex-search","location":"workspace/skills/yandex-search/","shared":false,"owner":"Стрим","description":"Yandex Search API v2. Ключ: YANDEX_API_KEY"},"created":"2026-03-24T00:00:00Z"}}
{"op":"create","entity":{"id":"rule_dev_agent_only","type":"Rule","properties":{"description":"Стрим НЕ пишет код — только обсуждение, ТЗ, проверка, документация. Вся реализация → Dev-агент","scope":"development","created":"2026-03-18T00:00:00Z"}}}
{"op":"create","entity":{"id":"rule_ha_approval","type":"Rule","properties":{"description":"Изменения в Home Assistant только после явного OK Славы. Читать состояния можно без подтверждения","scope":"home_assistant","created":"2026-03-18T00:00:00Z"}}}
{"op":"create","entity":{"id":"rule_docs_on_change","type":"Rule","properties":{"description":"Документация обновляется СРАЗУ после изменения функционала — не потом, а немедленно","scope":"documentation","created":"2026-03-18T00:00:00Z"}}}
{"op":"create","entity":{"id":"rule_secrets_in_env","type":"Rule","properties":{"description":"Все секреты только в ~/.openclaw/.env. Никогда не дублировать в SKILL.md, скриптах или других файлах","scope":"security","created":"2026-04-07T00:00:00Z"}}}
{"op":"relate","from":"p_slava","rel":"has_agent","to":"agent_stream"}
{"op":"relate","from":"p_slava","rel":"has_agent","to":"agent_dev"}
{"op":"relate","from":"proj_snowbike_rag","rel":"uses_service","to":"svc_meilisearch"}
{"op":"relate","from":"proj_snowbike_rag","rel":"uses_service","to":"svc_chromadb"}
{"op":"relate","from":"proj_noisemap","rel":"uses_service","to":"svc_fr24"}
{"op":"relate","from":"proj_ha","rel":"uses_service","to":"svc_ha"}
{"op":"relate","from":"proj_ha","rel":"uses_service","to":"svc_xray"}
{"op":"relate","from":"proj_proxy_vm","rel":"uses_service","to":"svc_xray"}
{"op":"relate","from":"proj_proxy_vm","rel":"uses_service","to":"svc_frp"}
{"op":"relate","from":"proj_snowbike_rag","rel":"has_agent","to":"agent_dev"}
{"op":"relate","from":"proj_ha","rel":"has_agent","to":"agent_dev"}
{"op":"relate","from":"proj_proxy_vm","rel":"has_agent","to":"agent_dev"}
{"op":"relate","from":"task_chromadb_up","rel":"has_agent","to":"agent_dev"}
{"op":"relate","from":"task_incremental_index","rel":"has_agent","to":"agent_dev"}
{"op":"relate","from":"agent_stream","rel":"has_skill","to":"skill_ontology"}
{"op":"relate","from":"agent_stream","rel":"has_skill","to":"skill_voice_tts"}
{"op":"relate","from":"agent_stream","rel":"has_skill","to":"skill_diagram_png"}
{"op":"relate","from":"agent_stream","rel":"has_skill","to":"skill_telegram_collector"}
{"op":"create","entity":{"id":"proj_42013b23","type":"Project","properties":{"name":"Tapo Camera Monitor","status":"active","start_date":"2026-04-04","description":"Мониторинг камер TP-Link C520WS/C320WS. Анализ через Gemini 2.5 Flash, уведомления в Telegram"},"created":"2026-04-08T13:30:31.713947+00:00","updated":"2026-04-08T13:30:31.713947+00:00"},"timestamp":"2026-04-08T13:30:31.713947+00:00"}
{"op":"create","entity":{"id":"proj_ac4c6fde","type":"Project","properties":{"name":"Apps Portal","status":"active","description":"Портал-лендинг apps.mva154.duckdns.org с карточками веб-приложений"},"created":"2026-04-08T13:30:31.754260+00:00","updated":"2026-04-08T13:30:31.754260+00:00"},"timestamp":"2026-04-08T13:30:31.754260+00:00"}
{"op":"create","entity":{"id":"proj_9adc33e4","type":"Project","properties":{"name":"Видеокружочки","status":"planned","description":"Генерация video notes в Telegram: ElevenLabs → fal.ai → VEED Fabric 1.0 → lip sync"},"created":"2026-04-08T13:30:31.795096+00:00","updated":"2026-04-08T13:30:31.795096+00:00"},"timestamp":"2026-04-08T13:30:31.795096+00:00"}
{"op":"create","entity":{"id":"task_4e32f803","type":"Task","properties":{"title":"Пополнить кредиты FR24 / перейти на RTL-SDR","status":"open","priority":"medium","project":"proj_noisemap","assignee":"p_slava"},"created":"2026-04-08T13:30:51.283348+00:00","updated":"2026-04-08T13:30:51.283348+00:00"},"timestamp":"2026-04-08T13:30:51.283348+00:00"}
{"op":"create","entity":{"id":"task_c404a100","type":"Task","properties":{"title":"Тест windows_client.py на ПК Славы","status":"open","priority":"high","project":"proj_internet_orders","assignee":"p_slava"},"created":"2026-04-08T13:30:51.356004+00:00","updated":"2026-04-08T13:30:51.356004+00:00"},"timestamp":"2026-04-08T13:30:51.356004+00:00"}
{"op":"create","entity":{"id":"task_84191a86","type":"Task","properties":{"title":"Настроить Telegram бот HA через VLESS proxy","status":"open","priority":"medium","project":"proj_ha","assignee":"dev"},"created":"2026-04-08T13:30:51.397047+00:00","updated":"2026-04-08T13:30:51.397047+00:00"},"timestamp":"2026-04-08T13:30:51.397047+00:00"}
{"op":"create","entity":{"id":"task_d25eb54b","type":"Task","properties":{"title":"Настроить оставшиеся Tuya устройства","status":"open","priority":"low","project":"proj_ha","assignee":"p_slava"},"created":"2026-04-08T13:30:51.490789+00:00","updated":"2026-04-08T13:30:51.490789+00:00"},"timestamp":"2026-04-08T13:30:51.490789+00:00"}
{"op":"create","entity":{"id":"task_1fdfcebe","type":"Task","properties":{"title":"Запустить Apps Portal","status":"open","priority":"medium","project":"proj_ac4c6fde","assignee":"dev"},"created":"2026-04-08T13:30:51.568269+00:00","updated":"2026-04-08T13:30:51.568269+00:00"},"timestamp":"2026-04-08T13:30:51.568269+00:00"}
{"op":"create","entity":{"id":"task_528fb457","type":"Task","properties":{"title":"Настроить камеры Tapo и запустить монитор","status":"open","priority":"medium","project":"proj_42013b23","assignee":"dev"},"created":"2026-04-08T13:30:51.656863+00:00","updated":"2026-04-08T13:30:51.656863+00:00"},"timestamp":"2026-04-08T13:30:51.656863+00:00"}
{"op":"update","id":"proj_9adc33e4","properties":{"status":"active","description":"Генерация video notes: ElevenLabs TTS + fal.ai (lip sync VEED) → Telegram. Текущая реализация: fal.ai Fabric 1.0."},"timestamp":"2026-04-08T13:43:27.520218+00:00"}
{"op":"create","entity":{"id":"task_62d77102","type":"Task","properties":{"title":"Переделать с fal.ai на HeyGen","status":"open","priority":"medium","project":"Видеокружочки","assignee":"dev"},"created":"2026-04-08T13:43:27.560655+00:00","updated":"2026-04-08T13:43:27.560655+00:00"},"timestamp":"2026-04-08T13:43:27.560655+00:00"}
{"op":"update","id":"task_62d77102","properties":{"description":"Создать talking photo в HeyGen: app.heygen.com → AI Photo Avatar → загрузить фото Стрим → получить talking_photo_id → сохранить в HEYGEN_TALKING_PHOTO_ID в .env","assignee":"p_slava"},"timestamp":"2026-04-09T11:02:40.877366+00:00"}
{"op":"create","entity":{"id":"task_c9530171","type":"Task","properties":{"title":"Регулярное инкрементальное обновление RAG","status":"open","priority":"high","project":"proj_snowbike_rag","assignee":"dev","description":"Настроить автоматическое инкрементальное обновление: сбор новых сообщений из Telegram → обработка → доливка в Meilisearch и ChromaDB по расписанию"},"created":"2026-04-09T11:39:55.706681+00:00","updated":"2026-04-09T11:39:55.706681+00:00"},"timestamp":"2026-04-09T11:39:55.706681+00:00"}
{"op":"update","id":"task_chromadb_up","properties":{"status":"done"},"timestamp":"2026-04-09T11:40:02.971524+00:00"}
{"op":"update","id":"task_incremental_index","properties":{"status":"done"},"timestamp":"2026-04-09T11:40:03.016832+00:00"}
{"op":"update","id":"proj_snowbike_rag","properties":{"folder":"tasks/snowbike-rag/"},"timestamp":"2026-04-09T11:45:15.026648+00:00"}
{"op":"update","id":"proj_noisemap","properties":{"folder":"tasks/flightradar24/"},"timestamp":"2026-04-09T11:45:15.068974+00:00"}
{"op":"update","id":"proj_telegram_collector","properties":{"folder":"tasks/telegram-collector/"},"timestamp":"2026-04-09T11:45:15.108443+00:00"}
{"op":"update","id":"proj_internet_orders","properties":{"folder":"tasks/internet-orders/"},"timestamp":"2026-04-09T11:45:15.148616+00:00"}
{"op":"update","id":"proj_ha","properties":{"folder":"tasks/ha/"},"timestamp":"2026-04-09T11:45:15.198698+00:00"}
{"op":"update","id":"proj_proxy_vm","properties":{"folder":"tasks/proxy-vm/"},"timestamp":"2026-04-09T11:45:15.239484+00:00"}
{"op":"update","id":"proj_42013b23","properties":{"folder":"tasks/tapo/"},"timestamp":"2026-04-09T11:45:15.288935+00:00"}
{"op":"update","id":"proj_ac4c6fde","properties":{"folder":"tasks/apps-portal/"},"timestamp":"2026-04-09T11:45:15.328863+00:00"}
{"op":"update","id":"proj_9adc33e4","properties":{"folder":"tasks/video-notes/"},"timestamp":"2026-04-09T11:45:15.368056+00:00"}
{"op":"create","entity":{"id":"task_46d0528b","type":"Task","properties":{"title":"Упорядочить SSH ключи доступа","status":"open","priority":"medium","project":"proj_ha","assignee":"p_slava","description":"Проверить и упорядочить SSH ключи в ~/.openclaw/ и /home/slin/.ssh/. Текущая ситуация: ключ ha_ssh_key в ~/.openclaw/ (по факту общий для mva154). Добавить описание в ключах для чего каждый. Проверить: нет ли дубликатов, устаревших, неиспользуемых ключей. Документировать в TOOLS.md: какие ключи, для каких хостов, кем используются."},"created":"2026-04-09T18:20:24.343810+00:00","updated":"2026-04-09T18:20:24.343810+00:00"},"timestamp":"2026-04-09T18:20:24.343810+00:00"}
{"op":"create","entity":{"id":"proj_wiki_memory","type":"Project","properties":{"name":"Wiki & Memory","status":"active","start_date":"2026-04-10","description":"Настройка системы памяти OpenClaw: QMD backend + Memory Wiki.","folder":"tasks/wiki-memory/"},"created":"2026-04-10T13:48:44.572313+00:00","updated":"2026-04-10T13:48:44.572313+00:00"},"timestamp":"2026-04-10T13:48:44.572313+00:00"}
{"op":"create","entity":{"id":"task_wiki_memory_setup","type":"Task","properties":{"title":"Первичная настройка Wiki & Memory","status":"done","priority":"high","project":"proj_wiki_memory","assignee":"p_slava","description":"Настройка QMD backend, Memory Wiki, инициализация vault, создание entities/concepts для всех проектов и скиллов."},"created":"2026-04-10T13:48:48.015666+00:00","updated":"2026-04-10T13:48:48.015666+00:00"},"timestamp":"2026-04-10T13:48:48.015666+00:00"}
{"op":"update","id":"proj_proxy_vm","properties":{"description":"Homenet-VPN Wi-Fi 192.168.4.0/24 через Xray VLESS Reality. Схема: iptables REDIRECT → redsocks:12346 → SOCKS5:1080 → VLESS Reality 43.245.226.231:53903. v1 READY 10.04.2026. HA Telegram proxy — TODO.","status":"active"},"timestamp":"2026-04-10T14:24:47.523336+00:00"}
{"op":"create","entity":{"id":"task_d2a7781a","type":"Task","properties":{"title":"HA Telegram через VLESS","project":"proj_proxy_vm","assignee":"dev","status":"open","priority":"medium","description":"Настроить HA proxy для Telegram API (149.154.x.x / 91.108.x.x) через VLESS, остальной трафик напрямую"},"created":"2026-04-10T14:24:52.039594+00:00","updated":"2026-04-10T14:24:52.039594+00:00"},"timestamp":"2026-04-10T14:24:52.039594+00:00"}
{"op":"update","id":"task_84191a86","properties":{"status":"done","title":"Настроить Telegram бот HA через VLESS proxy","description":"Готово 10.04.2026. UI-интеграция telegram_bot с proxy_url=socks5://192.168.2.200:1080. Только Telegram через прокси, остальной трафик HA напрямую. Entity: notify.telegram_bot_8251509944_126472752"},"timestamp":"2026-04-10T15:39:00Z"}
{"op":"update","id":"svc_ha","properties":{"name":"Home Assistant","url":"https://ha.homenet542.keenetic.pro","description":"HAOS 17.1, IP 192.168.2.139. Интеграции: LocalTuya, telegram_bot (ha542_bot — работает через SOCKS5 proxy на vpn-srv). Token в HA_TOKEN в .env"},"timestamp":"2026-04-10T15:39:00Z"}
{"op":"update","id":"proj_ha","properties":{"description":"LocalTuya устройства: котёл, водонагреватель, CO2, уличное реле. Telegram бот через VLESS proxy — НАСТРОЕН (10.04.2026). Entity: notify.telegram_bot_8251509944_126472752"},"timestamp":"2026-04-10T15:39:00Z"}
{"op":"update","id":"proj_proxy_vm","properties":{"description":"Ubuntu VM (vpn-srv, 192.168.2.200) для VLESS прокси. Задача #2 (HA Telegram) — DONE. Задача #1 (Wi-Fi transparent proxy 192.168.4.0/24) — в работе, TCP не работает из-за конфликта xtls-rprx-vision + redirect mode"},"timestamp":"2026-04-10T15:39:00Z"}
{"op":"create","entity":{"id":"task_ontology_relations","type":"Task","properties":{"title":"Разобраться и создать связи в ontology graph","description":"Исследовать почему graph.jsonl содержит 48 entities но 0 relations. Создать первые связи между сущностями на основе wikilinks в wiki-файлах и известных зависимостей проектов. Рассмотреть типы связей: использует, работает_над, зависит_от, владелец, интегрирован_с.","status":"backlog","priority":"high","created":"2026-04-10T18:39:00Z","labels":["ontology","graph","relations"]},"created":"2026-04-10T18:39:00Z"}}
{"op":"create","entity":{"id":"proj_reminders","type":"Project","properties":{"title":"Reminders — система напоминаний","description":"Система напоминаний с гарантированной доставкой. Комбинация OpenClaw cron, heartbeat и внешнего cron на VPS.","status":"concept","created":"2026-04-11T22:42:00Z","path":"tasks/reminders/"},"created":"2026-04-11T22:42:00Z"}}
{"op":"update","id":"proj_reminders","properties":{"description":"Система напоминаний. Выбор: Todoist (API + Telegram бот + кроссплатформа). Следующий шаг: получить API токен.","status":"research"}}
{"op":"update","id":"proj_proxy_vm","properties":{"description":"Proxy VM (vpn-srv) — VLESS Reality прокси. Задача #1 (Wi-Fi Homenet_vpn transparent proxy) — ГОТОВО (TPROXY, 12.04.2026). Задача #2 (HA Telegram) — DONE.","status":"active"},"timestamp":"2026-04-12T08:26:00Z"}
{"op":"update","id":"proj_proxy_vm","properties":{"description":"Proxy VM (vpn-srv) — VLESS Reality прокси. Задача #1 (Wi-Fi Homenet_vpn transparent proxy) — DONE (nat REDIRECT + MSS clamp 1280, 12.04.2026). Задача #2 (HA Telegram через SOCKS5) — DONE (10.04.2026)."},"timestamp":"2026-04-12T12:10:52.824669+00:00"}
{"op":"create","entity":{"id":"proj_kids_helper","type":"Project","properties":{"title":"Детский помощник — агент для родителей","description":"Персональный помощник по вопросам ребёнка: одежда, обувь, игрушки, обучение, события. Отдельный Telegram-бот, изолированная память. Workspace: workspace-kids. ТЗ: tasks/kids-helper/TZ.md.","status":"todo","priority":"medium","created":"2026-04-12T16:54:00Z","labels":["agent","kids","telegram"],"path":"tasks/kids-helper/"},"created":"2026-04-12T16:54:00Z"}}
{"op":"create","entity":{"id":"proj_bytik","type":"Project","properties":{"title":"Байтик — детский ИИ-помощник","description":"Telegram-бот Байтик: ИИ-помощник для Егора (8 лет, ДР 17.04.2018). Отвечает на вопросы, утренняя рассылка 7:30 MSK с энциклопедическими фактами, поздравления с праздниками. Строгая детская цензура. LLM: Qwen 3.6-Plus. Инфраструктура: mva154, изолированный workspace.","status":"planned","created":"2026-04-14T21:55:00Z","path":"tasks/bytik/","labels":["agent","telegram","kids","ai"]},"created":"2026-04-14T21:55:00Z"}}
{"op":"create","entity":{"id":"proj_bytik","type":"Project","properties":{"title":"Байтик — детский ИИ-помощник","description":"Telegram-бот Байтик для Егора (8 лет). MVP работает (14.04.2026).","status":"active","created":"2026-04-14T21:55:00Z","path":"tasks/bytik/","labels":["agent","telegram","kids","ai"]},"created":"2026-04-14T21:55:00Z"}}
{"op": "update", "id": "proj_reminders", "properties": {"name": "Reminders — система напоминаний"}, "timestamp": "2026-04-18T06:47:22.246054+00:00"}
{"op": "update", "id": "proj_kids_helper", "properties": {"name": "Детский помощник — агент для родителей"}, "timestamp": "2026-04-18T06:47:22.246054+00:00"}
{"op": "update", "id": "proj_bytik", "properties": {"name": "Байтик — детский ИИ-помощник"}, "timestamp": "2026-04-18T06:47:22.246054+00:00"}
{"op": "update", "id": "proj_42013b23", "properties": {"folder": "tasks/tapo/", "doc_path": "tasks/tapo/PROJECT.md"}, "timestamp": "2026-04-18T11:01:29.209574+00:00"}
{"op": "update", "id": "proj_9adc33e4", "properties": {"folder": "tasks/video-notes/", "doc_path": "tasks/video-notes/TZ.md"}, "timestamp": "2026-04-18T11:01:29.209574+00:00"}
{"op": "update", "id": "proj_ac4c6fde", "properties": {"folder": "tasks/apps-portal/", "doc_path": "tasks/apps-portal/PROJECT.md"}, "timestamp": "2026-04-18T11:01:29.209574+00:00"}
{"op": "update", "id": "proj_bytik", "properties": {"folder": "tasks/bytik/", "doc_path": "tasks/bytik/README.md"}, "timestamp": "2026-04-18T11:01:29.209574+00:00"}
{"op": "update", "id": "proj_ha", "properties": {"folder": "tasks/ha/", "doc_path": "tasks/ha/PROJECT.md"}, "timestamp": "2026-04-18T11:01:29.209574+00:00"}
{"op": "update", "id": "proj_internet_orders", "properties": {"folder": "tasks/internet-orders/", "doc_path": "tasks/internet-orders/PROJECT.md"}, "timestamp": "2026-04-18T11:01:29.209574+00:00"}
{"op": "update", "id": "proj_kids_helper", "properties": {"folder": "tasks/kids-helper/", "doc_path": "tasks/kids-helper/TZ.md"}, "timestamp": "2026-04-18T11:01:29.209574+00:00"}
{"op": "update", "id": "proj_noisemap", "properties": {"folder": "tasks/flightradar24/", "doc_path": "tasks/flightradar24/PROJECT.md"}, "timestamp": "2026-04-18T11:01:29.209574+00:00"}
{"op": "update", "id": "proj_proxy_vm", "properties": {"folder": "tasks/proxy-vm/", "doc_path": "tasks/proxy-vm/PROJECT.md"}, "timestamp": "2026-04-18T11:01:29.209574+00:00"}
{"op": "update", "id": "proj_reminders", "properties": {"folder": "tasks/reminders/", "doc_path": "tasks/reminders/PROJECT.md"}, "timestamp": "2026-04-18T11:01:29.209574+00:00"}
{"op": "update", "id": "proj_snowbike_rag", "properties": {"folder": "tasks/snowbike-rag/", "doc_path": "tasks/snowbike-rag/README.md"}, "timestamp": "2026-04-18T11:01:29.209574+00:00"}
{"op": "update", "id": "proj_telegram_collector", "properties": {"folder": "tasks/telegram-collector/", "doc_path": "tasks/telegram-collector/PROJECT.md"}, "timestamp": "2026-04-18T11:01:29.209574+00:00"}
{"op": "update", "id": "proj_wiki_memory", "properties": {"folder": "tasks/wiki-memory/", "doc_path": "tasks/wiki-memory/PROJECT.md"}, "timestamp": "2026-04-18T11:01:29.209574+00:00"}
{"op": "update", "id": "proj_bytik", "properties": {"name": "Байтик — детский ИИ-помощник"}, "timestamp": "2026-04-18T11:01:29.209574+00:00"}
{"op": "update", "id": "proj_kids_helper", "properties": {"name": "Детский помощник — агент для родителей"}, "timestamp": "2026-04-18T11:01:29.209574+00:00"}
{"op": "update", "id": "proj_reminders", "properties": {"name": "Reminders — система напоминаний"}, "timestamp": "2026-04-18T11:01:29.209574+00:00"}
{"op": "update", "id": "task_1fdfcebe", "properties": {"folder": "tasks/apps-portal/TASKS/active/task_1fdfcebe/", "doc_path": "tasks/apps-portal/TASKS/active/task_1fdfcebe/TASK.md"}, "timestamp": "2026-04-18T11:47:14.990420+00:00"}
{"op": "update", "id": "task_46d0528b", "properties": {"folder": "tasks/ha/TASKS/active/task_46d0528b/", "doc_path": "tasks/ha/TASKS/active/task_46d0528b/TASK.md"}, "timestamp": "2026-04-18T11:47:14.990420+00:00"}
{"op": "update", "id": "task_4e32f803", "properties": {"folder": "tasks/flightradar24/TASKS/active/task_4e32f803/", "doc_path": "tasks/flightradar24/TASKS/active/task_4e32f803/TASK.md"}, "timestamp": "2026-04-18T11:47:14.990420+00:00"}
{"op": "update", "id": "task_528fb457", "properties": {"folder": "tasks/tapo/TASKS/active/task_528fb457/", "doc_path": "tasks/tapo/TASKS/active/task_528fb457/TASK.md"}, "timestamp": "2026-04-18T11:47:14.990420+00:00"}
{"op": "update", "id": "task_84191a86", "properties": {"folder": "tasks/ha/TASKS/done/task_84191a86/", "doc_path": "tasks/ha/TASKS/done/task_84191a86/TASK.md"}, "timestamp": "2026-04-18T11:47:14.990420+00:00"}
{"op": "update", "id": "task_c404a100", "properties": {"folder": "tasks/internet-orders/TASKS/active/task_c404a100/", "doc_path": "tasks/internet-orders/TASKS/active/task_c404a100/TASK.md"}, "timestamp": "2026-04-18T11:47:14.990420+00:00"}
{"op": "update", "id": "task_c9530171", "properties": {"folder": "tasks/snowbike-rag/TASKS/active/task_c9530171/", "doc_path": "tasks/snowbike-rag/TASKS/active/task_c9530171/TASK.md"}, "timestamp": "2026-04-18T11:47:14.990420+00:00"}
{"op": "update", "id": "task_chromadb_up", "properties": {"folder": "tasks/snowbike-rag/TASKS/done/task_chromadb_up/", "doc_path": "tasks/snowbike-rag/TASKS/done/task_chromadb_up/TASK.md"}, "timestamp": "2026-04-18T11:47:14.990420+00:00"}
{"op": "update", "id": "task_d25eb54b", "properties": {"folder": "tasks/ha/TASKS/active/task_d25eb54b/", "doc_path": "tasks/ha/TASKS/active/task_d25eb54b/TASK.md"}, "timestamp": "2026-04-18T11:47:14.990420+00:00"}
{"op": "update", "id": "task_d2a7781a", "properties": {"folder": "tasks/proxy-vm/TASKS/done/task_d2a7781a/", "doc_path": "tasks/proxy-vm/TASKS/done/task_d2a7781a/TASK.md"}, "timestamp": "2026-04-18T11:47:14.990420+00:00"}
{"op": "update", "id": "task_incremental_index", "properties": {"folder": "tasks/snowbike-rag/TASKS/done/task_incremental_index/", "doc_path": "tasks/snowbike-rag/TASKS/done/task_incremental_index/TASK.md"}, "timestamp": "2026-04-18T11:47:14.990420+00:00"}
{"op": "update", "id": "task_iptables_persist", "properties": {"folder": "tasks/proxy-vm/TASKS/active/task_iptables_persist/", "doc_path": "tasks/proxy-vm/TASKS/active/task_iptables_persist/TASK.md"}, "timestamp": "2026-04-18T11:47:14.990420+00:00"}
{"op": "update", "id": "task_tv_wifi", "properties": {"folder": "tasks/proxy-vm/TASKS/active/task_tv_wifi/", "doc_path": "tasks/proxy-vm/TASKS/active/task_tv_wifi/TASK.md"}, "timestamp": "2026-04-18T11:47:14.990420+00:00"}
{"op": "update", "id": "task_wiki_memory_setup", "properties": {"folder": "tasks/wiki-memory/TASKS/done/task_wiki_memory_setup/", "doc_path": "tasks/wiki-memory/TASKS/done/task_wiki_memory_setup/TASK.md"}, "timestamp": "2026-04-18T11:47:14.990420+00:00"}
{"op": "update", "id": "task_xray_schema", "properties": {"folder": "tasks/proxy-vm/TASKS/active/task_xray_schema/", "doc_path": "tasks/proxy-vm/TASKS/active/task_xray_schema/TASK.md"}, "timestamp": "2026-04-18T11:47:14.990420+00:00"}
{"op": "update", "id": "task_ontology_relations", "properties": {"description": "Исследовать почему graph.jsonl содержит 48 entities но 0 relations. Создать первые связи между сущностями на основе wikilinks в wiki-файлах и известных зависимостей проектов. Рассмотреть типы связей: использует, работает_над, зависит_от, владелец, интегрирован_с. Требуется привязка к проекту before migration can continue."}, "timestamp": "2026-04-18T11:47:14.990420+00:00"}
{"op": "update", "id": "task_62d77102", "properties": {"project": "proj_9adc33e4", "folder": "tasks/video-notes/TASKS/active/heygen-migration/", "doc_path": "tasks/video-notes/TASKS/active/heygen-migration/TASK.md"}, "timestamp": "2026-04-18T12:43:51.659624+00:00"}
{"op": "delete", "id": "task_ontology_relations", "timestamp": "2026-04-18T12:54:02.210684+00:00"}
{"op": "create", "entity": {"id": "proj_dev_agent", "type": "Project", "properties": {"name": "Dev Agent", "status": "active", "description": "Проект по созданию и настройке Dev-агента OpenClaw", "folder": "tasks/dev-agent/", "doc_path": "tasks/dev-agent/PROJECT.md"}, "created": "2026-04-18T14:40:31.497601+00:00"}, "timestamp": "2026-04-18T14:40:31.497601+00:00"}
{"op": "create", "entity": {"id": "task_dev_agent_setup", "type": "Task", "properties": {"title": "Настроить Dev-агента", "status": "active", "project": "proj_dev_agent", "folder": "tasks/dev-agent/TASKS/active/setup/", "doc_path": "tasks/dev-agent/TASKS/active/setup/TASK.md"}, "created": "2026-04-18T14:40:31.497601+00:00"}, "timestamp": "2026-04-18T14:40:31.497601+00:00"}
{"op": "create", "entity": {"id": "proj_legal_agent", "type": "Project", "properties": {"name": "Legal Agent", "status": "active", "description": "Проект по созданию и настройке юридического агента OpenClaw", "folder": "tasks/legal-agent/", "doc_path": "tasks/legal-agent/PROJECT.md"}, "created": "2026-04-18T14:41:47.083479+00:00"}, "timestamp": "2026-04-18T14:41:47.083479+00:00"}
{"op": "create", "entity": {"id": "task_legal_agent_setup", "type": "Task", "properties": {"title": "Настроить Legal Agent", "status": "active", "project": "proj_legal_agent", "folder": "tasks/legal-agent/TASKS/active/setup/", "doc_path": "tasks/legal-agent/TASKS/active/setup/TASK.md"}, "created": "2026-04-18T14:41:47.083479+00:00"}, "timestamp": "2026-04-18T14:41:47.083479+00:00"}
{"op": "delete", "id": "proj_planner_agent", "timestamp": "2026-04-18T14:43:14.286121+00:00"}
{"op": "delete", "id": "task_planner_agent_setup", "timestamp": "2026-04-18T14:43:14.286121+00:00"}
{"op": "delete", "id": "proj_home_assistant", "timestamp": "2026-04-18T14:44:22.703342+00:00"}
{"op": "create", "entity": {"id": "proj_ha_availability_dashboard", "type": "Project", "properties": {"name": "HA Availability Dashboard", "status": "active", "description": "Дашборд доступности устройств в Home Assistant", "folder": "tasks/ha-availability-dashboard/", "doc_path": "tasks/ha-availability-dashboard/PROJECT.md"}, "created": "2026-04-18T14:46:16.652373+00:00"}, "timestamp": "2026-04-18T14:46:16.652373+00:00"}
{"op": "create", "entity": {"id": "task_ha_availability_dashboard_setup", "type": "Task", "properties": {"title": "Привести HA Availability Dashboard к стандарту проекта", "status": "active", "project": "proj_ha_availability_dashboard", "folder": "tasks/ha-availability-dashboard/TASKS/active/setup/", "doc_path": "tasks/ha-availability-dashboard/TASKS/active/setup/TASK.md"}, "created": "2026-04-18T14:46:16.652373+00:00"}, "timestamp": "2026-04-18T14:46:16.652373+00:00"}
{"op": "delete", "id": "proj_mtproxy", "timestamp": "2026-04-18T14:51:47.300166+00:00"}
{"op": "delete", "id": "task_mtproxy_setup", "timestamp": "2026-04-18T14:51:47.300166+00:00"}
{"op": "delete", "id": "proj_ruvpn_xray", "timestamp": "2026-04-18T14:57:49.775527+00:00"}
{"op": "create", "entity": {"id": "task_snowbike_kb_viewer", "type": "Task", "properties": {"title": "Snowbike KB viewer", "status": "active", "project": "proj_snowbike_rag", "folder": "tasks/snowbike-rag/TASKS/active/snowbike-kb-viewer/", "doc_path": "tasks/snowbike-rag/TASKS/active/snowbike-kb-viewer/TASK.md"}, "created": "2026-04-18T15:01:01.467335+00:00"}, "timestamp": "2026-04-18T15:01:01.467335+00:00"}
{"op": "update", "id": "proj_snowbike_rag", "properties": {"folder": "tasks/snowbike-rag/", "doc_path": "tasks/snowbike-rag/PROJECT.md"}, "timestamp": "2026-04-18T15:03:14.572807+00:00"}
{"op": "update", "id": "task_snowbike_kb_viewer", "properties": {"folder": "tasks/snowbike-rag/TASKS/active/kb-viewer/", "doc_path": "tasks/snowbike-rag/TASKS/active/kb-viewer/TASK.md"}, "timestamp": "2026-04-18T15:03:14.572807+00:00"}
{"op": "create", "entity": {"id": "task_snowbike_rag_project_setup", "type": "Task", "properties": {"title": "Оформить Snowbike RAG как проект", "status": "active", "project": "proj_snowbike_rag", "folder": "tasks/snowbike-rag/TASKS/active/project-setup/", "doc_path": "tasks/snowbike-rag/TASKS/active/project-setup/TASK.md"}, "created": "2026-04-18T15:03:14.572807+00:00"}, "timestamp": "2026-04-18T15:03:14.572807+00:00"}
{"op": "create", "entity": {"id": "task_fr24_rtl_sdr_iteration_2", "type": "Task", "properties": {"title": "FR24 RTL-SDR ТЗ: вторая итерация", "status": "open", "priority": "high", "project": "proj_noisemap", "description": "Дооформить вторую итерацию ТЗ для RTL-SDR контура: мониторинг, healthchecks, ротация логов, индексы/партиционирование, dedup для overlap, backup/restore, уведомления, контракт ingest↔UI."}, "created": "2026-04-18T21:03:00Z"}, "timestamp": "2026-04-18T21:03:00Z"}
{"op": "create", "entity": {"id": "doc_fr24_rtl_sdr_architecture", "type": "Document", "properties": {"title": "FR24 RTL-SDR architecture", "path": "tasks/flightradar24/docs/ARCHITECTURE.md", "summary": "Контейнерная архитектура ingest-контура RTL-SDR для FR24 / noisemap."}, "created": "2026-04-18T21:11:00Z"}, "timestamp": "2026-04-18T21:11:00Z"}
{"op": "create", "entity": {"id": "doc_fr24_rtl_sdr_tz", "type": "Document", "properties": {"title": "FR24 RTL-SDR TZ", "path": "tasks/flightradar24/docs/RTL-SDR_TZ.md", "summary": "ТЗ на приём, хранение и обработку данных с RTL-SDR для FR24 / noisemap."}, "created": "2026-04-18T21:11:00Z"}, "timestamp": "2026-04-18T21:11:00Z"}
{"op": "create", "entity": {"id": "doc_fr24_test_plan", "type": "Document", "properties": {"title": "FR24 RTL-SDR test plan", "path": "tasks/flightradar24/docs/TEST_PLAN.md", "summary": "Smoke, integration, recovery and retention checks for the RTL-SDR ingest stack."}, "created": "2026-04-18T21:18:00Z"}, "timestamp": "2026-04-18T21:18:00Z"}
{"op":"create","entity":{"id":"proj_karaoke","type":"Project","properties":{"name":"Караоке-генератор","status":"planning","folder":"tasks/karaoke/","doc_path":"tasks/karaoke/PROJECT.md","description":"Генерация видео-караоке из аудиофайла: транскрипция текста, NLP-анализ смысла, авто-подбор видео-фона из стоков, рендер в MP4.","start_date":"2026-04-29"},"created":"2026-04-29T21:21:00Z"},"timestamp":"2026-04-29T21:21:00Z"}
{"op":"create","entity":{"id":"proj_karaoke","type":"Project","properties":{"name":"Караоке-генератор","status":"planning","folder":"tasks/karaoke/","doc_path":"tasks/karaoke/PROJECT.md","description":"Генерация видео-караоке из аудиофайла: транскрипция текста, NLP-анализ смысла, авто-подбор видео-фона из стоков, рендер в MP4.","start_date":"2026-04-29"},"created":"2026-04-29T21:21:00Z"},"timestamp":"2026-04-29T21:21:00Z"}
{"op":"create","entity":{"id":"task_karaoke_setup","type":"Task","properties":{"title":"Оформить проект Караоке-генератор","status":"open","project":"proj_karaoke","folder":"tasks/karaoke/TASKS/active/project-setup/","doc_path":"tasks/karaoke/TASKS/active/project-setup/TASK.md","description":"Создать структуру папок, PROJECT.md, TASK.md, обновить онтологию.","priority":"high"},"created":"2026-04-29T21:21:00Z"},"timestamp":"2026-04-29T21:21:00Z"}
{"op":"create","entity":{"id":"proj_enduro_trails","type":"Project","properties":{"name":"Enduro Trails","status":"planning","folder":"tasks/enduro-trails/","doc_path":"tasks/enduro-trails/PROJECT.md","description":"OSM-карта с фокусом на грунтовые дороги для эндуро: роутинг с максимизацией грунтовок, визуализация рельефа, POI, поиск красивых маршрутов","start_date":"2026-05-02"},"created":"2026-05-02T03:51:00Z"},"timestamp":"2026-05-02T03:51:00Z"}
{"op":"create","entity":{"id":"task_enduro_prototype","type":"Task","properties":{"title":"Прототип Enduro Trails на mva154","status":"open","project":"proj_enduro_trails","folder":"tasks/enduro-trails/TASKS/active/prototype-setup/","doc_path":"tasks/enduro-trails/TASKS/active/prototype-setup/TASK.md","description":"Настроить прототип на mva154: парсинг PBF (ЦФО+Чувашия), Spatialite, базовый рендеринг тайлов, веб-карта MapLibre GL","priority":"high"},"created":"2026-05-02T03:51:00Z"},"timestamp":"2026-05-02T03:51:00Z"}
