Files
wiki/memory/2026-04-24.md
2026-04-24 14:00:01 +03:00

58 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2026-04-24 — Memory Flush (pre-compaction)
## FR24 Noisemap Project — состояние на 2026-04-21
### Что сделано
- DDL: `origin_icao`/`destination_icao` VARCHAR(5)→VARCHAR(20) в `flight_tracks_fa`
- `fa_worker.py`: `_icao_or_none()` фильтрует координаты
- `build_mart.py`: словарь `AIRLINE_IATA_TO_ICAO`, конвертация callsign, числовой матч по `ident_iata`
- Фикс `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 (pid=1222822) — статус не подтверждён
- Яндекс backfill 06-19.04 — rate limit 429, статус сброса неизвестен
### Open TODOs (на момент compaction)
1. DDL: добавить `orig_iata VARCHAR(5)` и `dest_iata VARCHAR(5)` в `fr24_ext.flight_actual` — ждёт окончания fr24_run3
2. Задеплоить обновлённый `fr24_worker.py` в fr24-tracks-fr24 (с сохранением orig_iata/dest_iata)
3. Задеплоить обновлённый `main.py` в fr24-api (с fallback маршрута из FA IATA-кодов)
4. Обновить `routeStr()` в `schedule.js`: fallback на `fa_orig_iata`/`fa_dest_iata` (IATA → city lookup)
5. Добавить `conn.rollback()` в error handler `main.py` fr24-api (aborted transaction bug)
6. Проверить маппинг полей: FR24 API → `orig_icao` (не `origin_icao`), `reg` (не `registration`)
7. Яндекс backfill 06-19.04 (429 rate limit, ждёт сброса ~01:00 UTC)
8. Пересборка Docker образов (docker compose build) для устойчивого деплоя
### Key Decisions
- **Приоритет маршрута в UI**: 1й — `thread_title` Яндекса, 2й — IATA-коды FR24 (`orig_iata`/`dest_iata`) через IATA_CITY
- **FR24 API поля**: `operating_as` (не `operated_as`), `orig_icao`, `orig_iata`, `dest_icao`, `dest_iata`, `reg` (не `registration`)
- **supplement_schedule()**: INSERT рейсов из flight_actual которых нет в Яндекс-расписании, source='fr24'
- **Деплой**: docker cp → docker restart (или compose up -d для пересборки из файлов на хосте)
- **Explorer лимит**: 20 записей/запрос, offset-пагинация работает; ~4500 кредитов/день за все рейсы
### Инфраструктура
- VM: `fr24@192.168.2.67:22` via ProxyCommand `vpn-srv``185.130.212.192:3322`
- SSH key: `/home/node/.openclaw/ha_ssh_key`
- Postgres: host=`postgres`(172.18.0.2), dbname=`fr24`, user=`fr24`, password=`change-me`
- Compose: `/home/fr24/projects/fr24/compose/docker-compose.yml`
- Исходники на VM: `/home/fr24/projects/fr24/`
- Workspace: `/home/node/.openclaw/workspace/tasks/flightradar24/`
- Reports: `/home/node/.openclaw/workspace/tasks/flightradar24/reports/`
- FR24 credits: ~44 811 (промо до 31.05.2026)
- **FR24 API key (новый, 24.04.2026):** `019dbf18-3575-71d0-84eb-eb44606fbb63|QU3h8jqLPFyuo9qbQbPu9uoXVK42bTeclMuyRJ5Qb86ba0ea`
- Старый ключ: `MVM0hi4S7RRh7Dm4EOl1ShpDPc8CrmITXT2LY5y4dd84a62a` (деактивирован)
- Контейнеры: fr24-postgres, fr24-api(:8080), fr24-mart, fr24-tracks-fr24(:8001), fr24-tracks-fa, fr24-schedule, fr24-preprocess, fr24-capture, fr24-monitoring, fr24-backup
### Файлы
- `fr24_worker.py`: `/home/node/.openclaw/workspace/tasks/flightradar24/ingest/tracks_fr24/fr24_worker.py`
- `main.py` (API): `/home/node/.openclaw/workspace/tasks/flightradar24/frontend/main.py`
- `schedule.js`: `/home/node/.openclaw/workspace/tasks/flightradar24/frontend/static/schedule.js`
- `schedule.html`: `/home/node/.openclaw/workspace/tasks/flightradar24/frontend/static/schedule.html`
- `build_mart.py`: `/home/node/.openclaw/workspace/tasks/flightradar24/ingest/mart/build_mart.py`