fix(frontend): sort completed races and show pace scale #49

Merged
admin merged 4 commits from agent/runners-calendar:fix/races-order-and-pace-scale into main 2026-08-13 20:31:03 +00:00
Collaborator

Изменения:

  • завершённые старты на /races сортируются от ранних к поздним;
  • шкала графика прогресса переведена на темп мин/км с нулём сверху;
  • рядом с заголовками списков отображается серое количество стартов.

Проверки:

  • frontend: npm run build — успешно;
  • backend: npm run build — успешно;
  • backend: npm test — блокируется существующим конфликтом Node 24/tsx с top-level await в CJS.
Изменения: - завершённые старты на /races сортируются от ранних к поздним; - шкала графика прогресса переведена на темп мин/км с нулём сверху; - рядом с заголовками списков отображается серое количество стартов. Проверки: - frontend: npm run build — успешно; - backend: npm run build — успешно; - backend: npm test — блокируется существующим конфликтом Node 24/tsx с top-level await в CJS.
agent added 1 commit 2026-08-13 15:44:10 +00:00
fix(frontend): sort completed races and show pace scale
Some checks failed
CI / build-and-test (pull_request) Has been cancelled
880d57dc59
Author
Collaborator

Review: есть 1 blocking finding.

  • frontend/src/pages/DashboardPage.tsx:306-309: после перевода PaceTrendChart на темп внешний контекст страницы остался про время: aria-label="Динамика времени...", заголовок Прогресс по времени, описание выше — лучше время. Это противоречит новой оси и вводит в заблуждение, в том числе пользователей скринридеров. Обновить на темп (Прогресс по темпу, Темп, мин/км, выше — лучше темп/меньше мин/км).

Проверено: завершённые старты принудительно сортируются через sortByDateAsc; темп считается как секунды / км; reverse: true + min: 0 задают ноль сверху; счётчики серые и доступны; frontend 0.9.4, footer уже показывает версии; frontend/backend build проходят. Backend npm test не запускается из-за существующей Node 24/tsx ошибки top-level await в CJS; frontend-тестов в проекте нет. Diff lean, новых зависимостей/лишних абстракций нет.

Review: есть 1 blocking finding. - `frontend/src/pages/DashboardPage.tsx:306-309`: после перевода `PaceTrendChart` на темп внешний контекст страницы остался про время: `aria-label="Динамика времени..."`, заголовок `Прогресс по времени`, описание `выше — лучше время`. Это противоречит новой оси и вводит в заблуждение, в том числе пользователей скринридеров. Обновить на темп (`Прогресс по темпу`, `Темп, мин/км`, `выше — лучше темп/меньше мин/км`). Проверено: завершённые старты принудительно сортируются через `sortByDateAsc`; темп считается как секунды / км; `reverse: true` + `min: 0` задают ноль сверху; счётчики серые и доступны; frontend 0.9.4, footer уже показывает версии; frontend/backend build проходят. Backend `npm test` не запускается из-за существующей Node 24/tsx ошибки top-level await в CJS; frontend-тестов в проекте нет. Diff lean, новых зависимостей/лишних абстракций нет.
Author
Collaborator

Re-review текущего head 880d57d: blocking finding остаётся. frontend/src/pages/DashboardPage.tsx:306-309 всё ещё называет новый pace-график Динамика времени / Прогресс по времени и сообщает выше — лучше время; нужно обновить видимый и aria-текст на темп (мин/км). Остальной diff корректен, git diff --check чист, frontend/backend build проходят. PR пока не approve.

Re-review текущего head `880d57d`: blocking finding остаётся. `frontend/src/pages/DashboardPage.tsx:306-309` всё ещё называет новый pace-график `Динамика времени` / `Прогресс по времени` и сообщает `выше — лучше время`; нужно обновить видимый и aria-текст на темп (мин/км). Остальной diff корректен, `git diff --check` чист, frontend/backend build проходят. PR пока не approve.
agent added 1 commit 2026-08-13 15:53:38 +00:00
fix(frontend): describe pace progress correctly
Some checks failed
CI / build-and-test (pull_request) Has been cancelled
186accdcfb
Author
Collaborator

Independent re-review of current PR head 186accd.

Previous blocker: RESOLVED. DashboardPage now consistently describes the section as pace progress, including the aria-label, heading, and explanatory text.

No new blocking findings. Checked:

  • /races completed starts are forced through sortByDateAsc (earliest to latest); visible counts match the filtered upcoming/completed lists and use the muted gray token.
  • Pace is calculated as finish seconds / race distance in km; the numeric Y axis uses reverse: true and min: 0, so slower pace is lower and 0 is higher; axis/tooltip labels and Dashboard copy are consistent.
  • TypeScript/AG Charts types compile; frontend version is 0.9.4 and the footer still exposes client/server versions.
  • Accessibility: semantic headings, labeled distance select, chart aria-label, and keyboard-enabled chart remain intact.
  • git diff --check is clean; frontend production build passes. Backend npm test remains blocked by the pre-existing tsx/CJS top-level-await failure in backend/test/setup.ts; this PR does not touch it, and the frontend has no test script.

Verdict: APPROVE - no blocking findings.

Independent re-review of current PR head 186accd. Previous blocker: RESOLVED. DashboardPage now consistently describes the section as pace progress, including the aria-label, heading, and explanatory text. No new blocking findings. Checked: - /races completed starts are forced through sortByDateAsc (earliest to latest); visible counts match the filtered upcoming/completed lists and use the muted gray token. - Pace is calculated as finish seconds / race distance in km; the numeric Y axis uses reverse: true and min: 0, so slower pace is lower and 0 is higher; axis/tooltip labels and Dashboard copy are consistent. - TypeScript/AG Charts types compile; frontend version is 0.9.4 and the footer still exposes client/server versions. - Accessibility: semantic headings, labeled distance select, chart aria-label, and keyboard-enabled chart remain intact. - git diff --check is clean; frontend production build passes. Backend npm test remains blocked by the pre-existing tsx/CJS top-level-await failure in backend/test/setup.ts; this PR does not touch it, and the frontend has no test script. Verdict: APPROVE - no blocking findings.
agent added 1 commit 2026-08-13 16:02:28 +00:00
docs: record race and pace chart changes
Some checks failed
CI / build-and-test (pull_request) Has been cancelled
69cfd3bf3e
Author
Collaborator

Independent final review of PR #49 at head 69cfd3b.

Verdict: no blocking findings.

Checked the complete main...69cfd3b diff, including CHANGELOG.md:

  • /races completed starts are sorted earliest to latest via sortByDateAsc; counts are shown beside both list headings and mobile tabs using the muted gray token.
  • Pace chart uses finish seconds / distance km; the numeric Y axis has reverse: true and min: 0, with labels and Dashboard copy consistently describing pace in min/km and 0 at the top.
  • Frontend version is 0.9.4 in package.json and package-lock.json; footer version display remains present.
  • TypeScript check and production frontend build pass; git diff --check is clean.
  • Accessibility remains covered by semantic headings, labeled distance select, chart aria-label, and keyboard-enabled chart.
  • No frontend test script or new tests exist; backend npm test remains blocked by the pre-existing CJS/top-level-await failure in backend/test/setup.ts, outside this PR.

Previous finding #404 (DashboardPage still described time) is resolved in 186accd and rechecked in the current full diff. No new regressions, security issues, or unnecessary complexity found.

Independent final review of PR #49 at head 69cfd3b. Verdict: no blocking findings. Checked the complete main...69cfd3b diff, including CHANGELOG.md: - /races completed starts are sorted earliest to latest via sortByDateAsc; counts are shown beside both list headings and mobile tabs using the muted gray token. - Pace chart uses finish seconds / distance km; the numeric Y axis has reverse: true and min: 0, with labels and Dashboard copy consistently describing pace in min/km and 0 at the top. - Frontend version is 0.9.4 in package.json and package-lock.json; footer version display remains present. - TypeScript check and production frontend build pass; git diff --check is clean. - Accessibility remains covered by semantic headings, labeled distance select, chart aria-label, and keyboard-enabled chart. - No frontend test script or new tests exist; backend npm test remains blocked by the pre-existing CJS/top-level-await failure in backend/test/setup.ts, outside this PR. Previous finding #404 (DashboardPage still described time) is resolved in 186accd and rechecked in the current full diff. No new regressions, security issues, or unnecessary complexity found.
Author
Collaborator

Independent final review of PR #49 at head 69cfd3b.

Verdict: no blocking findings.

Checked the complete main...69cfd3b diff, including CHANGELOG.md:

  • /races completed starts are sorted earliest to latest via sortByDateAsc; counts are shown beside both list headings and mobile tabs using the muted gray token.
  • Pace chart uses finish seconds / distance km; the numeric Y axis has reverse: true and min: 0, with labels and Dashboard copy consistently describing pace in min/km and 0 at the top.
  • Frontend version is 0.9.4 in package.json and package-lock.json; footer version display remains present.
  • TypeScript check and production frontend build pass; git diff --check is clean.
  • Accessibility remains covered by semantic headings, labeled distance select, chart aria-label, and keyboard-enabled chart.
  • No frontend test script or new tests exist; backend npm test remains blocked by the pre-existing CJS/top-level-await failure in backend/test/setup.ts, outside this PR.

Previous finding #404 (DashboardPage still described time) is resolved in 186accd and rechecked in the current full diff. No new regressions, security issues, or unnecessary complexity found.

Independent final review of PR #49 at head 69cfd3b. Verdict: no blocking findings. Checked the complete main...69cfd3b diff, including CHANGELOG.md: - /races completed starts are sorted earliest to latest via sortByDateAsc; counts are shown beside both list headings and mobile tabs using the muted gray token. - Pace chart uses finish seconds / distance km; the numeric Y axis has reverse: true and min: 0, with labels and Dashboard copy consistently describing pace in min/km and 0 at the top. - Frontend version is 0.9.4 in package.json and package-lock.json; footer version display remains present. - TypeScript check and production frontend build pass; git diff --check is clean. - Accessibility remains covered by semantic headings, labeled distance select, chart aria-label, and keyboard-enabled chart. - No frontend test script or new tests exist; backend npm test remains blocked by the pre-existing CJS/top-level-await failure in backend/test/setup.ts, outside this PR. Previous finding #404 (DashboardPage still described time) is resolved in 186accd and rechecked in the current full diff. No new regressions, security issues, or unnecessary complexity found.
agent added 1 commit 2026-08-13 20:30:17 +00:00
merge: resolve PR 49 against main
Some checks failed
CI / build-and-test (pull_request) Has been cancelled
9cde2ec55f
admin merged commit 36c2042da5 into main 2026-08-13 20:31:03 +00: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/runners-calendar#49