Все пункты задачи сверены с текущим dev. Два из них уже исправлены прошлыми PR: ParticipantInput и комментарий canModify в MatchDetailPage.tsx. Остальные закрыты здесь. Поведение приложения не меняется.
Методы входа:config.py, .env.example, telegram.py, dev_stub.py, dev_auth.py, login.py. Логин/пароль и Telegram есть везде, stub — только в development; establish_session вызывают все четыре пути входа.
admin_login.py — решение владельца: только комментарий. Вместо «строже игроцкого» описаны реальные лимиты: те же 5 / 20 / 50 за 15 минут, а при успехе снимаются все счётчики, включая IP.
security.client_ip: реальный адрес за VPS уже подставляет uvicorn (--proxy-headers + --forwarded-allow-ips).
Подсказки деплоя:
run.ps1/run.sh — на ПК build-push, на Pi docker compose up -d;
docker-compose.yml:24-25 — build: нужен только для сборки на ПК;
.env.example — build-push.ps1;
Caddyfile — туннель-контейнер вместо autossh.
ratelimit.py ссылается на core/events.py вместо отсутствующего в репозитории CLAUDE.md.
Удалены:
scripts/export-prod.sh — решение владельца: деплой только через реестр. Вместе с ним ушли блок export-ignore в .gitattributes (нормализация LF осталась) и упоминания в README;
неиспользуемый backend/app/db/init_db.py;
случайно закоммиченный файл h -u origin dev….
Коммиты
ec1e941 Чистка: устаревшие комментарии и подсказки, export-скрипт, мусорный файл
Проверки
pytest — 221 passed: удалённый init_db никто не импортировал.
grep по старым формулировкам («Telegram+ник», «только telegram», «единственный метод входа», «не-production», «строже игроцкого», «autossh», «export-prod», init_db) в коде ничего не находит. up -d --build остался только у docker-compose.temp.yml, где локальная сборка и нужна.
## Что сделано
Все пункты задачи сверены с текущим `dev`. Два из них уже исправлены прошлыми PR: `ParticipantInput` и комментарий `canModify` в `MatchDetailPage.tsx`. Остальные закрыты здесь. Поведение приложения не меняется.
- **Методы входа:** `config.py`, `.env.example`, `telegram.py`, `dev_stub.py`, `dev_auth.py`, `login.py`. Логин/пароль и Telegram есть везде, stub — только в `development`; `establish_session` вызывают все четыре пути входа.
- **`admin_login.py`** — решение владельца: только комментарий. Вместо «строже игроцкого» описаны реальные лимиты: те же 5 / 20 / 50 за 15 минут, а при успехе снимаются все счётчики, включая IP.
- **`security.client_ip`:** реальный адрес за VPS уже подставляет uvicorn (`--proxy-headers` + `--forwarded-allow-ips`).
- **Подсказки деплоя:**
- `run.ps1`/`run.sh` — на ПК `build-push`, на Pi `docker compose up -d`;
- `docker-compose.yml:24-25` — `build:` нужен только для сборки на ПК;
- `.env.example` — `build-push.ps1`;
- `Caddyfile` — туннель-контейнер вместо autossh.
- **`ratelimit.py`** ссылается на `core/events.py` вместо отсутствующего в репозитории CLAUDE.md.
- **Удалены:**
- `scripts/export-prod.sh` — решение владельца: деплой только через реестр. Вместе с ним ушли блок `export-ignore` в `.gitattributes` (нормализация LF осталась) и упоминания в README;
- неиспользуемый `backend/app/db/init_db.py`;
- случайно закоммиченный файл `h -u origin dev…`.
## Коммиты
- `ec1e941` Чистка: устаревшие комментарии и подсказки, export-скрипт, мусорный файл
## Проверки
- `pytest` — 221 passed: удалённый `init_db` никто не импортировал.
- `docker compose config -q` — ок.
- `run.ps1` — 0 не-ASCII байт, 0 управляющих символов.
- `grep` по старым формулировкам («Telegram+ник», «только telegram», «единственный метод входа», «не-production», «строже игроцкого», «autossh», «export-prod», `init_db`) в коде ничего не находит. `up -d --build` остался только у `docker-compose.temp.yml`, где локальная сборка и нужна.
## Отклонения от плана
Нет.
Closes #70
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01LqSoRj99iwVEH5U5fnZgsd
Комментарии про методы входа приведены к факту (логин/пароль и Telegram везде,
stub только в development): config.py, .env.example, telegram.py, dev_stub.py,
dev_auth.py, login.py. admin_login.py больше не обещает «строже игроцкого» —
описаны реальные лимиты; client_ip — адрес за прокси уже даёт uvicorn.
Подсказки деплоя: run.ps1/run.sh (build-push на ПК, `up -d` на Pi), compose,
.env.example (build-push.ps1), Caddyfile (туннель-контейнер вместо autossh);
ratelimit.py ссылается на core/events.py вместо CLAUDE.md.
Удалены неиспользуемые scripts/export-prod.sh (с блоком export-ignore в
.gitattributes и упоминаниями в README), db/init_db.py и случайно закоммиченный
файл «h -u origin dev…». #70
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.
Что сделано
Все пункты задачи сверены с текущим
dev. Два из них уже исправлены прошлыми PR:ParticipantInputи комментарийcanModifyвMatchDetailPage.tsx. Остальные закрыты здесь. Поведение приложения не меняется.config.py,.env.example,telegram.py,dev_stub.py,dev_auth.py,login.py. Логин/пароль и Telegram есть везде, stub — только вdevelopment;establish_sessionвызывают все четыре пути входа.admin_login.py— решение владельца: только комментарий. Вместо «строже игроцкого» описаны реальные лимиты: те же 5 / 20 / 50 за 15 минут, а при успехе снимаются все счётчики, включая IP.security.client_ip: реальный адрес за VPS уже подставляет uvicorn (--proxy-headers+--forwarded-allow-ips).run.ps1/run.sh— на ПКbuild-push, на Pidocker compose up -d;docker-compose.yml:24-25—build:нужен только для сборки на ПК;.env.example—build-push.ps1;Caddyfile— туннель-контейнер вместо autossh.ratelimit.pyссылается наcore/events.pyвместо отсутствующего в репозитории CLAUDE.md.scripts/export-prod.sh— решение владельца: деплой только через реестр. Вместе с ним ушли блокexport-ignoreв.gitattributes(нормализация LF осталась) и упоминания в README;backend/app/db/init_db.py;h -u origin dev….Коммиты
ec1e941Чистка: устаревшие комментарии и подсказки, export-скрипт, мусорный файлПроверки
pytest— 221 passed: удалённыйinit_dbникто не импортировал.docker compose config -q— ок.run.ps1— 0 не-ASCII байт, 0 управляющих символов.grepпо старым формулировкам («Telegram+ник», «только telegram», «единственный метод входа», «не-production», «строже игроцкого», «autossh», «export-prod»,init_db) в коде ничего не находит.up -d --buildостался только уdocker-compose.temp.yml, где локальная сборка и нужна.Отклонения от плана
Нет.
Closes #70
🤖 Generated with Claude Code
https://claude.ai/code/session_01LqSoRj99iwVEH5U5fnZgsd