Skip to content

[Epic] Гигиена и укрепление после v1.8.0 — аудит 2026-07-14 (8 ролей) #392

Description

@ArtVsMark

Цель

Закрыть дефекты, вскрытые мультиагентным аудитом состояния v1.8.0 + [Unreleased] от лица восьми ролей (8 независимых агентов прочитали ~14.8k строк кода и ~18.4k тестов; ключевые находки перепроверены вручную по file:line). Все дефекты — в уже смерженном коде, не видимы для зелёных гейтов (ruff/mypy чисто, 1420 passed, 87.55% покрытие).

Полный разбор по ролям, сквозные темы и доказательства — в docs/audit-2026-07-14.md (PR #391).

Сквозные темы

  1. «Реализовано, но не подключено» — history пишется только из CLI (→ «Подучить» в web пуст), lint не пишет LintRecord, --sandbox не в web, TestResult обойдён, executor.py мёртв.
  2. Web-слой — концентратор долга и риска — диффузная граница с core/, 3 security-бреши на стыках, перф горячего пути, монолит фронтенда, непокрытая конкурентность.
  3. Тихие потери данных под конкуренцией — гонка миграции истории (воспроизведена), утечка соединения, неатомарные записи, перескачивание тестов.
  4. Числовой дрейф доков — метрики 1317/93% устарели, разнобой числа карточек глоссария.

Child issues (по приоритету)

P1 (делать первыми):

P2 (security):

P2 (продукт/онбординг):

P2 (perf/тесты/техдолг):

P2/P3:

Топ-3 приоритета

  1. fix(history): устойчивость соединения и миграции SQLite под конкуренцией #393 — тихая потеря данных под конкуренцией (воспроизведена), ломает фундамент [Epic] Учебные инсайты: разделы «Правила/PEP» и «Подучить» на SQLite-истории #342, шумит ResourceWarning.
  2. feat(web): писать историю из web-грейдинга → наполнить «Подучить» #395 + feat(web): пробросить --sandbox в --serve (исполнение чужого кода без изоляции) #396 — «Подучить» в web пуст + web исполняет чужой код без изоляции.
  3. refactor(core): сервисный слой грейдинга + вернуть ранжирование в core #397 — корневое лекарство от диффузной границы web↔core; разблокирует remote-execution API (feat(api): описать API contract для удалённого запуска кода #156).

Acceptance criteria (эпика)

  • Все дочерние закрыты или явно перенесены.
  • Метрики в CLAUDE.md/CHECKPOINT/versions синхронизированы.
  • pytest/ruff/mypy зелёные; ResourceWarning устранён.
  • Обратная совместимость __all__ фасада grader.py сохранена.

Links

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions