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

🎯 [Хвост] Браузерный прогон: 33 находки, видимые только глазами

Open
#1,007 1 comment 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
css, javascript, playwright, python

Research direction

Start with the reproduction details in docs/audit/2026-08-10-full-roles.md § 5 and the four medium findings listed here, then run the browser checks with Chromium and Playwright as described in the issue. The work spans the listed web/ and core/ files, and some items require browser verification rather than code inspection. Done means each finding is closed by a PR or explicitly rejected with a reason, and the untested scenarios and post-fix checks have been run.

Written by the indexing model from the issue text.

Description

area/web audit difficulty/medium породило правило

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

33 находки: 0 high · 4 medium · 29 low. Верифицированы: 27 CONFIRMED, 6 PARTIAL, 1 REFUTED.

Отдельный подэпик, потому что метод другой: не чтение и не curl, а Chromium через Playwright — клики, ввод, переключение вкладок, перехват console / pageerror / 4xx. Класс дефектов «в коде верно, в браузере ломается» до фазы 5 не проверял никто.

Четыре medium — с них и начинать

  • BRW-4-01 — режим «Папка», включённый по умолчанию, считает задачу нерешённой, если хоть один файл в папке падает: держишь рядом черновики — «Прогресс» показывает, что задача не сдана (web/viewmodels.py)
  • BRW-3-01 — многострочный пример в карточке глоссария распадается на строки-плитки без отступов, вложенность потеряна (web/static/content.js:401)
  • BRW-1-01 — в отчёте и в озвучке стоит имя временного файла вместо выбранного решения (web/runs.py)
  • BRW-4-03 — свежая рабочая папка показывает чужую историю: ключ задачи — голое имя папки (core/history.py)

Остальные находки по файлам

Чек-лист по файлам, а не построчно: три десятка пунктов нечитаемы и правятся с конфликтами. Строка закрывается, когда закрыты все её ID; галочка называет исход — номер PR или причину отклонения.

  • web/static/content.js — 6 (0/1/5): BRW-3-01 · BRW-3-02 · BRW-3-04 · BRW-3-06 · BRW-4-04 · BRW-5-03
  • web/static/index.html — 4: BRW-1-05 · BRW-2-05 · BRW-3-07 · BRW-5-05
  • web/static/grade.js — 4: BRW-1-02 · BRW-1-06 · BRW-1-07 · BRW-1-08
  • web/static/app.css — 4: BRW-1-03 · BRW-5-01 · BRW-5-04 · BRW-5-06
  • core/insights.py — 3: BRW-4-02 · BRW-4-05 · BRW-4-06
  • web/static/downloader.js — 2: BRW-2-01 · BRW-2-06
  • web/downloader_adapter.py — 1: BRW-2-02
  • web/static/trace-player.js — 1: BRW-2-03
  • web/static/sandbox.js — 1: BRW-2-04
  • web/playground.py — 1: BRW-2-07
  • web/runs.py — 1 (0/1/0): BRW-1-01
  • core/microbench_runner.py — 1: BRW-1-04
  • glossary/models.py — 1: BRW-3-03
  • web/viewmodels.py — 1 (0/1/0): BRW-4-01
  • core/history.py — 1 (0/1/0): BRW-4-03
  • web/static/core.js — 1: BRW-5-02

Не закрывается по коду

Эти строки требуют повторного прогона в браузере — чтением и диффом они не проверяются:

  • сценарии, не пройденные в фазе 5: playground целиком, трейс, мобильная ширина на всех вкладках
  • повторный браузерный прогон после закрытия medium — подтвердить, что четыре главные находки действительно исчезли с экрана

Остальное — по темам

  • Тихие отказы интерфейса: пустой путь и клик «Запустить» — молчание, на экране остаётся прошлый результат; пустой URL в загрузчике — тоже молчание, хотя серверное сообщение готово и недостижимо.
  • Диагностика вводит в заблуждение: мусорный URL и URL чужого сайта объясняются проблемой с secrets.json; трейс бесконечного цикла даёт «Ошибка выполнения» и сырое английское exceeded 10.0s вместо TLE.
  • Потеря пользовательского ввода: F5 в Песочнице стирает набранный код и stdin.
  • Локализация данных: EN не переводит названия 36 правил PEP и заголовки карточек глоссария — при этом счётчики и подписи переведены, отчего расхождение выглядит как поломка.
  • Тёмная тема и узкий экран: контраст 2.01:1 у ссылки «→ правило»; на 390 px переключатель RU/EN схлопывается в полоску 6 px.
  • Перекрытие: плашка истории накрывает таблицу результатов и глотает клики по тест-кейсам на 1280×720.

Что это меняет в методе

Класс подтверждён: треть находок фазы 5 недостижима чтением кода в принципе. Поэтому в следующем аудите браузерный срез обязателен, а не опционален — и планировать прогон нужно от поверхностей продукта, а не от точек входа CLI.

Рецепт воспроизведения записан в документе: Chromium из /opt/pw-browsers с явным executable_path, Playwright из опциональной группы e2e, свой порт и каталог на агента.

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

Каждая находка либо закрыта PR, либо явно отклонена с причиной. Отдельно: сценарии, не пройденные в фазе 5, должны быть пройдены прежде, чем направление считается проверенным.

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.