Skip to content

Исправить 11 находок ревью и добавить E2E без VM - #2

Merged
Jacksony100 merged 1 commit into
mainfrom
codex/fix-review-findings
Oct 19, 2026
Merged

Jacksony100 merged 1 commit into
mainfrom
codex/fix-review-findings

Conversation

@Jacksony100

@Jacksony100 Jacksony100 commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner

Исправлены все 11 находок ревью: запуск проверяет полный состав и защиту runtime, восстановление согласует работающий процесс с состоянием, а очистка сохраняет все доверенные активные версии. Добавлены регрессионные тесты, завершающаяся команда проверки установки и E2E без VM с отдельным корнем, заданным при сборке.

Изменения

Находка Исправление
R1 · P1 Проверка существующих ACL без присвоения доверия, создание защищённых каталогов, точный список файлов и отказ при лишних DLL, reparse points и hard links. Проверка также выполняется при принятии существующей сессии; дочерний процесс предпочитает System32.
R2 · P1 Исправлены пути и схема состояния E2E. Успех требует кода 0, маркера завершения и отсутствия нового winws; тайм-аут и посторонняя ошибка не считаются ожидаемым отказом. Пропущенный обязательный сценарий завершает шлюз ошибкой.
R3 · P1 --verify-install проверяет установку без UI, сетевой проверки обновлений или запуска движка.
R4 · P1 Перед фиксацией fallback останавливается процесс с проверенной идентичностью неисправного current. Неизвестный процесс или ошибка остановки запрещают фиксацию.
R5 Запись upstream diff создаёт свой каталог до записи. Задание задачи использует отчёт detect при отсутствии candidate.
R6 Отсутствующее или повреждённое доверенное состояние запрещает очистку. Сохраняются current, previous, pending, embedded и версия проверенного работающего процесса.
R7 Состояние интерфейса сверяется с процессом и не затирает выполняющиеся операции.
R8 Ручная проверка обновлений выполняется в фоне. Асинхронный WinHTTP поддерживает отмену и общий deadline, сохраняя контекст до последнего callback без ослабления TLS.
R9 Диагностика проверяет фактически активную embedded/installed среду и её каталог.
R10 Сокращённые IPv6, scope ID и IPv4-mapped адреса корректно скрываются с проверкой через InetPtonW.
R11 Уведомления обновлений обрабатываются на основных экранах; пропуск версии payload не скрывает обновление launcher.

Подробная карта исправлений и тестов.

Регрессионные проверки

  • Release x64: /W4 /WX, MSVC /analyze, штатное усиление защиты.
  • Выполнены все 55 CTest с повышенным токеном. В первом проходе 54 PASS и один сбой обработки ожидаемого stderr в новом тесте оснастки. После исправления этот единственный тест повторно прошёл с повышением; итог — 55 подтверждённых проверок, 0 неустранённых ошибок.
  • 88/88 PASS независимой сверки стратегий.
  • Настоящий HTTPS smoke: HTTP 200, 10 884 байта.
  • Проверены скриптовые контракты, отказ при повреждённом пакете/неполной матрице и git diff --check.

E2E без VM

На Windows 11 Pro x64, build 26200, 19 октября 2026, 11:16–11:17 МСК:

  • 6/6 PASS: отказ без повышения, первая установка, повторный запуск, interrupted pending, startup rollback, filesystem guards.
  • Отдельный EXE и фиксированный при сборке корень CHEBURNET-E2E-<id>; обычный EXE отклоняет тестовую идентичность кодом 2 до bootstrap.
  • Настоящий WinDivert загружен с filter=false и SNIFF; подтверждены RUNNING, закрытие дескриптора и удаление только созданной тестом службы.
  • Тестовый каталог удалён, служб WinDivert после прогона нет.
  • Отпечатки содержимого файлов и ACL существующего %ProgramData%\CHEBURNET до и после совпали.

Переносимая сводка доказательств с SHA-256 EXE и результатами обеих ролей · воспроизведение E2E на хосте.

Windows 10 и чистая матрица Windows 10/11 не запускались. Управление соединением через UI, реальные обновления и эффективность DPI-стратегий на трафике этим прогоном не подтверждены.

GitHub CI

Для коммита d862a22 все проверки завершились успешно:

@Jacksony100
Jacksony100 merged commit cc86f59 into main Oct 19, 2026
5 checks passed
@Jacksony100
Jacksony100 deleted the codex/fix-review-findings branch October 19, 2026 09:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant