Конфиг-only активация двух новых источников GPS-треков поверх pipeline ET-008. Не вводит новых компонентов, БД-таблиц, endpoint'ов. Config: - config/gps_sources.yaml: enduro_russia enabled=true, base_url исправлен на endurorussia.ru (без дефиса); добавлена запись wikiloc с max_tracks_per_run=50, activity_filter=[motorcycle, enduro]. - config/gps_regions.yaml: wikiloc добавлен в tsfo_plus_chuvashia.sources. Parser: - wikiloc.py: добавлен soft-cap max_tracks_per_run в collect(), извлечение created_at из GPX metadata/первого trkpt — для корректной межисточниковой дедупликации с EnduroRussia. UI (src/web/gps_tracks.js): - GPS_SOURCE_COLORS: добавлен цвет wikiloc (#4363d8). - Дефолтный фильтр sources включает wikiloc. - GPS_SOURCE_ATTRIBUTIONS: маппинг source_id → строка атрибуции; _updateGpsAttribution() подтягивает /api/gps-tracks/health и выставляет attribution с теми источниками, у которых tracks > 0. - _buildGpsFiltersUI: чекбокс «Wikiloc» в #gps-source-grid. Tests: - Fixtures: 7 файлов в tests/fixtures/gps-tracks/. - Unit: 10 UT-ER + 10 UT-WL — парсеры, MAPPING, bbox-фильтр, pagination, 429/403 graceful-stop, rate-limit, max_tracks_per_run. - Integration: IT-ER-01, IT-WL-01, IT-WL-02, IT-DEDUP-01, IT-LIC-01 через scripts.gps_collect.main + httpx.MockTransport. - Contract: 2 CT-ER с маркером @pytest.mark.network (nightly only). - JS: 2 новых теста на наличие wikiloc в SOURCE_COLORS и в фильтрах. Linters/Tests: ruff clean (новые файлы), 166 pytest passed, 24 JS-tests passed. Refs: ET-009 Acceptance: AC-01..AC-08, AC-14..AC-17 (для AC-09..AC-13 — продакшн-прогон) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.4 KiB
Changelog
All notable changes to this project will be documented in this file. Format: Keep a Changelog
[v0.0.1] — 2026-06-01
Added
- ET-008: GPS-треки с публичных платформ на карте — новый модуль
src/web/gps_tracks.jsс отображением публичных GPS-треков (OSM Traces, enduro_russia, ttrails) в виде MVT-тайлов (z 8–11) и GeoJSON (z ≥ 12); фильтрация по активности и источнику, попап с мета-данными трека, z-order ниже личных GPX-треков (AC-10). Backend: FastAPI-пакетsrc/api/gps_tracks/(endpoint, MVT, LRU-кэш, дедупликация), миграцияmigrations/gps_tracks_001_init.sql, pipeline-скриптscripts/gps_collect.py, Docker-сервисgps-collector. PR #12, tag v0.0.1.
[Unreleased]
Added
- ET-009: Активация GPS-источников EnduroRussia и Wikiloc —
config/gps_sources.yamlвключает оба источника (enabled: true), для Wikiloc добавлен soft-capmax_tracks_per_run: 50и activity-фильтр;config/gps_regions.yamlподписываетwikilocна регионtsfo_plus_chuvashia. Парсерwikiloc.pyизвлекает время из GPX-metadata (для корректной дедупликации) и поддерживаетmax_tracks_per_runcap. UI: цветwikiloc, чекбокс источника, динамическая атрибуция (GPS_SOURCE_ATTRIBUTIONS) подтягивается с/api/gps-tracks/health. Тесты: 10 unit ER + 10 unit WL + 5 integration + 2 contract (nightly only).
Fixed
-
ET-009: исправлен URL
enduro_russiaвconfig/gps_sources.yaml(https://enduro-russia.ru→https://endurorussia.ru, без дефиса). -
Initial project structure
-
CLAUDE.md project passport
-
Agent system prompts (architect, developer, reviewer, tester, deployer)
-
CI pipeline (Gitea Actions)
-
Docker configuration
-
ET-002: чекбокс «POI» в попапе рельефа — показ/скрытие маркеров POI с сохранением состояния в localStorage (ключ
poi-visible) -
ET-005: переключатель единиц измерения расстояний (км/мили) в попапе рельефа — новый модуль
src/web/units.jsс централизованным форматтеромUnits.formatDistance(); выбор сохраняется в localStorage (ключdistance_unit), пересчёт всех видимых расстояний выполняется единым оркестратором по событиюunitchange -
ET-006: загрузка и визуализация GPX-треков — новый модуль
src/web/gpx.jsс клиентским парсингом GPX 1.1 (DOMParser, чанковая конвертация), отрисовкой треков и waypoints на карте, панелью#sheet-gpxсо списком треков, статистикой и canvas-профилем высот; GPX-слои восстанавливаются после смены стиля карты черезrebuildMapOverlays(). Данные треков хранятся только в памяти сессии