Files
wiki/memory/ontology/graph.jsonl
2026-06-13 14:20:01 +03:00

167 lines
52 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"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"}
{"op": "create", "entity": {"id": "proj_orchestrator", "type": "Project", "properties": {"name": "Orchestrator Multi-Agent Pipeline", "status": "active", "folder": "tasks/orchestrator/", "doc_path": "tasks/orchestrator/ORCHESTRATOR_DOCS.md", "description": "\u0410\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u044b\u0439 multi-agent \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440: analysis\u2192architecture\u2192development\u2192review\u2192testing\u2192deploy\u2192done. \u0410\u0433\u0435\u043d\u0442\u044b analyst/architect/developer/reviewer/tester/deployer. \u0422\u0440\u0438\u0433\u0433\u0435\u0440 \u2014 \u0441\u0442\u0430\u0442\u0443\u0441 Plane Issue. QG-\u0433\u0435\u0439\u0442\u044b, self-recovery \u043d\u0430 \u043a\u0440\u0430\u0441\u043d\u043e\u043c CI. \u0420\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442 \u043d\u0430 mva154, \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 orchestrator:8500.", "start_date": "2026-05-31"}, "created": "2026-06-03T23:19:40.094782+00:00", "updated": "2026-06-03T23:19:40.094782+00:00"}, "timestamp": "2026-06-03T23:19:40.094782+00:00"}
{"op": "create", "entity": {"id": "task_orch_bug5", "type": "Task", "properties": {"title": "\u0411\u0430\u0433 5: check_tests_local \u0437\u043e\u0432\u0451\u0442 make \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435\u0442 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435", "project": "proj_orchestrator", "folder": "tasks/orchestrator/", "doc_path": "tasks/orchestrator/ORCHESTRATOR_DOCS.md", "status": "done", "priority": "high", "assignee": "dev", "description": "PR #16 (commit 90c9ffe, merge 994f73a). QG check_tests_local \u0437\u043e\u0432\u0451\u0442 [make,test], \u043d\u043e make \u043d\u0435\u0442 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u043e\u0440\u043a\u0435\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430. \u0424\u0438\u043a\u0441: \u043f\u0440\u044f\u043c\u043e\u0439 \u0432\u044b\u0437\u043e\u0432 python -m pytest ../../tests/ -v, cwd=<repo>/src/api (1:1 \u0441 Makefile \u0446\u0435\u043b\u044c\u044e test). make \u0432 Dockerfile \u041d\u0415 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u043b\u0438 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e."}, "created": "2026-06-03T23:19:40.137632+00:00", "updated": "2026-06-03T23:19:40.137632+00:00"}, "timestamp": "2026-06-03T23:19:40.137632+00:00"}
{"op": "create", "entity": {"id": "task_orch_bug6", "type": "Task", "properties": {"title": "\u0411\u0430\u0433 6: \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 QG \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043b CI \u0438 \u0433\u043e\u043d\u044f\u043b \u0442\u0435\u0441\u0442\u044b \u0431\u0435\u0437 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u043f\u0440\u043e\u0435\u043a\u0442\u0430", "project": "proj_orchestrator", "folder": "tasks/orchestrator/", "doc_path": "tasks/orchestrator/ORCHESTRATOR_DOCS.md", "status": "done", "priority": "high", "assignee": "dev", "description": "PR #17 (commit e15d339, merge 7922f6b). check_tests_local \u2014 \u043b\u0435\u0433\u0430\u0441\u0438-\u0437\u0430\u0442\u044b\u0447\u043a\u0430 \u044d\u043f\u043e\u0445\u0438 S-1 (CI \u043d\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u2192always false). CI \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d (.gitea/workflows/ci.yml, \u0433\u043e\u043d\u044f\u0435\u0442 \u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u0441 pip install .[dev]). \u0424\u0438\u043a\u0441: QG \u0441\u0442\u0430\u0434\u0438\u0438 development check_tests_local\u2192check_ci_green. check_tests_local \u041d\u0415 \u0443\u0434\u0430\u043b\u0451\u043d, \u043f\u043e\u043c\u0435\u0447\u0435\u043d DEPRECATED, \u0432 QG_CHECKS \u043d\u0435 wired. CI-failure \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u043e\u0434\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f. \u041f\u0440\u0438\u043d\u0446\u0438\u043f: \u043e\u0440\u043a\u0435\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u041d\u0415 \u0433\u043e\u043d\u044f\u0435\u0442 \u0442\u0435\u0441\u0442\u044b \u0447\u0443\u0436\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 \u0441\u0432\u043e\u0451\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435."}, "created": "2026-06-03T23:19:40.171469+00:00", "updated": "2026-06-03T23:19:40.171469+00:00"}, "timestamp": "2026-06-03T23:19:40.171469+00:00"}
{"op": "create", "entity": {"id": "task_orch_bug7", "type": "Task", "properties": {"title": "\u0411\u0430\u0433 7: \u043a\u0440\u0430\u0441\u043d\u044b\u0439 CI \u043d\u0430 development \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u043b \u0437\u0430\u0434\u0430\u0447\u0443 developer'\u0443", "project": "proj_orchestrator", "folder": "tasks/orchestrator/", "doc_path": "tasks/orchestrator/ORCHESTRATOR_DOCS.md", "status": "done", "priority": "high", "assignee": "dev", "description": "PR #18 (commit 3a285de, merge a0621b9). \u0414\u044b\u0440\u0430-\u043f\u043e\u0431\u043e\u0447\u043a\u0430 \u0431\u0430\u0433\u0430 6: CI \u0441\u0442\u0430\u043b \u0430\u0432\u0442\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u044b\u043c \u0433\u0435\u0439\u0442\u043e\u043c, \u043d\u043e handle_ci_status \u043f\u0440\u0438 failure \u0434\u0435\u043b\u0430\u043b \u0422\u041e\u041b\u042c\u041a\u041e notify_qg_failure\u2192\u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u0432\u0438\u0441. \u0424\u0438\u043a\u0441 \u043f\u043e \u043e\u0431\u0440\u0430\u0437\u0446\u0443 review-retry: \u043a\u0440\u0430\u0441\u043d\u044b\u0439 CI\u2192retry developer'\u0430 (enqueue_job attempt N/3), \u043b\u0438\u043c\u0438\u0442 \u041e\u0411\u0429\u0418\u0419 MAX_DEV_RETRIES=3 (review+CI \u0432\u043c\u0435\u0441\u0442\u0435), \u043f\u043e\u0442\u043e\u043c \u044d\u0441\u043a\u0430\u043b\u0430\u0446\u0438\u044f. \u041f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043e \u0431\u043e\u0435\u0432\u044b\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u043e\u043c ET-011 \u2014 \u0441\u0430\u043c\u043e\u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e."}, "created": "2026-06-03T23:19:40.212443+00:00", "updated": "2026-06-03T23:19:40.212443+00:00"}, "timestamp": "2026-06-03T23:19:40.212443+00:00"}
{"op": "relate", "from": "proj_orchestrator", "rel": "has_task", "to": "task_orch_bug5", "properties": {}, "timestamp": "2026-06-03T23:19:40.245963+00:00"}
{"op": "relate", "from": "proj_orchestrator", "rel": "has_task", "to": "task_orch_bug6", "properties": {}, "timestamp": "2026-06-03T23:19:40.286870+00:00"}
{"op": "relate", "from": "proj_orchestrator", "rel": "has_task", "to": "task_orch_bug7", "properties": {}, "timestamp": "2026-06-03T23:19:40.334105+00:00"}
{"op": "create", "entity": {"id": "task_orch_bug8", "type": "Task", "properties": {"title": "\u0411\u0430\u0433 8: deploy \u043d\u0435 \u0438\u043c\u0435\u043b QG-\u0433\u0435\u0439\u0442\u0430, \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u0434\u0435\u043f\u043b\u043e\u0439 \u0443\u0445\u043e\u0434\u0438\u043b \u0432 done", "project": "proj_orchestrator", "folder": "tasks/orchestrator/", "doc_path": "tasks/orchestrator/ORCHESTRATOR_DOCS.md", "status": "done", "priority": "urgent", "assignee": "dev", "description": "PR #19 (commit e4a9c48, merge 2629dff). \u0412\u0441\u043a\u0440\u044b\u0442\u043e \u043d\u0430 ET-011: \u0444\u0438\u0447\u0430 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u0430 done, \u043d\u043e \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 GPX \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u2014 deploy-hook \u0443\u043f\u0430\u043b permission denied, \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0440\u0430\u043b\u0441\u044f. deployer \u0447\u0435\u0441\u0442\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043b Status:FAILED, \u043d\u043e exit_code LLM-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430=0 \u2192 \u0437\u0430\u0449\u0438\u0442\u0430 launcher.py:475 \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 + stages.py deploy \u0438\u043c\u0435\u043b qg:None. \u0424\u0438\u043a\u0441: \u043d\u043e\u0432\u044b\u0439 QG check_deploy_status (\u043f\u043e \u043e\u0431\u0440\u0430\u0437\u0446\u0443 check_reviewer_verdict) \u0447\u0438\u0442\u0430\u0435\u0442 frontmatter deploy_status \u0438\u0437 14-deploy-log.md; deploy.qg=check_deploy_status; SUCCESS\u2192done, FAILED\u2192\u043e\u0442\u043a\u0430\u0442 development+Blocked \u043f\u043e \u0412\u0415\u0420\u0414\u0418\u041a\u0422\u0423 \u043d\u0435 exit_code. deployer-\u043f\u0440\u043e\u043c\u043f\u0442 enduro-trails \u043e\u0431\u044f\u0437\u0430\u043d \u043f\u0438\u0441\u0430\u0442\u044c deploy_status (PR enduro-trails #23). \u0423\u0440\u043e\u043a: \u0437\u0435\u043b\u0451\u043d\u044b\u0439 CI != \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043f\u0440\u043e\u0434\u0435."}, "created": "2026-06-03T23:52:07.559163+00:00", "updated": "2026-06-03T23:52:07.559163+00:00"}, "timestamp": "2026-06-03T23:52:07.559163+00:00"}
{"op": "relate", "from": "proj_orchestrator", "rel": "has_task", "to": "task_orch_bug8", "properties": {}, "timestamp": "2026-06-03T23:52:07.598823+00:00"}
{"op": "create", "entity": {"id": "task_et011_gpx_download", "type": "Task", "properties": {"title": "ET-011: \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 GPX \u0447\u0443\u0436\u0438\u0445 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445 \u0442\u0440\u0435\u043a\u043e\u0432 \u0438\u0437 \u043f\u043e\u043f\u0430\u043f\u0430", "project": "proj_enduro_trails", "folder": "tasks/enduro-trails/", "doc_path": "tasks/enduro-trails/PROJECT.md", "status": "done", "priority": "normal", "assignee": "dev", "description": "\u042d\u043d\u0434\u043f\u043e\u0438\u043d\u0442 GET /api/gps-tracks/{track_id}/download \u2014 GPX 1.1 \u0438\u0437 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u0442\u0440\u0435\u043a\u0430. \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u043e\u043d\u043d\u0430\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 ADR-015 default-deny (download_allowed per source). \u0410-1 (\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430 04.06): enduro_russia download_allowed=true (enduro-trails #23, commit 81c3394/merge b6b21aa). \u041d\u0430 \u043f\u0440\u043e\u0434\u0435: HTTP 200, 265KB, \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 GPX 1.1. \u0418\u043d\u0444\u0440\u0430-\u0444\u0438\u043a\u0441 04.06 \u0447\u0435\u0440\u0435\u0437 installer: sudo chown slin:slin /var/log/enduro-trails (deploy-hook \u043f\u0430\u0434\u0430\u043b \u043d\u0430 permission denied)."}, "created": "2026-06-04T05:38:54.726267+00:00", "updated": "2026-06-04T05:38:54.726267+00:00"}, "timestamp": "2026-06-04T05:38:54.726267+00:00"}
{"op": "relate", "from": "proj_enduro_trails", "rel": "has_task", "to": "task_et011_gpx_download", "properties": {}, "timestamp": "2026-06-04T05:38:54.771227+00:00"}
{"op": "relate", "from": "proj_orchestrator", "rel": "has_task", "to": "task_orch_109", "properties": {}, "timestamp": "2026-06-13T11:11:07.101370+00:00"}