1244 lines
64 KiB
JSON
1244 lines
64 KiB
JSON
{
|
||
"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('<dd', data, offset)` → `coords.append((lon, lat))` - Раньш",
|
||
"recallCount": 2,
|
||
"dailyCount": 0,
|
||
"groundedCount": 0,
|
||
"totalScore": 0.8601322346965201,
|
||
"maxScore": 0.49651338994897687,
|
||
"firstRecalledAt": "2026-05-04T06:57:05.721Z",
|
||
"lastRecalledAt": "2026-05-11T08:41:48.539Z",
|
||
"queryHashes": [
|
||
"af0cb8f00b60",
|
||
"1feee93c2d26"
|
||
],
|
||
"recallDays": [
|
||
"2026-05-04",
|
||
"2026-05-11"
|
||
],
|
||
"conceptTags": [
|
||
"clip-by-rect",
|
||
"quantize-bounds",
|
||
"wkb-to-coords",
|
||
"struct.unpack-from",
|
||
"coords.append",
|
||
"опять",
|
||
"пляшут",
|
||
"ещё"
|
||
]
|
||
},
|
||
"memory:memory/2026-05-03.md:1:36": {
|
||
"key": "memory:memory/2026-05-03.md:1:36",
|
||
"path": "memory/2026-05-03.md",
|
||
"startLine": 1,
|
||
"endLine": 36,
|
||
"source": "memory",
|
||
"snippet": "# 2026-05-03 — Дневник Стрим ## Enduro Trails — большой день ### Что сделали сегодня **Фикс путей и деплой:** - Исправлены абсолютные пути `/app.css`, `/app.js` → относительные в `index.html` - Карта заработала через HTTPS `https://openclaw.mva154.duckdns.org/enduro/` - Геолокация работает **Стиль карты:** - Тропы (path/footway/bridleway) → красный пунктир `#cc0000` - Слой `trails-asphalt` скрыт (visibility: none, opacity: 0) - Легенда обновлена: Lev1-2 / Lev3-5 / Тропа (асфальт убран) - Порядок легенды: Lev1-2 → Lev3-5 → Тропа - Раскраска треков: Lev1-2 жёлтый (#FFD700), Lev3-5 красный (#FF4400), толщина одинаковая - Подложка: raster-saturation -0.3, raster-contrast 0.2 (лучше читаются",
|
||
"recallCount": 3,
|
||
"dailyCount": 0,
|
||
"groundedCount": 0,
|
||
"totalScore": 1.2626513158045853,
|
||
"maxScore": 0.5520287429057207,
|
||
"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": [
|
||
"app.css",
|
||
"app.js",
|
||
"index.html",
|
||
"path/footway/bridleway",
|
||
"trails-asphalt",
|
||
"lev1-2",
|
||
"lev3-5",
|
||
"raster-saturation"
|
||
]
|
||
},
|
||
"memory:memory/2026-05-04.md:1:30": {
|
||
"key": "memory:memory/2026-05-04.md:1:30",
|
||
"path": "memory/2026-05-04.md",
|
||
"startLine": 1,
|
||
"endLine": 30,
|
||
"source": "memory",
|
||
"snippet": "# 2026-05-04 — Дневник Стрим ## Enduro Trails — Фаза 3 «Умный маршрут» ### Что делали Полная реализация Фазы 3: BRD, тест-кейсы, реализация, тестирование, баг-фиксы. ### Документы созданы - `tasks/enduro-trails/BRD_PHASE3.md` — бизнес-требования (6 фич, согласовано со Славой) - `tasks/enduro-trails/TEST_CASES_PHASE3.md` — 56 тест-кейсов - `tasks/enduro-trails/DEV_TASK_PHASE3.md` — ТЗ для Dev-агента - `tasks/ui-testing/PROJECT.md` — проект UI-тестирования (Playwright/Puppeteer на mva154) - `tasks/ui-testing/README.md` — как запустить - `tasks/ui-testing/tests/enduro-phase3.js` — 56 TC в Playwright-скрипте - `tasks/ui-testing/tests/template.js` — шаблон для новых проектов - `tasks/ui-testin",
|
||
"recallCount": 5,
|
||
"dailyCount": 0,
|
||
"groundedCount": 0,
|
||
"totalScore": 2.0317949286353816,
|
||
"maxScore": 0.5180976709974037,
|
||
"firstRecalledAt": "2026-05-05T05:03:32.115Z",
|
||
"lastRecalledAt": "2026-05-18T16:37:48.199Z",
|
||
"queryHashes": [
|
||
"14db74d1ec5d",
|
||
"6785ee533a29",
|
||
"6c00717ee483",
|
||
"1feee93c2d26",
|
||
"f76ea2796bbb"
|
||
],
|
||
"recallDays": [
|
||
"2026-05-05",
|
||
"2026-05-06",
|
||
"2026-05-11",
|
||
"2026-05-18"
|
||
],
|
||
"conceptTags": [
|
||
"тест-кейсы",
|
||
"баг-фиксы",
|
||
"бизнес-требования",
|
||
"тест-кейсов",
|
||
"dev-агента",
|
||
"tasks/ui-testing/project.md",
|
||
"ui-тестирования",
|
||
"playwright/puppeteer"
|
||
]
|
||
},
|
||
"memory:memory/2026-03-23.md:64:80": {
|
||
"key": "memory:memory/2026-03-23.md:64:80",
|
||
"path": "memory/2026-03-23.md",
|
||
"startLine": 64,
|
||
"endLine": 80,
|
||
"source": "memory",
|
||
"snippet": "- **Claude Sonnet:** создаёт текст с оптимальной пунктуацией, паузами, плавными формулировками, что лучше для TTS - **DeepSeek v3.2:** генерирует более компактный текст, менее выраженная структура предложений, что может приводить к искажениям при озвучивании - **Ключевой вывод:** Качество голосовых сообщений зависит не от самого синтеза речи, а от текста, который подаётся в TTS-движок - **Рекомендация:** Для задач, где важна качественная озвучка, использовать модели с более структурированным выводом (Claude Sonnet) ### Создание специализированного агента для оптимизации текста под TTS - 23 марта 17:09 - Слава предложил создать первого специализированного агента для формулирования текста, ид",
|
||
"recallCount": 1,
|
||
"dailyCount": 0,
|
||
"groundedCount": 0,
|
||
"totalScore": 0.40174805521965024,
|
||
"maxScore": 0.40174805521965024,
|
||
"firstRecalledAt": "2026-05-05T20:11:55.846Z",
|
||
"lastRecalledAt": "2026-05-05T20:11:55.846Z",
|
||
"queryHashes": [
|
||
"4c737bff00f4"
|
||
],
|
||
"recallDays": [
|
||
"2026-05-05"
|
||
],
|
||
"conceptTags": [
|
||
"v3.2",
|
||
"tts-движок",
|
||
"claude",
|
||
"sonnet",
|
||
"создаёт",
|
||
"текст",
|
||
"оптимальной",
|
||
"пунктуацией"
|
||
]
|
||
},
|
||
"memory:memory/2026-03-23.md:48:66": {
|
||
"key": "memory:memory/2026-03-23.md:48:66",
|
||
"path": "memory/2026-03-23.md",
|
||
"startLine": 48,
|
||
"endLine": 66,
|
||
"source": "memory",
|
||
"snippet": "### Расчёт экономии от использования специализированных агентов - 23 марта 16:59 - Слава попросил рассчитать экономию от использования группы специализированных агентов вместо одного универсального - Проведён расчёт на основе цен OpenRouter API: - Claude Sonnet 4.6: $3/$15 за 1M токенов (input/output) - Claude Haiku: $1/$5 за 1M токенов - Llama 4 Maverick: $0.15/$0.60 за 1M токенов - Gemini 2.0 Flash: $0.10/$0.40 за 1M токенов - Оценка ежедневного потребления: 105K input, 67K output токенов - Стоимость одной модели Sonnet: ~$1.32 в день - Стоимость команды специалистов: ~$0.69 в день - Экономия: 48% ($0.63 в день, $19 в месяц, $230 в год) - Дополнительные преимущества: повышение каче",
|
||
"recallCount": 1,
|
||
"dailyCount": 0,
|
||
"groundedCount": 0,
|
||
"totalScore": 0.3850157171487808,
|
||
"maxScore": 0.3850157171487808,
|
||
"firstRecalledAt": "2026-05-05T20:11:55.846Z",
|
||
"lastRecalledAt": "2026-05-05T20:11:55.846Z",
|
||
"queryHashes": [
|
||
"4c737bff00f4"
|
||
],
|
||
"recallDays": [
|
||
"2026-05-05"
|
||
],
|
||
"conceptTags": [
|
||
"router",
|
||
"4.6",
|
||
"input/output",
|
||
"0.15",
|
||
"0.60",
|
||
"2.0",
|
||
"0.10",
|
||
"0.40"
|
||
]
|
||
},
|
||
"memory:memory/2026-03-21.md:27:57": {
|
||
"key": "memory:memory/2026-03-21.md:27:57",
|
||
"path": "memory/2026-03-21.md",
|
||
"startLine": 27,
|
||
"endLine": 57,
|
||
"source": "memory",
|
||
"snippet": "- Ветер: тихий, северо-западный, около 0.5 м/с - Атмосферное давление: 750 мм рт. ст. - Прогноз на неделю: стабильное потепление, к 27 марта до +13°C ## Главные новости дня (21 марта 2026) 1. Ночью 21 марта силы ПВО сбили 27 беспилотников на подступах к Москве 2. Президент США Дональд Трамп заявил о невозможности перемирия с Ираном 3. Минфин США выпустил временную лицензию на экспорт иранской нефти до 19 апреля 4. Президент Сербии Александр Вучич предположил, что Третья мировая война уже началась 5. Итальянское издание L'Antidiplomatico пишет о выгодной геополитической позиции России ## Продуктивный день — итоги Сегодня сделали очень много. Среди ключевых достижений: - Создан и отлажен с",
|
||
"recallCount": 1,
|
||
"dailyCount": 0,
|
||
"groundedCount": 0,
|
||
"totalScore": 0.35461454987525937,
|
||
"maxScore": 0.35461454987525937,
|
||
"firstRecalledAt": "2026-05-08T11:29:28.323Z",
|
||
"lastRecalledAt": "2026-05-08T11:29:28.323Z",
|
||
"queryHashes": [
|
||
"352666518c7d"
|
||
],
|
||
"recallDays": [
|
||
"2026-05-08"
|
||
],
|
||
"conceptTags": [
|
||
"северо-западный",
|
||
"0.5",
|
||
"м/с",
|
||
"ветер",
|
||
"тихий",
|
||
"северо",
|
||
"западный",
|
||
"около"
|
||
]
|
||
},
|
||
"memory:memory/2026-05-02.md:1:36": {
|
||
"key": "memory:memory/2026-05-02.md:1:36",
|
||
"path": "memory/2026-05-02.md",
|
||
"startLine": 1,
|
||
"endLine": 36,
|
||
"source": "memory",
|
||
"snippet": "# 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 зависал при инициализации - Исправлено: переключили на `https://fonts.openmaptiles.org/{fontstack}/{range}.pbf` #### 3. Невалидный фильтр в style.json - `trails-path-bridleway` использовал expression синтаксис: `[\"in\", [\"get\", \"highway\"], \"literal\", [...]]` - MapLibre 4.x падал с ош",
|
||
"recallCount": 2,
|
||
"dailyCount": 0,
|
||
"groundedCount": 0,
|
||
"totalScore": 0.8769392380185487,
|
||
"maxScore": 0.5013019898600938,
|
||
"firstRecalledAt": "2026-05-11T08:41:48.539Z",
|
||
"lastRecalledAt": "2026-05-17T18:52:48.191Z",
|
||
"queryHashes": [
|
||
"1feee93c2d26",
|
||
"0d719d59a629"
|
||
],
|
||
"recallDays": [
|
||
"2026-05-11",
|
||
"2026-05-17"
|
||
],
|
||
"conceptTags": [
|
||
"82.22.50.71",
|
||
"style.json",
|
||
"static/style.json",
|
||
"index.html",
|
||
"demotiles.maplibre.org",
|
||
"fonts.openmaptiles.org",
|
||
"trails-path-bridleway",
|
||
"4.x"
|
||
]
|
||
},
|
||
"memory:memory/2026-05-02.md:168:201": {
|
||
"key": "memory:memory/2026-05-02.md:168:201",
|
||
"path": "memory/2026-05-02.md",
|
||
"startLine": 168,
|
||
"endLine": 201,
|
||
"source": "memory",
|
||
"snippet": "- SSH: `sshpass -p 'пароль' ssh node@82.22.50.71` (пароль в .env как MVA154_PASSWORD) - Контейнер: `docker exec enduro-trails ...` - app.py на сервере: `/app/app.py` внутри контейнера - Локальная копия: `/tmp/app_new.py` (актуальная версия) #### Ключевые файлы - `tasks/enduro-trails/prototype/static/style.json` — стили карты - `tasks/enduro-trails/prototype/static/index.html` — фронтенд - `/tmp/app_new.py` — актуальный app.py (нужно синхронизировать с workspace) ### Итоговое исправление (11:49 UTC) ✅ - Убран `clip_by_rect` в `build_mvt()` — треки отдаются целиком, MapLibre клипит на клиенте - `y_coord_down=True` в `mapbox_vector_tile.encode` сохранён - Слава подтвердил: треки перестали ска",
|
||
"recallCount": 1,
|
||
"dailyCount": 0,
|
||
"groundedCount": 0,
|
||
"totalScore": 0.4983071022156733,
|
||
"maxScore": 0.4983071022156733,
|
||
"firstRecalledAt": "2026-05-11T08:41:48.539Z",
|
||
"lastRecalledAt": "2026-05-11T08:41:48.539Z",
|
||
"queryHashes": [
|
||
"1feee93c2d26"
|
||
],
|
||
"recallDays": [
|
||
"2026-05-11"
|
||
],
|
||
"conceptTags": [
|
||
"82.22.50.71",
|
||
"mva154-password",
|
||
"enduro-trails",
|
||
"app.py",
|
||
"app/app.py",
|
||
"tmp/app-new.py",
|
||
"clip-by-rect",
|
||
"build-mvt"
|
||
]
|
||
},
|
||
"memory:memory/2026-05-02.md:196:227": {
|
||
"key": "memory:memory/2026-05-02.md:196:227",
|
||
"path": "memory/2026-05-02.md",
|
||
"startLine": 196,
|
||
"endLine": 227,
|
||
"source": "memory",
|
||
"snippet": "### Скриншоты от Славы - Прислал 2 пары скринов: z12.4 vs z11.8/12.0 — треки всё ещё смещаются при зуме - \"Опять пляшут\" / \"Ещё как прыгают!!!\" — подтверждение что проблема не решена - Ключевое наблюдение Славы: **\"Треки же отражают дорогу, почему они смещаются\"** — треки из OSM должны идеально ложиться на OSM подложку ### Диагностика - Удаление `clip_by_rect` НЕ помогло — треки продолжали прыгать - Причина: без клиппинга геометрия выходит за `quantize_bounds`, координаты >4096 ломают MapLibre - **Найден корневой баг**: в WKB геометрии из БД координаты хранятся как `(lat, lon)`, а `wkb_to_coords()` читала их как `(lon, lat)`. Широта и долгота были перепутаны! ### Фикс (12:07 UTC) - В `wkb_",
|
||
"recallCount": 1,
|
||
"dailyCount": 0,
|
||
"groundedCount": 0,
|
||
"totalScore": 0.48154737169778283,
|
||
"maxScore": 0.48154737169778283,
|
||
"firstRecalledAt": "2026-05-11T08:41:48.539Z",
|
||
"lastRecalledAt": "2026-05-11T08:41:48.539Z",
|
||
"queryHashes": [
|
||
"1feee93c2d26"
|
||
],
|
||
"recallDays": [
|
||
"2026-05-11"
|
||
],
|
||
"conceptTags": [
|
||
"z12.4",
|
||
"z11.8/12.0",
|
||
"clip-by-rect",
|
||
"quantize-bounds",
|
||
"wkb-to-coords",
|
||
"скриншоты",
|
||
"славы",
|
||
"прислал"
|
||
]
|
||
},
|
||
"memory:memory/2026-05-02.md:217:251": {
|
||
"key": "memory:memory/2026-05-02.md:217:251",
|
||
"path": "memory/2026-05-02.md",
|
||
"startLine": 217,
|
||
"endLine": 251,
|
||
"source": "memory",
|
||
"snippet": "- [ ] Синхронизировать app.py с workspace: `tasks/enduro-trails/prototype/app.py` - [ ] Обновить PROJECT.md и TASK.md для enduro-trails - [ ] Обновить онтологию для проекта enduro-trails ## Enduro Trails — ревью прототипа (12:53 UTC) - Слава попросил ревью — после серии горячих фиксов (clip_by_rect, y_coord_down, swap lat/lon) код запутан - TODO: провести полное ревью app.py и index.html --- ## Enduro Trails — полное ревью и план восстановления (13:07–13:57 UTC) ### Что сделано - Прочитаны все файлы прототипа: `app.py` (из контейнера), `docker-compose.yml`, `static/index.html`, `static/style.json`, `scripts/parse.py`, `scripts/download.sh` - Прочитаны требования: `TECHNICAL_SPEC.md`, `C",
|
||
"recallCount": 1,
|
||
"dailyCount": 0,
|
||
"groundedCount": 0,
|
||
"totalScore": 0.479680287886423,
|
||
"maxScore": 0.479680287886423,
|
||
"firstRecalledAt": "2026-05-11T08:41:48.539Z",
|
||
"lastRecalledAt": "2026-05-11T08:41:48.539Z",
|
||
"queryHashes": [
|
||
"1feee93c2d26"
|
||
],
|
||
"recallDays": [
|
||
"2026-05-11"
|
||
],
|
||
"conceptTags": [
|
||
"app.py",
|
||
"project.md",
|
||
"task.md",
|
||
"enduro-trails",
|
||
"clip-by-rect",
|
||
"y-coord-down",
|
||
"lat/lon",
|
||
"index.html"
|
||
]
|
||
},
|
||
"memory:memory/2026-05-12.md:48:80": {
|
||
"key": "memory:memory/2026-05-12.md:48:80",
|
||
"path": "memory/2026-05-12.md",
|
||
"startLine": 48,
|
||
"endLine": 80,
|
||
"source": "memory",
|
||
"snippet": "- Объяснила зачем нужна крышка-садж (крышка + сковорода в одном) — ответила голосовым ## Голосовые сообщения - Рабочая схема подтверждена: send_voice.sh → openclaw message send CLI → краткий текст с эмодзи - Без MEDIA: директивы, без [[audio_as_voice]] — не дублирует ## UI-Test Skill — создан и протестирован - Dev-агент создал скилл: scripts/health_check.js, parse_testcases.js, run_tests.js - Playwright + Chromium headless + vision-анализ скриншотов - Тесты на enduro-trails: загрузка карты ✅, переключение темы ✅ - Я дописала SKILL.md (документация — не код) - Селекторы: `#btn-theme` (тема), `#terrain-toggle` (рельеф) ## Terrain JS — баг найден и пофикшен - UI-тест обнаружил: кнопка 🏔️ ес",
|
||
"recallCount": 2,
|
||
"dailyCount": 0,
|
||
"groundedCount": 0,
|
||
"totalScore": 0.6406014525461395,
|
||
"maxScore": 0.3560984373092651,
|
||
"firstRecalledAt": "2026-05-13T05:20:38.705Z",
|
||
"lastRecalledAt": "2026-05-17T18:52:39.382Z",
|
||
"queryHashes": [
|
||
"3450b69f5041",
|
||
"f9f2da3eeeda"
|
||
],
|
||
"recallDays": [
|
||
"2026-05-13",
|
||
"2026-05-17"
|
||
],
|
||
"conceptTags": [
|
||
"крышка-садж",
|
||
"send-voice.sh",
|
||
"audio-as-voice",
|
||
"ui-test",
|
||
"dev-агент",
|
||
"scripts/health-check.js",
|
||
"parse-testcases.js",
|
||
"run-tests.js"
|
||
]
|
||
},
|
||
"memory:memory/2026-05-13.md:1:29": {
|
||
"key": "memory:memory/2026-05-13.md:1:29",
|
||
"path": "memory/2026-05-13.md",
|
||
"startLine": 1,
|
||
"endLine": 29,
|
||
"source": "memory",
|
||
"snippet": "# 2026-05-13 — Terrain UI фикс + генерация тайлов ## Что сделано ### Terrain UI баги (из UI-тестов) - **Попап terrain** — позиционирование исправлено (привязка к кнопке, а не top-right угол) - **Подписи чекбоксов** — были невидимы из-за отсутствия шрифтов в headless Chromium. Установлены Noto Sans в тестовое окружение. В реальном браузере подписи были видны всегда. - **\"Зум 10+\"** подсказка для hillshade — теперь вызывается при открытии попапа + стилизована заметно - **Переименование:** Гипсометрия → \"Высоты цветом\", Отмывка → \"Тени рельефа\" - **Opacity:** снижен с 0.85 → 0.65 для читаемости подписей населённых пунктов ### Генерация hypso тайлов - **Root cause пустых тайлов:** VRT создава",
|
||
"recallCount": 1,
|
||
"dailyCount": 0,
|
||
"groundedCount": 0,
|
||
"totalScore": 0.3777948200702667,
|
||
"maxScore": 0.3777948200702667,
|
||
"firstRecalledAt": "2026-05-14T06:09:32.459Z",
|
||
"lastRecalledAt": "2026-05-14T06:09:32.459Z",
|
||
"queryHashes": [
|
||
"6cb802fba72d"
|
||
],
|
||
"recallDays": [
|
||
"2026-05-14"
|
||
],
|
||
"conceptTags": [
|
||
"ui-тестов",
|
||
"top-right",
|
||
"из-за",
|
||
"0.85",
|
||
"0.65",
|
||
"terrain",
|
||
"фикс",
|
||
"генерация"
|
||
]
|
||
},
|
||
"memory:memory/2026-05-14.md:342:365": {
|
||
"key": "memory:memory/2026-05-14.md:342:365",
|
||
"path": "memory/2026-05-14.md",
|
||
"startLine": 342,
|
||
"endLine": 365,
|
||
"source": "memory",
|
||
"snippet": "Слава дал папку `tasks/multi-agent/proposal_v1/` — 10 файлов с полной спецификацией мультиагентной системы разработки ПО. Задача: подготовить BRD. ### Решения - **Orchestrator = детерминированный скрипт (FastAPI)**, не LLM. Чистая логика \"если X → Y\". - **Стрим = Analyst** (пишет BRD/ТЗ, координирует со Славой). НЕ оркестратор. - **Claude Code CLI на mva154** = исполнители (Architect, Developer, Reviewer, Tester) - **Plane** = витрина для Славы (webhooks → Orchestrator) - **Gitea** = source of truth + CI (Gitea Actions) - Architect и Tester — обязательны (Слава подтвердил) - Designer — вне скоупа пилота ### BRD создан - Файл: `tasks/multi-agent/BRD.md` - Статус: draft, дополнен по 10 расхо",
|
||
"recallCount": 3,
|
||
"dailyCount": 0,
|
||
"groundedCount": 0,
|
||
"totalScore": 1.0715084820985794,
|
||
"maxScore": 0.36145766377449035,
|
||
"firstRecalledAt": "2026-05-17T21:13:50.076Z",
|
||
"lastRecalledAt": "2026-05-23T21:53:58.665Z",
|
||
"queryHashes": [
|
||
"112b26aba744",
|
||
"b7964eddde53",
|
||
"3b4000a471d1"
|
||
],
|
||
"recallDays": [
|
||
"2026-05-17",
|
||
"2026-05-22",
|
||
"2026-05-23"
|
||
],
|
||
"conceptTags": [
|
||
"tasks/multi-agent/proposal-v1",
|
||
"brd/тз",
|
||
"tasks/multi-agent/brd.md",
|
||
"слава",
|
||
"дал",
|
||
"папку",
|
||
"tasks",
|
||
"multi"
|
||
]
|
||
},
|
||
"memory:memory/2026-03-23.md:108:132": {
|
||
"key": "memory:memory/2026-03-23.md:108:132",
|
||
"path": "memory/2026-03-23.md",
|
||
"startLine": 108,
|
||
"endLine": 132,
|
||
"source": "memory",
|
||
"snippet": "- **Ответы по искажению контекста:** - Использование attachments в sessions_spawn для передачи файлов и предыдущих сообщений - Дробление сложных задач на чёткие маленькие шаги - Чёткие инструкции в SOUL.md каждого агента - **Ответы по взаимодействию специалистов:** - Стандартный путь: через координатора (сохранение контроля) - Альтернатива: прямое общение через sessions_send (требует чётких протоколов) - Рекомендация: начинать с координатора, при необходимости оптимизировать - **Ответы по росту контекста и стоимости:** - Использование дешёвых моделей для координатора (Haiku, Gemini Flash) - Очистка контекста после завершения задач - Разбивка больших проектов на независимые",
|
||
"recallCount": 1,
|
||
"dailyCount": 0,
|
||
"groundedCount": 0,
|
||
"totalScore": 0.35524152517318724,
|
||
"maxScore": 0.35524152517318724,
|
||
"firstRecalledAt": "2026-05-21T11:19:53.713Z",
|
||
"lastRecalledAt": "2026-05-21T11:19:53.713Z",
|
||
"queryHashes": [
|
||
"1e4a90c9f728"
|
||
],
|
||
"recallDays": [
|
||
"2026-05-21"
|
||
],
|
||
"conceptTags": [
|
||
"sessions-spawn",
|
||
"soul.md",
|
||
"sessions-send",
|
||
"ответы",
|
||
"искажению",
|
||
"контекста",
|
||
"использование",
|
||
"attachments"
|
||
]
|
||
},
|
||
"memory:memory/2026-05-19.md:1:40": {
|
||
"key": "memory:memory/2026-05-19.md:1:40",
|
||
"path": "memory/2026-05-19.md",
|
||
"startLine": 1,
|
||
"endLine": 40,
|
||
"source": "memory",
|
||
"snippet": "# 2026-05-19 — Мультиагентный конвейер: шаги 1-5 ## Что сделано сегодня ### Шаг 1: Gitea Actions Runner ✅ - Runner уже был настроен (act_runner v0.2.11, systemd), но DNS проблема - Исправила: `[actions] ENABLED = true` в app.ini, переключила runner на localhost - CI работает: lint + test + build = success ### Шаг 2: Branch Protection ✅ - Настроена через Gitea API на main (enduro-trails) - Direct push запрещён, merge только через PR + green CI ### Шаг 3: Plane API ✅ - Создала API-токен через Plane API (admin) - 9 labels созданы (stage:*, back-to:*, escalation:*) - Workspace: `ag_proj`, 2 проекта видны ### Шаг 4: Orchestrator MVP ✅ - Dev-агент реализовал за ~9 минут - FastAPI + SQLite + w",
|
||
"recallCount": 1,
|
||
"dailyCount": 0,
|
||
"groundedCount": 0,
|
||
"totalScore": 0.37349730432033534,
|
||
"maxScore": 0.37349730432033534,
|
||
"firstRecalledAt": "2026-05-25T16:50:11.535Z",
|
||
"lastRecalledAt": "2026-05-25T16:50:11.535Z",
|
||
"queryHashes": [
|
||
"412bb2d62df7"
|
||
],
|
||
"recallDays": [
|
||
"2026-05-25"
|
||
],
|
||
"conceptTags": [
|
||
"1-5",
|
||
"act-runner",
|
||
"v0.2.11",
|
||
"app.ini",
|
||
"enduro-trails",
|
||
"api-токен",
|
||
"back-to",
|
||
"ag-proj"
|
||
]
|
||
},
|
||
"memory:memory/2026-03-30.md:1:35": {
|
||
"key": "memory:memory/2026-03-30.md:1:35",
|
||
"path": "memory/2026-03-30.md",
|
||
"startLine": 1,
|
||
"endLine": 35,
|
||
"source": "memory",
|
||
"snippet": "# Память: 30 марта 2026 ## OpenClaw конфигурация ### Провайдер claudeapi.pro - Добавлен провайдер `claudeapi` в `openclaw.json` → `models.providers.claudeapi` - baseUrl: `https://api.claudeapi.pro`, api: `anthropic-messages` - Ключ: `CLAUDEAPI_PRO_KEY` в `~/.openclaw/.env` - Модели: `claudeapi/claude-opus-4-6`, `claudeapi/claude-sonnet-4-6` - Текущая primary модель переключена на `claudeapi/claude-sonnet-4-6` (→ Opus после перезапуска) - Трафик идёт через Xray VLESS → Франкфурт (IP: 43.245.226.231, HOSTKEY B.V., DE) ### Xray VLESS в Docker - Настроен docker-compose с сервисом `xray` (image: `ghcr.io/xtls/xray-core:latest`) - Конфиг: `./xray-config.json` рядом с docker-compose.yml - VLESS",
|
||
"recallCount": 1,
|
||
"dailyCount": 0,
|
||
"groundedCount": 0,
|
||
"totalScore": 0.3508022129535675,
|
||
"maxScore": 0.3508022129535675,
|
||
"firstRecalledAt": "2026-05-25T19:46:00.806Z",
|
||
"lastRecalledAt": "2026-05-25T19:46:00.806Z",
|
||
"queryHashes": [
|
||
"21c5e68756b8"
|
||
],
|
||
"recallDays": [
|
||
"2026-05-25"
|
||
],
|
||
"conceptTags": [
|
||
"claudeapi.pro",
|
||
"openclaw.json",
|
||
"models.providers.claudeapi",
|
||
"api.claudeapi.pro",
|
||
"anthropic-messages",
|
||
"claudeapi-pro-key",
|
||
"claudeapi/claude-opus-4-6",
|
||
"claudeapi/claude-sonnet-4-6"
|
||
]
|
||
},
|
||
"memory:memory/2026-04-10.md:74:131": {
|
||
"key": "memory:memory/2026-04-10.md:74:131",
|
||
"path": "memory/2026-04-10.md",
|
||
"startLine": 74,
|
||
"endLine": 131,
|
||
"source": "memory",
|
||
"snippet": "QMD создавал `memory-root-main` с паттерном `**/*.md`, хотя OpenClaw ожидает `MEMORY.md`. Затем не мог создать `memory-alt-main` для того же пути. **Фикс:** вручную добавить `memory-alt-main` в `~/.openclaw/agents/main/qmd/xdg-config/qmd/index.yml`: ```yaml memory-alt-main: path: /home/node/.openclaw/workspace pattern: \"memory.md\" ``` После этого удалить sqlite и переиндексировать: ```bash rm ~/.openclaw/agents/main/qmd/xdg-cache/qmd/index.sqlite* openclaw memory index --force ``` ### Эмбеддинги - Модель: `embeddinggemma-300M-Q8_0.gguf` (~328MB, скачана) - Только CPU, без GPU → embed одного батча занимает 30+ минут - OpenClaw таймаутит на 120 сек и помечает Vector: unavailable, но ф",
|
||
"recallCount": 1,
|
||
"dailyCount": 0,
|
||
"groundedCount": 0,
|
||
"totalScore": 0.3957823187112808,
|
||
"maxScore": 0.3957823187112808,
|
||
"firstRecalledAt": "2026-05-25T19:49:57.306Z",
|
||
"lastRecalledAt": "2026-05-25T19:49:57.306Z",
|
||
"queryHashes": [
|
||
"8c383a590243"
|
||
],
|
||
"recallDays": [
|
||
"2026-05-25"
|
||
],
|
||
"conceptTags": [
|
||
"embedding",
|
||
"qmd",
|
||
"memory-root-main",
|
||
"memory.md",
|
||
"memory-alt-main",
|
||
"home/node",
|
||
"openclaw/workspace",
|
||
"embeddinggemma-300m-q8-0.gguf"
|
||
]
|
||
},
|
||
"memory:memory/2026-05-21.md:140:177": {
|
||
"key": "memory:memory/2026-05-21.md:140:177",
|
||
"path": "memory/2026-05-21.md",
|
||
"startLine": 140,
|
||
"endLine": 177,
|
||
"source": "memory",
|
||
"snippet": "- ✅ Уже делал задачи (ET-002 артефакты) ## Dev-агент: фикс критических багов (17:38-17:52) Dev-агент (run `624ca711`) выполнил все 5 фиксов: 1. ✅ git уже был в Dockerfile 2. ✅ GIT_AUTHOR_NAME/EMAIL = claude-bot в launcher.py 3. ✅ task_id передаётся в launch() и записывается в БД 4. ✅ Timeout watchdog (30 мин, kill -9) 5. ✅ Auto-advance в gitea.py: CI green → review, PR approved → testing, back-to:dev при request_changes Rebuild успешен: git v2.47.3 в контейнере, health OK. ## Dev-агент: Plane sync (18:00-18:55) Dev-агент (run `bad29612`) создал `src/plane_sync.py`, интегрировал в `webhooks/plane.py`. Таймаутнулся на `gitea.py` — дозавершила вручную. Результат: - ✅ `src/plane_sync.py` —",
|
||
"recallCount": 1,
|
||
"dailyCount": 0,
|
||
"groundedCount": 0,
|
||
"totalScore": 0.2760594550605954,
|
||
"maxScore": 0.2760594550605954,
|
||
"firstRecalledAt": "2026-05-26T05:29:25.926Z",
|
||
"lastRecalledAt": "2026-05-26T05:29:25.926Z",
|
||
"queryHashes": [
|
||
"e7d29a3a8d7b"
|
||
],
|
||
"recallDays": [
|
||
"2026-05-26"
|
||
],
|
||
"conceptTags": [
|
||
"et-002",
|
||
"dev-агент",
|
||
"38-17",
|
||
"git-author-name/email",
|
||
"claude-bot",
|
||
"launcher.py",
|
||
"task-id",
|
||
"auto-advance"
|
||
]
|
||
}
|
||
}
|
||
}
|