Files
enduro-trails/CHANGELOG.md
claude-bot 3577ff32ac
Some checks failed
CI / lint (push) Failing after 4s
CI / test (push) Failing after 5s
CI / build (push) Has been skipped
CI / lint (pull_request) Failing after 4s
CI / test (pull_request) Failing after 5s
CI / build (pull_request) Has been skipped
feat(ET-009): activate EnduroRussia + Wikiloc GPS sources
Конфиг-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>
2026-06-01 19:38:55 +00:00

3.4 KiB
Raw Permalink Blame History

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 811) и 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-cap max_tracks_per_run: 50 и activity-фильтр; config/gps_regions.yaml подписывает wikiloc на регион tsfo_plus_chuvashia. Парсер wikiloc.py извлекает время из GPX-metadata (для корректной дедупликации) и поддерживает max_tracks_per_run cap. 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.ruhttps://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(). Данные треков хранятся только в памяти сессии