Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

🎯 [Хвост] Веб: сервер, API и адаптеры — 72 находки по файлам

Open
#1,001 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
playwright, python

Research direction

Start with docs/audit/2026-08-10-full-roles.md (§ 5 and § 5-bis), then review the listed web files, especially src/stepik_grader/web/api_routes.py. Resolve which web-to-core rule applies by comparing ADR-0010 with web-contracts.md:258, and use tests/e2e/ to run the browser scenarios, including the untested playground and trace. Done means every finding has a merged PR or a documented rejection, and the uncovered endpoints and sections have been exercised in a real browser.

Written by the indexing model from the issue text.

Description

area/web audit difficulty/medium

Хвост аудита 2026-08-10 по направлению. Полные формулировки, доказательства и репро — в документе:
docs/audit/2026-08-10-full-roles.md (§ 5 и § 5-бис). Эпик хвоста: #995

72 находки: 0 high · 15 medium · 57 low. Все верифицированы скептиками.

Файл Находок h/m/l ID находок
src/stepik_grader/web/api_routes.py 29 0/7/22 LNCH-4-02 · REV-3-02 · SEC-1-01 · SEC-1-03 · SEC-3-01 · SET-2-01 · STR2-2-07 · ARCH-2-02 · ARCH-2-06 · CNC-2-03 · CNC-2-05 · FZZ-4-03 · FZZ-4-04 · FZZ-4-05 · LNCH-4-03 · LNCH-5-04 · LNG-2-03 · MTX-10-03 · MTX-2-04 · PAIR-2-05 · RUN-3-05 · RUN-3-07 · SEC-1-02 · SEC-1-05 · SET-2-04 · SET-2-05 · SET-3-04 · SET-3-06 · TW-3-01
src/stepik_grader/web/viewmodels.py 11 0/2/9 ARCH-2-01 · RUN-3-01 · ARCH-2-07 · CNC-3-03 · JRN-3B-04 · LNCH-3-07 · PERF-1-06 · RUN-3-02 · SET-3-05 · TW-1-01 · TW-2-04
src/stepik_grader/web/runs.py 7 0/1/6 RUN-3-03 · CNC-2-01 · CNC-2-02 · CNC-2-04 · CNC-3-01 · RUN-3-06 · SEC-3-03
src/stepik_grader/web/server.py 6 0/0/6 CANON-5-06 · JRN-4B-04 · LNCH-2-05 · LNCH-4-04 · LNG-3-03 · SEC-1-04
src/stepik_grader/web/settings_adapter.py 4 0/0/4 ADD-1-05 · ADD-1-06 · LNCH-3-06 · SET-2-07
src/stepik_grader/web/http_guards.py 3 0/0/3 FZZ-4-01 · FZZ-4-02 · RUN-3-04
src/stepik_grader/web/downloader_adapter.py 2 0/0/2 ADD-1-02 · JRN-3B-03
src/stepik_grader/web/feedback_adapter.py 2 0/0/2 ADD-4-06 · ADD-4-07
src/stepik_grader/web/glossary_adapter.py 2 0/1/1 ADD-1-03 · INS-1-02
src/stepik_grader/web/reference_adapter.py 2 0/1/1 ADD-1-01 · ADD-1-04
src/stepik_grader/web/auth_adapter.py 1 0/0/1 JRN-3B-02
src/stepik_grader/web/grading.py 1 0/0/1 ARCH-2-03
src/stepik_grader/web/i18n.py 1 0/0/1 ED-2-05
src/stepik_grader/web/rules_adapter.py 1 0/0/1 ADD-1-07

С чего начинать

api_routes.py держит 29 находок из 72 — сорок процентов направления в одном файле. Внутри две группы, которые стоит развести:

  • согласие и приватность (REV-3-02, SEC-1-, SET-2-): веб-путь AI-подсказки проверяет булев флаг согласия, но не получателя, — то есть согласие, данное одному адресату, работает для любого. Это же вернувшийся дефект SECD-02, закрытый только в CLI (см. #987);
  • конкурентность и состояние прогонов (CNC-2-, CNC-3-, RUN-3-*): гонки при параллельных запросах, зависания без пути восстановления.

ARCH-2-* — отдельная тема: граница web→core. ADR-0010 объявляет фасад web/grading, но web-contracts.md:258 описывает уже отменённое правило, а код местами ходит в core напрямую. Прежде чем чинить точечно, стоит определить, какое правило действует.

Важная оговорка о полноте

Браузер не открывался ни разу. Критики прогонной фазы установили: на 4875 строк фронтенд-кода пришлось 2 находки из прогона, остальное — чтение и curl. Из примерно 24 эндпоинтов не вызывались семь; playground и пошаговый трейс не запускались вовсе.

Поэтому направление не считается проверенным, пока не пройден сценарий в реальном браузере. Инструменты для этого в проекте есть — 33 сценария Playwright в tests/e2e/.

Критерий приёмки

Каждая находка либо закрыта PR, либо явно отклонена с причиной. Отдельно: непокрытые эндпоинты и разделы (playground, трейс) должны быть пройдены в браузере, а не только запросом.

Чек-лист по файлам

Группами, а не по одной находке: их 74, и список из семидесяти четырёх строк
нечитаем. Галочка ставится тем же заходом, что и мерж закрывающего PR, и
называет исход — номер PR либо причину отклонения.

  • src/stepik_grader/web/api_routes.py — 29 (0/7/22): LNCH-4-02 · REV-3-02 · SEC-1-01 · SEC-1-03 · SEC-3-01 · SET-2-01 · STR2-2-07 · ARCH-2-02 · ARCH-2-06 · CNC-2-03 · CNC-2-05 · FZZ-4-03 · FZZ-4-04 · FZZ-4-05 · LNCH-4-03 · LNCH-5-04 · LNG-2-03 · MTX-10-03 · MTX-2-04 · PAIR-2-05 · RUN-3-05 · RUN-3-07 · SEC-1-02 · SEC-1-05 · SET-2-04 · SET-2-05 · SET-3-04 · SET-3-06 · TW-3-01
  • src/stepik_grader/web/viewmodels.py — 11 (0/2/9): ARCH-2-01 · RUN-3-01 · ARCH-2-07 · CNC-3-03 · JRN-3B-04 · LNCH-3-07 · PERF-1-06 · RUN-3-02 · SET-3-05 · TW-1-01 · TW-2-04
  • src/stepik_grader/web/runs.py — 7 (0/1/6): RUN-3-03 · CNC-2-01 · CNC-2-02 · CNC-2-04 · CNC-3-01 · RUN-3-06 · SEC-3-03
  • src/stepik_grader/web/server.py — 6 (0/0/6): CANON-5-06 · JRN-4B-04 · LNCH-2-05 · LNCH-4-04 · LNG-3-03 · SEC-1-04
  • src/stepik_grader/web/settings_adapter.py — 4 (0/0/4): ADD-1-05 · ADD-1-06 · LNCH-3-06 · SET-2-07
  • src/stepik_grader/web/http_guards.py — 3 (0/0/3): FZZ-4-01 · FZZ-4-02 · RUN-3-04
  • src/stepik_grader/web/downloader_adapter.py — 2 (0/0/2): ADD-1-02 · JRN-3B-03
  • src/stepik_grader/web/feedback_adapter.py — 2 (0/0/2): ADD-4-06 · ADD-4-07
  • src/stepik_grader/web/glossary_adapter.py — 2 (0/1/1): ADD-1-03 · INS-1-02
  • src/stepik_grader/web/reference_adapter.py — 2 (0/1/1): ADD-1-01 · ADD-1-04
  • src/stepik_grader/web/auth_adapter.py — 1 (0/0/1): JRN-3B-02
  • src/stepik_grader/web/grading.py — 1 (0/0/1): ARCH-2-03
  • src/stepik_grader/web/i18n.py — 1 (0/0/1): ED-2-05
  • src/stepik_grader/web/rules_adapter.py — 1 (0/0/1): ADD-1-07

Generated by Claude Code

Dominant language
Python
Stars
3
Forks
6
Avg merge
2h 41m
Merged PRs (30d)
48

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ArtVsMark/Stepik-Python-Grader

All issues in ArtVsMark/Stepik-Python-Grader

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.