166 lines
52 KiB
JSON
166 lines
52 KiB
JSON
{"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"}
|