{ "version": 1, "updatedAt": "2026-05-26T05:29:25.926Z", "entries": { "memory:memory/2026-04-05.md:29:55": { "key": "memory:memory/2026-04-05.md:29:55", "path": "memory/2026-04-05.md", "startLine": 29, "endLine": 55, "source": "memory", "snippet": "- Оба сервиса в systemd, восстанавливаются после ребута ## Wi-Fi homenet-vpn для телевизора — статус (05.04.2026, не завершено) ### Что сделано - Создан сегмент `Homenet_vpn` в Keenetic: 192.168.4.0/24, шлюз 192.168.4.1 - VM получила второй NIC `ens19` через Proxmox (VLAN tag 4, vmbr0 с VLAN aware) - `ens19` настроен с IP `192.168.4.1/24` - iptables tproxy правила настроены (перехват трафика из 192.168.4.0/24 → Xray порт 12345) - Xray конфиг обновлён с tproxy inbound ### Проблема: iptables сбрасываются при ребуте Правила не сохранены постоянно! После следующего ребута VM нужно восстановить вручную или настроить iptables-persistent. ### Что нужно проверить на следующей неделе 1. Подключит", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 0.408840736746788, "maxScore": 0.408840736746788, "firstRecalledAt": "2026-04-10T10:44:01.610Z", "lastRecalledAt": "2026-04-10T10:44:01.610Z", "queryHashes": [ "2813a89b3343" ], "recallDays": [ "2026-04-10" ], "conceptTags": [ "vlan", "wi-fi", "homenet-vpn", "05.04.2026", "192.168.4.0/24", "192.168.4.1", "192.168.4.1/24", "iptables-persistent" ] }, "memory:memory/2026-04-04.md:10:13": { "key": "memory:memory/2026-04-04.md:10:13", "path": "memory/2026-04-04.md", "startLine": 10, "endLine": 13, "source": "memory", "snippet": "@@ -10,4 @@ (9 before, 53 after) ### Telegram бот в HA - Интеграция `telegram_bot` уже есть, называется **ha542**, состояние `setup_retry` - Проблема: Telegram заблокирован РКН, HA не может достучаться до api.telegram.org", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 0.9, "maxScore": 0.9, "firstRecalledAt": "2026-04-10T15:37:22.308Z", "lastRecalledAt": "2026-04-10T15:37:22.308Z", "queryHashes": [ "e4bf9132fac4" ], "recallDays": [ "2026-04-10" ], "conceptTags": [ "telegram-bot", "setup-retry", "api.telegram.org", "10,4", "telegram", "бот", "интеграция", "уже" ] }, "memory:memory/2026-04-10.md:178:181": { "key": "memory:memory/2026-04-10.md:178:181", "path": "memory/2026-04-10.md", "startLine": 178, "endLine": 181, "source": "memory", "snippet": "@@ -178,4 @@ (177 before, 60 after) ### Задача #2: HA Telegram через SOCKS5 прокси **HA:** `ha.homenet542.keenetic.pro`, IP 192.168.2.139, HAOS 17.1, gateway → Keenetic (192.168.2.1)", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 0.88, "maxScore": 0.88, "firstRecalledAt": "2026-04-10T15:37:22.308Z", "lastRecalledAt": "2026-04-10T15:37:22.308Z", "queryHashes": [ "e4bf9132fac4" ], "recallDays": [ "2026-04-10" ], "conceptTags": [ "gateway", "ha.homenet542.keenetic.pro", "192.168.2.139", "17.1", "192.168.2.1", "178,4", "задача", "telegram" ] }, "memory:memory/2026-04-11.md:58:61": { "key": "memory:memory/2026-04-11.md:58:61", "path": "memory/2026-04-11.md", "startLine": 58, "endLine": 61, "source": "memory", "snippet": "@@ -58,4 @@ (57 before, 10 after) ## Installer Skill (скилл инсталляции) — 15:09 UTC - **Создан:** `~/.openclaw/skills/installer/` — 12 файлов, полный набор - **Автор:** Dev agent (subagent, gpt-5.4)", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 0.85, "maxScore": 0.85, "firstRecalledAt": "2026-04-11T22:01:45.557Z", "lastRecalledAt": "2026-04-11T22:01:45.557Z", "queryHashes": [ "5f1d60cb2076" ], "recallDays": [ "2026-04-11" ], "conceptTags": [ "gpt", "openclaw/skills/installer", "gpt-5.4", "58,4", "installer", "skill", "скилл", "инсталляции" ] }, "memory:memory/2026-04-05.md:30:33": { "key": "memory:memory/2026-04-05.md:30:33", "path": "memory/2026-04-05.md", "startLine": 30, "endLine": 33, "source": "memory", "snippet": "@@ -30,4 @@ (29 before, 22 after) ## Wi-Fi homenet-vpn для телевизора — статус (05.04.2026, не завершено) ### Что сделано", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 0.91, "maxScore": 0.91, "firstRecalledAt": "2026-04-12T07:34:44.965Z", "lastRecalledAt": "2026-04-12T07:34:44.965Z", "queryHashes": [ "0d00d980c05e" ], "recallDays": [ "2026-04-12" ], "conceptTags": [ "wi-fi", "homenet-vpn", "05.04.2026", "30,4", "homenet", "vpn", "для", "телевизора" ] }, "memory:memory/2026-04-10.md:1:3": { "key": "memory:memory/2026-04-10.md:1:3", "path": "memory/2026-04-10.md", "startLine": 1, "endLine": 3, "source": "memory", "snippet": "@@ -1,3 @@ (0 before, 369 after) # 2026-04-10 — Настройка Memory Wiki + QMD ## Что делали", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 0.95, "maxScore": 0.95, "firstRecalledAt": "2026-04-12T15:22:02.828Z", "lastRecalledAt": "2026-04-12T15:22:02.828Z", "queryHashes": [ "7913125527de" ], "recallDays": [ "2026-04-12" ], "conceptTags": [ "qmd", "1,3", "настройка", "wiki", "что", "делали" ] }, "memory:memory/2026-04-09.md:41:44": { "key": "memory:memory/2026-04-09.md:41:44", "path": "memory/2026-04-09.md", "startLine": 41, "endLine": 44, "source": "memory", "snippet": "@@ -41,4 @@ (40 before, 31 after) ## Онтология — RULES.md и правила ведения Создан файл `memory/ontology/RULES.md` — правила ведения онтологии: - Когда использовать (обязательно для проектов/задач)", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 0.91, "maxScore": 0.91, "firstRecalledAt": "2026-04-16T20:09:33.263Z", "lastRecalledAt": "2026-04-16T20:09:33.263Z", "queryHashes": [ "779a3b252d1a" ], "recallDays": [ "2026-04-16" ], "conceptTags": [ "rules.md", "memory/ontology/rules.md", "проектов/задач", "41,4", "онтология", "правила", "ведения", "создан" ] }, "memory:memory/2026-04-11.md:34:63": { "key": "memory:memory/2026-04-11.md:34:63", "path": "memory/2026-04-11.md", "startLine": 34, "endLine": 63, "source": "memory", "snippet": "- `Терраса. Освещение 2` — `0xa4c138067335c877/1`, target 59105 - `Дом. Освещение внешнее` — `0xa4c138f3593859ae/1`, target 49383 - `Дом. Обогрев водопровода` — `0xa4c138c65bc3b2f1/1`, target 47271 ### HA логи: - `home-assistant.log.1` — только Dec 2025 (устаревший, после ротации) - `home-assistant.log.fault` — пустой (0 байт) - Актуальные HA логи за апрель 2026 недоступны в текстовых файлах (HAOS — нет journalctl в SSH-шелл) ### Статус анализа: - Задача выполнена частично: Z2M логи проанализированы, HA логи недоступны - Сводный отчёт отправлен Славе в сессии ## Dev agent model update (этот день) - Dev по умолчанию переключён на `anthropic/claude-sonnet-4-6` (вместо `nekocode/gpt-5.4`) -", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 0.5356921090851123, "maxScore": 0.5356921090851123, "firstRecalledAt": "2026-04-17T04:59:56.267Z", "lastRecalledAt": "2026-04-17T04:59:56.267Z", "queryHashes": [ "311572b0121c" ], "recallDays": [ "2026-04-17" ], "conceptTags": [ "gpt", "0xa4c138067335c877/1", "0xa4c138f3593859ae/1", "0xa4c138c65bc3b2f1/1", "home-assistant.log.1", "home-assistant.log.fault", "ssh-шелл", "anthropic/claude-sonnet-4-6" ] }, "memory:memory/2026-04-05.md:20:23": { "key": "memory:memory/2026-04-05.md:20:23", "path": "memory/2026-04-05.md", "startLine": 20, "endLine": 23, "source": "memory", "snippet": "@@ -20,4 @@ (19 before, 32 after) ### Доступ к VM vpn-srv - **Команда:** `ssh -i /home/node/.openclaw/ha_ssh_key -p 3322 vpn@185.130.212.192` - **Больше не нужен** reverse SSH туннель вручную!", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 0.93, "maxScore": 0.93, "firstRecalledAt": "2026-04-17T06:32:00.564Z", "lastRecalledAt": "2026-04-17T06:32:00.564Z", "queryHashes": [ "403e75eb0fbf" ], "recallDays": [ "2026-04-17" ], "conceptTags": [ "vpn-srv", "home/node", "openclaw/ha-ssh-key", "185.130.212.192", "20,4", "доступ", "vpn", "srv" ] }, "memory:memory/2026-04-14.md:1:28": { "key": "memory:memory/2026-04-14.md:1:28", "path": "memory/2026-04-14.md", "startLine": 1, "endLine": 28, "source": "memory", "snippet": "# Дневник — 2026-04-14 ## Проект BYTIK — создание агента ### Обсуждение со Славой - Слава попросил создать детского помощника \"Байтик\" для Егора (8 лет) - Архитектура: OpenClaw-агент с отдельным workspace, не standalone-приложение - LLM: Qwen 3.6-Plus (OpenRouter) ### Что сделано - Создан агент `bytik` в openclaw.json (id, workspace, модель, tools) - Добавлен binding: `agentId: bytik` → `accountId: bytik` - Настроен Telegram account `bytik` в channels.telegram.accounts - Создан workspace `~/.openclaw/workspace-bytik/`: - `SOUL.md` — личность и границы - `AGENTS.md` — инструкции, whitelist, cron - `IDENTITY.md` — имя, emoji, пол - `USER.md` — про Егора - `MEMOR.md` — долгосрочная", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 0.6130283911988113, "maxScore": 0.6130283911988113, "firstRecalledAt": "2026-04-25T05:50:55.453Z", "lastRecalledAt": "2026-04-25T05:50:55.453Z", "queryHashes": [ "0f60b8d8cec8" ], "recallDays": [ "2026-04-25" ], "conceptTags": [ "router", "openclaw-агент", "standalone-приложение", "3.6-plus", "openclaw.json", "channels.telegram.accounts", "openclaw/workspace-bytik", "soul.md" ] }, "memory:memory/2026-04-24.md:21:43": { "key": "memory:memory/2026-04-24.md:21:43", "path": "memory/2026-04-24.md", "startLine": 21, "endLine": 43, "source": "memory", "snippet": "- Фикс `decimal.Decimal / float` → `float(alt_m)` в шумовой модели - Витрина 19.04: 99 рейсов с треком (rtlsdr=92, fa=3, fr24=2) - Создана таблица `fr24_ext.flight_actual` (DDL-миграция на VM) - `FR24_API_KEY=MVM0hi4S7RRh7Dm4EOl1ShpDPc8CrmITXT2LY5y4dd84a62a` добавлен в `.env` на VM - Пагинация flight-summary/full: цикл offset += 20 - UI enrichment: `schedule.html` (13 колонок), `schedule.js`, `main.py` (LEFT JOIN на flight_actual) - DDL-миграция schedule: `fr24_id`, `actual_takeoff`, `actual_landed`, `delay_*`, `flight_category`, `registration` - Задеплоено через `docker cp` → fr24-api, fr24-tracks-fr24, fr24-mart ### In Progress / Pending - Загрузка FR24 flight-summary/full за 2026-04-20 (", "recallCount": 2, "dailyCount": 0, "groundedCount": 0, "totalScore": 0.7627217918634415, "maxScore": 0.3955423265695572, "firstRecalledAt": "2026-04-25T09:55:48.033Z", "lastRecalledAt": "2026-04-25T09:57:24.355Z", "queryHashes": [ "3093ccbb7ccc", "494104edf81c" ], "recallDays": [ "2026-04-25" ], "conceptTags": [ "decimal.decimal", "alt-m", "19.04", "fr24-ext.flight-actual", "ddl-миграция", "fr24-api-key", "flight-summary/full", "schedule.html" ] }, "memory:memory/2026-04-24.md:1:25": { "key": "memory:memory/2026-04-24.md:1:25", "path": "memory/2026-04-24.md", "startLine": 1, "endLine": 25, "source": "memory", "snippet": "# 2026-04-24 — Memory Flush (pre-compaction) ## Урок: как я спалила кредиты FR24 (разбор ошибок) Перед запуском FR24 API на боевых кредитах нужно было: 1. **Проверить total** — многие API возвращают `total` или `X-Total-Count`. У FR24 не проверила, не знала сколько записей ожидать 2. **Тест с одним аэропортом** — `departure:SVO` вместо `both:SVO,both:DME,both:VKO,both:ZIA`. Посмотреть сколько страниц, умножить на кредиты 3. **Понять что значит `both:`** — включает коммерческое + частное + грузовое + военное по всем 4 аэропортам. Я предположила ~1500 рейсов как у Яндекса, но не проверила 4. **Посчитать бюджет заранее** — 44 800 ÷ 3 = ~14 900 рейсов максимум. Можно было поставить `MAX_PAGES", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 0.3846299439668655, "maxScore": 0.3846299439668655, "firstRecalledAt": "2026-04-25T09:55:48.033Z", "lastRecalledAt": "2026-04-25T09:55:48.033Z", "queryHashes": [ "3093ccbb7ccc" ], "recallDays": [ "2026-04-25" ], "conceptTags": [ "pre-compaction", "x-total-count", "max-pages", "flush", "pre", "compaction", "урок", "как" ] }, "memory:memory/2026-04-20.md:1:30": { "key": "memory:memory/2026-04-20.md:1:30", "path": "memory/2026-04-20.md", "startLine": 1, "endLine": 30, "source": "memory", "snippet": "# 2026-04-20 — Дневник ## Проект: FR24 / Noisemap — Фаза 2, Шаг 2 ### БТ финализировано - Файл: `tasks/flightradar24/docs/PHASE2_STEP2_DATA_MART.md` - FR24 API: `Flight tracks`, 40 кредитов/рейс, только по команде, T-1, SVO/DME/VKO/ZIA - FlightAware AeroAPI: только треки, ключ `7qMijd3b3gVudezng3eVhKtup8iKFr75` сохранён в `.env` как `FLIGHTAWARE_API_KEY` - Витрина `fr24_mart`: приоритет RTL-SDR > FR24 > FlightAware, источник в каждой записи - Шумовая модель: из прототипа, зоны 2/5/7/9 км (граница \"Низкий\" изменена 11→9 км) - Отложено: цена FlightAware Standard, глубина исторической загрузки FR24 ### FlightAware — тестирование ключа - Ключ `7qMijd3b3gVudezng3eVhKtup8iKFr75` протестирован и", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 0.38251920640468595, "maxScore": 0.38251920640468595, "firstRecalledAt": "2026-04-25T09:55:48.033Z", "lastRecalledAt": "2026-04-25T09:55:48.033Z", "queryHashes": [ "3093ccbb7ccc" ], "recallDays": [ "2026-04-25" ], "conceptTags": [ "кредитов/рейс", "t-1", "svo/dme/vko/zia", "flightaware-api-key", "fr24-mart", "rtl-sdr", "2/5/7/9", "дневник" ] }, "memory:memory/2026-04-20.md:24:41": { "key": "memory:memory/2026-04-20.md:24:41", "path": "memory/2026-04-20.md", "startLine": 24, "endLine": 41, "source": "memory", "snippet": "- `ingest/tracks_fa/` — воркер FlightAware треков (порт 8002) - `ingest/mart/` — воркер витрины + шумовая модель, noise_grid по round(lat,2) - `frontend/static/data_sources.html` + `data_sources.js` - `docker-compose.yml` — 3 новых сервиса - `frontend/main.py` — `/data-sources` + 5 API эндпоинтов ### Деплой на VM (fr24, 192.168.2.67) - DDL `005_schema_tracks.sql` применён через `docker exec fr24-postgres psql` - Контейнеры `fr24-tracks-fr24` (8001), `fr24-tracks-fa` (8002), `fr24-mart` — собраны и запущены, все healthy - Обнаружена ошибка в `main.py` (frontend): колонка `flight_date` vs `coverage_date` в `fr24_mart.source_coverage` - Фикс задеплоен, api пересобран ### Открытые задачи на за", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 0.3795589625835418, "maxScore": 0.3795589625835418, "firstRecalledAt": "2026-04-25T09:55:48.033Z", "lastRecalledAt": "2026-04-25T09:55:48.033Z", "queryHashes": [ "3093ccbb7ccc" ], "recallDays": [ "2026-04-25" ], "conceptTags": [ "ingest/tracks-fa", "ingest/mart", "noise-grid", "data-sources.js", "docker-compose.yml", "frontend/main.py", "data-sources", "192.168.2.67" ] }, "memory:memory/2026-04-21.md:63:93": { "key": "memory:memory/2026-04-21.md:63:93", "path": "memory/2026-04-21.md", "startLine": 63, "endLine": 93, "source": "memory", "snippet": "1. **DDL fix**: `origin_icao`/`destination_icao` VARCHAR(5)→VARCHAR(20) — FA API возвращает координаты (`L 55.61740 39.72253`) вместо ICAO; применена миграция на VM 2. **fa_worker.py**: добавлена функция `_icao_or_none()` — фильтрует нестандартные значения 3. **build_mart.py**: - Добавлен словарь `AIRLINE_IATA_TO_ICAO` + конвертация callsign из flight_number - Добавлен числовой матч по `ident_iata` для FA рейсов - Расширен словарь `ICAO_TO_IATA` аэропортов - Фикс `decimal.Decimal / float` → `float(alt_m)` в шумовой модели ### Результат витрины 19.04.2026: - ✅ **91 рейс с RTL-SDR треком** (было 0) - 9 042 точек трека - 167 ячеек шумовой сетки - Покрытие: **11.7%** от расписания -", "recallCount": 2, "dailyCount": 0, "groundedCount": 0, "totalScore": 0.6824049293994903, "maxScore": 0.36978600025177, "firstRecalledAt": "2026-04-25T09:55:48.033Z", "lastRecalledAt": "2026-04-26T07:04:02.188Z", "queryHashes": [ "3093ccbb7ccc", "f224f6a02885" ], "recallDays": [ "2026-04-25", "2026-04-26" ], "conceptTags": [ "origin-icao", "destination-icao", "55.61740", "39.72253", "fa-worker.py", "icao-or-none", "build-mart.py", "airline-iata-to-icao" ] }, "memory:memory/2026-04-21.md:32:66": { "key": "memory:memory/2026-04-21.md:32:66", "path": "memory/2026-04-21.md", "startLine": 32, "endLine": 66, "source": "memory", "snippet": "- Остаток: **50 486** из 120 000 (промо Explorer) - Потрачено: ~69 514 за прошлые загрузки - Стоимость загрузки трека: ~2 кредиты за summaries, потом per-track - Хватит на ~1 260 рейсов (40 кредитов/рейс) ## FR24 Track — первый тест загрузки - Рейс: **SU6807 / FV6807 (SDM6807)** от 01.04.2026 - fr24_id: `3f0161d3`, борт SU95 RA-89131 - Маршрут: UUEE (Шереметьево) → ULLI (Пулково) - Взлёт: 31.03 21:16:27 UTC, посадка: 31.03 22:13:01 UTC - **1056 точек трека** загружено (ADSB: 17, MLAT: 1039) - Высоты: 0 – 34 025 ft - Загружено вручную через API + SQL INSERT в `fr24_ext.fr24_tracks` + `fr24_mart.flight_tracks` - Важно: сервис `fr24-tracks-fr24` загружает ВСЕ рейсы за дату через `iter_flight_s", "recallCount": 2, "dailyCount": 0, "groundedCount": 0, "totalScore": 0.7031851530075073, "maxScore": 0.36804868578910827, "firstRecalledAt": "2026-04-25T09:55:48.033Z", "lastRecalledAt": "2026-04-26T07:04:02.188Z", "queryHashes": [ "3093ccbb7ccc", "f224f6a02885" ], "recallDays": [ "2026-04-25", "2026-04-26" ], "conceptTags": [ "per-track", "кредитов/рейс", "01.04.2026", "fr24-id", "ra-89131", "31.03", "fr24-ext.fr24-tracks", "fr24-mart.flight-tracks" ] }, "memory:memory/2026-03-30.md:26:61": { "key": "memory:memory/2026-03-30.md:26:61", "path": "memory/2026-03-30.md", "startLine": 26, "endLine": 61, "source": "memory", "snippet": "- Модель должна быть В allowlist `agents.defaults.models` ПЕРЕД установкой в primary - Формат ключа: полный ID с префиксом провайдера (`claudeapi/claude-sonnet-4-6`) - После изменений — перезапуск контейнера: `docker restart openclaw-gateway` --- ## Проект RTL-SDR ADS-B (POC) ### Статус - RTL-SDR Blog V4 работает на Windows машине Славы - Создан POC-скрипт `decode.py` (лежит на Windows: `C:\\Users\\mva15\\Downloads\\Release radar\\x64\\`) - Стек: `rtl_adsb.exe` → Python pyModeS → HTTP сервер → OpenLayers 10 карта - URL локально: `http://localhost:8080/` ### Что работает - ✅ Приём ADS-B на 1090 МГц через RTL-SDR Blog V4 - ✅ Декодирование позиций: `position_with_ref` (основной) + глобальный CPR", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 0.33961203694343567, "maxScore": 0.33961203694343567, "firstRecalledAt": "2026-04-26T07:04:02.188Z", "lastRecalledAt": "2026-04-26T07:04:02.188Z", "queryHashes": [ "f224f6a02885" ], "recallDays": [ "2026-04-26" ], "conceptTags": [ "gateway", "agents.defaults.models", "claudeapi/claude-sonnet-4-6", "openclaw-gateway", "rtl-sdr", "ads-b", "poc-скрипт", "decode.py" ] }, "memory:memory/2026-04-19.md:135:145": { "key": "memory:memory/2026-04-19.md:135:145", "path": "memory/2026-04-19.md", "startLine": 135, "endLine": 145, "source": "memory", "snippet": "- `pgrep` нет в python:3.11-slim → healthcheck только через файлы (`test -f /tmp/ready`) или Python urllib - Dev-агент запускается без явного `model` параметра — берёт из своего конфига ### Статус проекта FR24 - ✅ Step 1: стек + PostgreSQL - ✅ Step 2: реальный ADS-B через dump1090 - ✅ Step 3: Leaflet карта - ✅ Step 4: мониторинг + backup - ✅ Step 5: мониторинг дашборд (monitoring.html) - 🔜 Step 6: кластеризация маркеров (Leaflet.markercluster)", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 0.32212974429130553, "maxScore": 0.32212974429130553, "firstRecalledAt": "2026-04-26T07:04:02.188Z", "lastRecalledAt": "2026-04-26T07:04:02.188Z", "queryHashes": [ "f224f6a02885" ], "recallDays": [ "2026-04-26" ], "conceptTags": [ "backup", "3.11-slim", "tmp/ready", "dev-агент", "ads-b", "monitoring.html", "leaflet.markercluster", "pgrep" ] }, "memory:memory/2026-03-30.md:53:83": { "key": "memory:memory/2026-03-30.md:53:83", "path": "memory/2026-03-30.md", "startLine": 53, "endLine": 83, "source": "memory", "snippet": "- Аэропортовый трафик (низкие высоты) ловится плохо без внешней антенны - msgs: 1 у большинства → на краю зоны приёма ### Антенна - Оптимальная длина для 1090 МГц: **6.9 см** каждое плечо диполя - RTL-SDR Blog V4 поставил у окна - Для пром-решения нужна специализированная ADS-B антенна (FA или RTL-SDR Blog ADS-B) ### Технические нюансы - dump1090 из Dump1090-windows-exe-main НЕ работает с V4 напрямую (`modeS_init_RTLSDR(): rc: 1`) - `rtl_tcp.exe` из RTL-SDR Blog release — работает с V4 - Флаг `-g 49.6` ломает `rtl_adsb.exe` (0 бортов) - Правильный запуск: `rtl_adsb.exe` без флагов (автогейн) ### Бэклог нойзмэп (обновлён) - [ ] **RTL-SDR Blog V4 — пром решение** (новый пункт) — купить ADS-", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 0.3143289566040039, "maxScore": 0.3143289566040039, "firstRecalledAt": "2026-04-26T07:04:02.188Z", "lastRecalledAt": "2026-04-26T07:04:02.188Z", "queryHashes": [ "f224f6a02885" ], "recallDays": [ "2026-04-26" ], "conceptTags": [ "6.9", "rtl-sdr", "пром-решения", "ads-b", "dump1090-windows-exe-main", "modes-init-rtlsdr", "rtl-tcp.exe", "49.6" ] }, "memory:memory/2026-04-11.md:62:71": { "key": "memory:memory/2026-04-11.md:62:71", "path": "memory/2026-04-11.md", "startLine": 62, "endLine": 71, "source": "memory", "snippet": "- **Скрипты:** backup.sh, checker.sh, lib.sh, manager.sh, rollback.sh, session.sh, ssh_exec.sh, verify.sh + yaml_get.js - **Проверка Стрим (15:15 UTC):** ✅ синтаксис всех 8 bash-скриптов чистый, параметры.yaml читается, ключевые механизмы (force_lock, jq_compact через node, ssh_exec таймауты, checker 5 уровней) — всё корректно - **checker.sh выдаёт ошибки по секретам** — это нормально, `.env` ещё не заполнен (нужны MVA154_PASSWORD, RUVPN_SSH_KEY, HA_SSH_KEY, LOCALHOST_SUDO_PASS) ### Хосты в parameters.yaml: - `mva154` — по паролю (ssh key + sudo password) - `ruvpn-srv` — по SSH-ключу - `ha` — по SSH-ключу - `localhost` — localhost (sudo: false)", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 0.3638544976711273, "maxScore": 0.3638544976711273, "firstRecalledAt": "2026-04-26T10:54:35.677Z", "lastRecalledAt": "2026-04-26T10:54:35.677Z", "queryHashes": [ "b59ab7ef7777" ], "recallDays": [ "2026-04-26" ], "conceptTags": [ "backup", "backup.sh", "checker.sh", "lib.sh", "manager.sh", "rollback.sh", "session.sh", "ssh-exec.sh" ] }, "memory:memory/2026-05-02.md:107:142": { "key": "memory:memory/2026-05-02.md:107:142", "path": "memory/2026-05-02.md", "startLine": 107, "endLine": 142, "source": "memory", "snippet": "- [ ] Обновить онтологию для проекта enduro-trails ## Enduro Trails — ревью прототипа (12:53 UTC) - Слава попросил ревью — после серии горячих фиксов (clip_by_rect, y_coord_down, swap lat/lon) код запутан - TODO: провести полное ревью app.py и index.html # 2026-05-02 — Дневник ## Enduro Trails — отладка прототипа (утро) ### Что делали Долгая отладка карты грунтовок ЦФО на http://82.22.50.71:5558 ### Проблемы и решения #### 1. style.json не грузился (404 на /static/style.json) - Путь в index.html был `/static/style.json`, а сервер отдаёт `/style.json` - Исправлено: путь исправлен на `/style.json` #### 2. Шрифты — demotiles.maplibre.org отдавал 404 - MapLibre зависал при инициализации -", "recallCount": 3, "dailyCount": 0, "groundedCount": 0, "totalScore": 1.2756981656116755, "maxScore": 0.5344992920917779, "firstRecalledAt": "2026-05-04T06:57:05.721Z", "lastRecalledAt": "2026-05-17T18:52:48.191Z", "queryHashes": [ "af0cb8f00b60", "1feee93c2d26", "0d719d59a629" ], "recallDays": [ "2026-05-04", "2026-05-11", "2026-05-17" ], "conceptTags": [ "enduro-trails", "clip-by-rect", "y-coord-down", "lat/lon", "app.py", "index.html", "82.22.50.71", "style.json" ] }, "memory:memory/2026-05-02.md:86:117": { "key": "memory:memory/2026-05-02.md:86:117", "path": "memory/2026-05-02.md", "startLine": 86, "endLine": 117, "source": "memory", "snippet": "- \"Опять пляшут\" / \"Ещё как прыгают!!!\" — подтверждение что проблема не решена - Ключевое наблюдение Славы: **\"Треки же отражают дорогу, почему они смещаются\"** — треки из OSM должны идеально ложиться на OSM подложку ### Диагностика - Удаление `clip_by_rect` НЕ помогло — треки продолжали прыгать - Причина: без клиппинга геометрия выходит за `quantize_bounds`, координаты >4096 ломают MapLibre - **Найден корневой баг**: в WKB геометрии из БД координаты хранятся как `(lat, lon)`, а `wkb_to_coords()` читала их как `(lon, lat)`. Широта и долгота были перепутаны! ### Фикс (12:07 UTC) - В `wkb_to_coords()`: `lat, lon = struct.unpack_from('