feat(gps-tracks): lower public-tracks minzoom to z5 (ET-012) #24

Merged
admin merged 6 commits from feature/ET-012-z5-z8 into main 2026-06-04 09:40:35 +03:00
Owner

Summary

  • Калибровка tier-таблиц build_gps_mvt / _simplify_coords (ADR-016) — публичные треки видны с z=5 (раньше с z=8).
  • На z<=5: min_length=10 км, limit=1500, DP-tolerance ~4 км; на z=6: min_length=5 км, limit=2000, tolerance ~2 км; z=7+ не меняется (регрессия).
  • Frontend: GPS_TRACKS_MIN_ZOOM=5, добавлены stops line-width/halo для z=5, hint «Зум 5+».

Тесты

  • 8 unit zoom-tier (UT-Z5/6/7/8/12) — REQ-F-09.
  • 10 unit simplify (UT-SIMP-*) — REQ-F-10.
  • 9 integration endpoint z5-z7 (IT-Z5/6/7, CACHE, REGRESS) — REQ-F-11/12.
  • 2 perf — REQ-F-13 (avg 64 ms, p95 89 ms при 500 треках; запас ×3 к бюджету M-6).
  • Полный прогон pytest: 231 passed, 4 deselected (network+perf).
  • JS-тесты (node --test): passed.
  • ruff src/api: clean.

Контракт

  • API /api/gps-tracks/* не меняется (REQ-F-15).
  • localStorage-ключи, миграции БД, конфиги не трогаются (REQ-F-16, F-18).
  • z>=8 поведение не изменилось — регрессия покрыта IT-REGRESS-Z8-01 и IT-REGRESS-Z10-01.

Test plan

  • pytest tests/ — 231 passed.
  • pytest -m perf tests/performance/ — 2 passed, avg/p95 в бюджете.
  • node --test tests/web tests/unit — JS-тесты passed.
  • ruff check src/api — clean.
  • После merge — ручная проверка REQ-F-19 (test-среда openclaw.mva154.duckdns.org/enduro/): открыть слой, zoom=5, размер MVT тайла ≤ 200 KB.
  • Playwright UI-тесты по 04b-ui-test-cases.md (TC-UI-01..TC-UI-12-Z5-Q).

Refs: ET-012
ADR: docs/work-items/ET-012/06-adr/ADR-016-z5-tiling-policy.md

🤖 Generated with Claude Code

## Summary - Калибровка tier-таблиц build_gps_mvt / _simplify_coords (ADR-016) — публичные треки видны с z=5 (раньше с z=8). - На z<=5: min_length=10 км, limit=1500, DP-tolerance ~4 км; на z=6: min_length=5 км, limit=2000, tolerance ~2 км; z=7+ не меняется (регрессия). - Frontend: GPS_TRACKS_MIN_ZOOM=5, добавлены stops line-width/halo для z=5, hint «Зум 5+». ## Тесты - ✅ 8 unit zoom-tier (UT-Z5/6/7/8/12) — REQ-F-09. - ✅ 10 unit simplify (UT-SIMP-*) — REQ-F-10. - ✅ 9 integration endpoint z5-z7 (IT-Z5/6/7, CACHE, REGRESS) — REQ-F-11/12. - ✅ 2 perf — REQ-F-13 (avg 64 ms, p95 89 ms при 500 треках; запас ×3 к бюджету M-6). - ✅ Полный прогон pytest: 231 passed, 4 deselected (network+perf). - ✅ JS-тесты (node --test): passed. - ✅ ruff src/api: clean. ## Контракт - API /api/gps-tracks/* не меняется (REQ-F-15). - localStorage-ключи, миграции БД, конфиги не трогаются (REQ-F-16, F-18). - z>=8 поведение не изменилось — регрессия покрыта IT-REGRESS-Z8-01 и IT-REGRESS-Z10-01. ## Test plan - [x] pytest tests/ — 231 passed. - [x] pytest -m perf tests/performance/ — 2 passed, avg/p95 в бюджете. - [x] node --test tests/web tests/unit — JS-тесты passed. - [x] ruff check src/api — clean. - [ ] После merge — ручная проверка REQ-F-19 (test-среда openclaw.mva154.duckdns.org/enduro/): открыть слой, zoom=5, размер MVT тайла ≤ 200 KB. - [ ] Playwright UI-тесты по 04b-ui-test-cases.md (TC-UI-01..TC-UI-12-Z5-Q). Refs: ET-012 ADR: docs/work-items/ET-012/06-adr/ADR-016-z5-tiling-policy.md 🤖 Generated with [Claude Code](https://claude.com/claude-code)
admin added 4 commits 2026-06-04 09:30:31 +03:00
docs: init ET-012 business request
All checks were successful
CI / lint (push) Successful in 4s
CI / test (push) Successful in 6s
CI / build (push) Successful in 3s
afbdb56c44
analyst(ET): auto-commit from analyst run_id=72
All checks were successful
CI / lint (push) Successful in 5s
CI / test (push) Successful in 7s
CI / build (push) Successful in 2s
eb9adbc930
architect(ET): auto-commit from architect run_id=73
All checks were successful
CI / lint (push) Successful in 4s
CI / test (push) Successful in 7s
CI / build (push) Successful in 2s
c7d472023f
feat(gps-tracks): lower public-tracks minzoom to z5 (ET-012)
All checks were successful
CI / lint (push) Successful in 5s
CI / test (push) Successful in 9s
CI / build (push) Successful in 2s
CI / lint (pull_request) Successful in 4s
CI / test (pull_request) Successful in 10s
CI / build (pull_request) Successful in 3s
bbed0e1082
Калибровка существующих tier-таблиц `build_gps_mvt` /
`_simplify_coords` (ADR-016), чтобы при первом открытии карты
пользователь видел общее покрытие сети треков, а не пустую подложку.

Backend (src/api/gps_tracks/mvt.py):
- build_gps_mvt: добавлены тиры z<=5 (min_length=10 км, limit=1500)
  и z=6 (5 км / 2000); z=7+ — без изменений (регрессия).
- _simplify_coords: tolerance для z=6 = 0.018° (~2 км),
  для z<=5 = 0.04° (~4 км); z=7+ не меняется.

Frontend:
- GPS_TRACKS_MIN_ZOOM понижен с 8 до 5; vector-source.minzoom
  подхватывает константу автоматически.
- line-width / halo получили stop на z=5 (0.8 / 1.8 CSS-px),
  чтобы линия была читаема на любом DPR.
- Hint #public-tracks-zoom-hint: «Зум 8+» → «Зум 5+».

Тесты:
- 8 unit zoom-tier (UT-Z5/6/7/8/12) — REQ-F-09.
- 10 unit simplify (UT-SIMP-*) — REQ-F-10.
- 9 integration endpoint z5-z7 (IT-Z5/6/7, CACHE, REGRESS) — REQ-F-11/12.
- 2 perf (PERF-Z5-01/02; avg ~64 ms, p95 ~89 ms при 500 треках —
  ниже бюджета 200/500 ms по M-6) — REQ-F-13.
  Маркер @pytest.mark.perf, не в основном CI-gate.

Контракт API /api/gps-tracks* не меняется (REQ-F-15);
localStorage-ключи и конфиги тоже (REQ-F-16, F-18).

Refs: ET-012
ADR: docs/work-items/ET-012/06-adr/ADR-016-z5-tiling-policy.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
admin added 1 commit 2026-06-04 09:34:33 +03:00
reviewer(ET): auto-commit from reviewer run_id=75
All checks were successful
CI / lint (push) Successful in 4s
CI / lint (pull_request) Successful in 5s
CI / test (push) Successful in 11s
CI / build (push) Successful in 2s
CI / test (pull_request) Successful in 10s
CI / build (pull_request) Successful in 2s
e5122a540b
admin added 1 commit 2026-06-04 09:40:02 +03:00
tester(ET): auto-commit from tester run_id=76
All checks were successful
CI / lint (push) Successful in 4s
CI / lint (pull_request) Successful in 4s
CI / test (push) Successful in 10s
CI / build (push) Successful in 3s
CI / test (pull_request) Successful in 10s
CI / build (pull_request) Successful in 3s
31cb47a7a2
admin merged commit 8da09e6df5 into main 2026-06-04 09:40:35 +03:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: admin/enduro-trails#24