После #23 рейтингов у игрока два: общий (по всем партиям приложения) и групповой (только по партиям группы, отдельная цепочка со своим K). Это неинтуитивно:
у одного игрока одновременно разные числа в профиле и в группе;
непонятно, какое изменение показывает история партий (#77);
опытный игрок в новой группе считается новичком (K = 64 по партиям внутри группы);
рейтинги разных групп несравнимы, и незнакомым людям не видно, против кого они играют.
Решение владельца (2026-09-15)
Рейтинг один и общий везде: групповая цепочка убирается.
Главная и профиль — общие показатели (игры, победы, винрейт, среднее место — по всем партиям).
Страница группы — показатели группы (игры, победы, винрейт, среднее место — по партиям этой группы), рейтинг — общий.
Что сделать
Бэкенд: убрать групповую цепочку. Список игроков группы (текущие участники, #76) показывает групповые игры/победы/винрейт/среднее место и общий рейтинг; порядок — по общему рейтингу.
Статус «Новичок» (неподтверждённый рейтинг, меньше MIN_GAMES) — по общему числу партий, раз рейтинг общий.
Участники, не игравшие в группе, остаются в блоке «Ещё не играли», но с общим рейтингом, если он у них есть.
Главная: блок «Активная группа» — рейтинг в ответе общий (игры/победы в нём по группе — это блок о группе).
Справка: вместо «Общий и групповой рейтинг» — пояснение, что рейтинг единый, а на странице группы остальные показатели групповые.
Документ docs/rating/rating-system.md, раздел 8 «Расчёт» (там записаны две цепочки) и раздел 9 — отметить решение.
Тесты: групповая цепочка → единый рейтинг в группе; ветеран в новой группе не новичок.
Что ломается
Числа рейтинга на странице группы меняются: вместо группового показывается общий. Данные не трогаются, миграции нет.
Обнаружено при обсуждении #76/#77.
## Проблема
После #23 рейтингов у игрока два: общий (по всем партиям приложения) и групповой (только по партиям группы, отдельная цепочка со своим K). Это неинтуитивно:
- у одного игрока одновременно разные числа в профиле и в группе;
- непонятно, какое изменение показывает история партий (#77);
- опытный игрок в новой группе считается новичком (K = 64 по партиям внутри группы);
- рейтинги разных групп несравнимы, и незнакомым людям не видно, против кого они играют.
## Решение владельца (2026-09-15)
- **Рейтинг один и общий везде**: групповая цепочка убирается.
- **Главная и профиль** — общие показатели (игры, победы, винрейт, среднее место — по всем партиям).
- **Страница группы** — показатели группы (игры, победы, винрейт, среднее место — по партиям этой группы), рейтинг — общий.
## Что сделать
- [ ] Бэкенд: убрать групповую цепочку. Список игроков группы (текущие участники, #76) показывает групповые игры/победы/винрейт/среднее место и **общий** рейтинг; порядок — по общему рейтингу.
- [ ] Статус «Новичок» (неподтверждённый рейтинг, меньше `MIN_GAMES`) — по общему числу партий, раз рейтинг общий.
- [ ] Участники, не игравшие в группе, остаются в блоке «Ещё не играли», но с общим рейтингом, если он у них есть.
- [ ] Главная: блок «Активная группа» — рейтинг в ответе общий (игры/победы в нём по группе — это блок о группе).
- [ ] Справка: вместо «Общий и групповой рейтинг» — пояснение, что рейтинг единый, а на странице группы остальные показатели групповые.
- [ ] Документ `docs/rating/rating-system.md`, раздел 8 «Расчёт» (там записаны две цепочки) и раздел 9 — отметить решение.
- [ ] Тесты: групповая цепочка → единый рейтинг в группе; ветеран в новой группе не новичок.
## Что ломается
Числа рейтинга на странице группы меняются: вместо группового показывается общий. Данные не трогаются, миграции нет.
Обнаружено при обсуждении #76/#77.
Agent
added this to the v1.5 — изменение системы подсчёта рейтинга milestone 2026-09-15 00:10:46 +03:00
Групповая цепочка убирается: рейтинг везде берётся из одного проигрывания всей истории.
Список игроков группы (текущие участники): игры, победы, винрейт и среднее место — по партиям группы; рейтинг — общий. Порядок — по общему рейтингу.
Ранжированный или «Новичок» — по общему числу партий: статус описывает надёжность рейтинга, а он общий. Опытный игрок в новой группе не новичок.
«Ещё не играли» (0 партий в группе) показывают общий рейтинг, если он есть. Чтобы цвет (золото/серебро) был верным и там, в строку топа добавляется признак rating_confirmed.
Главная: блок «Активная группа» — игры/победы по группе, рейтинг общий. Профиль уже целиком общий.
Справка: карточка «Общий и групповой рейтинг» заменяется пояснением про единый рейтинг. В документе рейтинга — разделы 8 и 9.
Тесты: в группе score равен общему, а игры групповые; ветеран в новой группе ранжирован; не игравший в группе показан с общим рейтингом.
Критерии готовности
Рейтинг в группе, на главной и в профиле одинаковый.
Показатели в группе — групповые, на главной и в профиле — общие.
pytest и npm run build зелёные.
Ветка:issue-80-single-rating от dev
## План выполнения
1. Групповая цепочка убирается: рейтинг везде берётся из одного проигрывания всей истории.
2. Список игроков группы (текущие участники): игры, победы, винрейт и среднее место — по партиям группы; рейтинг — общий. Порядок — по общему рейтингу.
3. Ранжированный или «Новичок» — по **общему** числу партий: статус описывает надёжность рейтинга, а он общий. Опытный игрок в новой группе не новичок.
4. «Ещё не играли» (0 партий в группе) показывают общий рейтинг, если он есть. Чтобы цвет (золото/серебро) был верным и там, в строку топа добавляется признак `rating_confirmed`.
5. Главная: блок «Активная группа» — игры/победы по группе, рейтинг общий. Профиль уже целиком общий.
6. Справка: карточка «Общий и групповой рейтинг» заменяется пояснением про единый рейтинг. В документе рейтинга — разделы 8 и 9.
7. Тесты: в группе `score` равен общему, а игры групповые; ветеран в новой группе ранжирован; не игравший в группе показан с общим рейтингом.
**Критерии готовности**
- Рейтинг в группе, на главной и в профиле одинаковый.
- Показатели в группе — групповые, на главной и в профиле — общие.
- `pytest` и `npm run build` зелёные.
**Ветка:** `issue-80-single-rating` от `dev`
Итог: рейтинг у игрока один. На странице группы игры, победы, винрейт и среднее место — по партиям группы, рейтинг и статус «Новичок» — общие. Главная и профиль — общие показатели. Справка и документ рейтинга обновлены. Проверки:
pytest — 193 passed;
gen:api и npm run build — зелёные;
HTTP на копии dev-БД: рейтинг в группе совпадает с общим топом у всех игроков.
Вёрстка в браузере не проверена: расширение Chrome не подключено. Статус:Status/In Review Осталось за вами: ревью и мёрж PR — задача закроется автоматически.
Работа выполнена, открыт PR: https://gitea.arseniev.info/NotBigGhost/ForbiddenStarsApp/pulls/81
**Итог:** рейтинг у игрока один. На странице группы игры, победы, винрейт и среднее место — по партиям группы, рейтинг и статус «Новичок» — общие. Главная и профиль — общие показатели. Справка и документ рейтинга обновлены.
**Проверки:**
- `pytest` — 193 passed;
- `gen:api` и `npm run build` — зелёные;
- HTTP на копии dev-БД: рейтинг в группе совпадает с общим топом у всех игроков.
Вёрстка в браузере не проверена: расширение Chrome не подключено.
**Статус:** `Status/In Review`
**Осталось за вами:** ревью и мёрж PR — задача закроется автоматически.
В PR #81 добавлен коммит 1e04f13 — исправление «пустых» партий в профиле Ivan.
Причина 1. Dev-удаление аккаунта оставило партии 2, 3, 6, 7 с единственным участником. Они считались играми с ΔR 0.0, показывались в истории и получили last_standing из бэкфилла 0014. Теперь партия меньше чем с двумя участниками не попадает ни в рейтинг, ни в истории и списки (админка её видит). Бэкфилл 0014 требует хотя бы двух участников. Причина 2. «Партия не найдена» — это 403 для зрителя, который не состоит в группе партии. Страница теперь так и пишет. Проверки:
pytest — 194 passed;
npm run build — зелёный;
на копии dev-БД партий 6 и 7 в истории Ivan больше нет.
Статус:Status/In Review
В PR https://gitea.arseniev.info/NotBigGhost/ForbiddenStarsApp/pulls/81 добавлен коммит `1e04f13` — исправление «пустых» партий в профиле Ivan.
**Причина 1.** Dev-удаление аккаунта оставило партии 2, 3, 6, 7 с единственным участником. Они считались играми с ΔR 0.0, показывались в истории и получили `last_standing` из бэкфилла 0014. Теперь партия меньше чем с двумя участниками не попадает ни в рейтинг, ни в истории и списки (админка её видит). Бэкфилл 0014 требует хотя бы двух участников.
**Причина 2.** «Партия не найдена» — это 403 для зрителя, который не состоит в группе партии. Страница теперь так и пишет.
**Проверки:**
- `pytest` — 194 passed;
- `npm run build` — зелёный;
- на копии dev-БД партий 6 и 7 в истории Ivan больше нет.
**Статус:** `Status/In Review`
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.
Проблема
После #23 рейтингов у игрока два: общий (по всем партиям приложения) и групповой (только по партиям группы, отдельная цепочка со своим K). Это неинтуитивно:
Решение владельца (2026-09-15)
Что сделать
MIN_GAMES) — по общему числу партий, раз рейтинг общий.docs/rating/rating-system.md, раздел 8 «Расчёт» (там записаны две цепочки) и раздел 9 — отметить решение.Что ломается
Числа рейтинга на странице группы меняются: вместо группового показывается общий. Данные не трогаются, миграции нет.
Обнаружено при обсуждении #76/#77.
План выполнения
rating_confirmed.scoreравен общему, а игры групповые; ветеран в новой группе ранжирован; не игравший в группе показан с общим рейтингом.Критерии готовности
pytestиnpm run buildзелёные.Ветка:
issue-80-single-ratingотdevРабота выполнена, открыт PR: #81
Итог: рейтинг у игрока один. На странице группы игры, победы, винрейт и среднее место — по партиям группы, рейтинг и статус «Новичок» — общие. Главная и профиль — общие показатели. Справка и документ рейтинга обновлены.
Проверки:
pytest— 193 passed;gen:apiиnpm run build— зелёные;Вёрстка в браузере не проверена: расширение Chrome не подключено.
Статус:
Status/In ReviewОсталось за вами: ревью и мёрж PR — задача закроется автоматически.
В PR #81 добавлен коммит
1e04f13— исправление «пустых» партий в профиле Ivan.Причина 1. Dev-удаление аккаунта оставило партии 2, 3, 6, 7 с единственным участником. Они считались играми с ΔR 0.0, показывались в истории и получили
last_standingиз бэкфилла 0014. Теперь партия меньше чем с двумя участниками не попадает ни в рейтинг, ни в истории и списки (админка её видит). Бэкфилл 0014 требует хотя бы двух участников.Причина 2. «Партия не найдена» — это 403 для зрителя, который не состоит в группе партии. Страница теперь так и пишет.
Проверки:
pytest— 194 passed;npm run build— зелёный;Статус:
Status/In Review