В истории партий профиля (свой и чужой профиль) на каждой карточке теперь видно, сколько общего рейтинга владелец профиля получил или потерял за партию.
API.GET /api/users/{id}/matches отдаёт у каждой партии rating_delta — ΔR владельца истории в общей цепочке, с одним знаком после запятой. Поле есть в обоих режимах, включая «лучшую партию». История и рейтинг считаются одним проигрыванием на запрос. В списке партий группы (/api/groups/{id}/matches) поле пустое: там непонятно, чья это была бы дельта.
Компактная карточка: второй строкой «Рейтинг: +12.3».
Подробная карточка (MatchListView): последней строкой, только когда дельта есть. У списка группы ничего не меняется.
Формат: всегда со знаком, минус типографский (formatRatingDelta); рост — зелёным, падение — красным, 0.0 — без цвета. Один знак после запятой, как в примерах справки: целое число съедало бы типичные изменения опытных игроков.
Коммиты
6f54e0f История: изменение рейтинга на карточках партий профиля
Проверки
.\.venv\Scripts\python.exe -m pytest — 190 passed. Новый тест:
дуэль новичков даёт +32/−32 в обеих историях, реванш — обратные знаки;
сумма изменений сходится с рейтингом;
в списке группы дельты нет;
режим «лучшая» её отдаёт.
npm run gen:api + npm run build — зелёные.
HTTP-проверка на копии dev-БД: у игрока с 10 партиями все дельты заполнены (есть и 0.0); 1500 + сумма = 1465.1 при рейтинге 1465; в списке партий группы все rating_delta = null.
Не проверено: вёрстка карточек в браузере — расширение Chrome не подключено. Стоит посмотреть обе карточки на ширине телефона.
Отклонения от плана
Нет. Строка вынесена в маленький компонент RatingDelta, общий для компактной и подробной карточки.
## Что сделано
В истории партий профиля (свой и чужой профиль) на каждой карточке теперь видно, сколько общего рейтинга владелец профиля получил или потерял за партию.
- **API.** `GET /api/users/{id}/matches` отдаёт у каждой партии `rating_delta` — ΔR владельца истории в общей цепочке, с одним знаком после запятой. Поле есть в обоих режимах, включая «лучшую партию». История и рейтинг считаются одним проигрыванием на запрос. В списке партий группы (`/api/groups/{id}/matches`) поле пустое: там непонятно, чья это была бы дельта.
- **Компактная карточка:** второй строкой «Рейтинг: +12.3».
- **Подробная карточка** (`MatchListView`): последней строкой, только когда дельта есть. У списка группы ничего не меняется.
- **Формат:** всегда со знаком, минус типографский (`formatRatingDelta`); рост — зелёным, падение — красным, `0.0` — без цвета. Один знак после запятой, как в примерах справки: целое число съедало бы типичные изменения опытных игроков.
## Коммиты
- `6f54e0f` История: изменение рейтинга на карточках партий профиля
## Проверки
- `.\.venv\Scripts\python.exe -m pytest` — **190 passed**. Новый тест:
- дуэль новичков даёт +32/−32 в обеих историях, реванш — обратные знаки;
- сумма изменений сходится с рейтингом;
- в списке группы дельты нет;
- режим «лучшая» её отдаёт.
- `npm run gen:api` + `npm run build` — зелёные.
- HTTP-проверка на копии dev-БД: у игрока с 10 партиями все дельты заполнены (есть и `0.0`); `1500 + сумма = 1465.1` при рейтинге `1465`; в списке партий группы все `rating_delta = null`.
- **Не проверено:** вёрстка карточек в браузере — расширение Chrome не подключено. Стоит посмотреть обе карточки на ширине телефона.
## Отклонения от плана
Нет. Строка вынесена в маленький компонент `RatingDelta`, общий для компактной и подробной карточки.
Closes #77
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01LqSoRj99iwVEH5U5fnZgsd
GET /users/{id}/matches отдаёт у каждой партии rating_delta — изменение
общего рейтинга владельца истории за неё (один знак после запятой), в обоих
режимах, включая «лучшую партию»; история и рейтинг считаются одним
проигрыванием. В списке партий группы поле пустое: там непонятно, чья это
дельта.
Фронт: компактная карточка истории — второй строкой «Рейтинг: +12.3»,
подробная (MatchListView) — последней строкой, только когда дельта есть.
Рост — зелёным, падение — красным, минус типографский (formatRatingDelta).
schema.d.ts перегенерирован.
Тест: дуэль новичков ±32 в обеих историях, реванш с обратными знаками,
сумма изменений сходится с рейтингом, в списке группы дельты нет, режим
«лучшая» её отдаёт. #77
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LqSoRj99iwVEH5U5fnZgsd
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Что сделано
В истории партий профиля (свой и чужой профиль) на каждой карточке теперь видно, сколько общего рейтинга владелец профиля получил или потерял за партию.
GET /api/users/{id}/matchesотдаёт у каждой партииrating_delta— ΔR владельца истории в общей цепочке, с одним знаком после запятой. Поле есть в обоих режимах, включая «лучшую партию». История и рейтинг считаются одним проигрыванием на запрос. В списке партий группы (/api/groups/{id}/matches) поле пустое: там непонятно, чья это была бы дельта.MatchListView): последней строкой, только когда дельта есть. У списка группы ничего не меняется.formatRatingDelta); рост — зелёным, падение — красным,0.0— без цвета. Один знак после запятой, как в примерах справки: целое число съедало бы типичные изменения опытных игроков.Коммиты
6f54e0fИстория: изменение рейтинга на карточках партий профиляПроверки
.\.venv\Scripts\python.exe -m pytest— 190 passed. Новый тест:npm run gen:api+npm run build— зелёные.0.0);1500 + сумма = 1465.1при рейтинге1465; в списке партий группы всеrating_delta = null.Отклонения от плана
Нет. Строка вынесена в маленький компонент
RatingDelta, общий для компактной и подробной карточки.Closes #77
🤖 Generated with Claude Code
https://claude.ai/code/session_01LqSoRj99iwVEH5U5fnZgsd
GET /users/{id}/matches отдаёт у каждой партии rating_delta — изменение общего рейтинга владельца истории за неё (один знак после запятой), в обоих режимах, включая «лучшую партию»; история и рейтинг считаются одним проигрыванием. В списке партий группы поле пустое: там непонятно, чья это дельта. Фронт: компактная карточка истории — второй строкой «Рейтинг: +12.3», подробная (MatchListView) — последней строкой, только когда дельта есть. Рост — зелёным, падение — красным, минус типографский (formatRatingDelta). schema.d.ts перегенерирован. Тест: дуэль новичков ±32 в обеих историях, реванш с обратными знаками, сумма изменений сходится с рейтингом, в списке группы дельты нет, режим «лучшая» её отдаёт. #77 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LqSoRj99iwVEH5U5fnZgsd