Добавлен PowerShell-валидатор для всех корневых файлов general*.bat.
Добавлен GitHub Actions workflow, который автоматически запускает проверку при изменении:
стратегий general*.bat;
файлов в bin/;
файлов в lists/;
самого валидатора и workflow.
Что проверяет валидатор
наличие обязательных файлов проекта:
service.bat;
.service/version.txt;
bin/winws.exe;
наличие обязательных вызовов инициализации в каждой стратегии:
status_zapret;
check_updates;
load_game_filter;
load_user_lists;
наличие ровно одного запуска winws.exe;
пропущенные символы продолжения команды ^;
пустые строки внутри многострочной команды winws.exe;
ссылки на отсутствующие файлы через %BIN% и %LISTS%;
опечатки в именах бинарных файлов и списков.
Пользовательские файлы list-general-user.txt, list-exclude-user.txt и ipset-exclude-user.txt исключены из проверки, поскольку они создаются service.bat при первом запуске.
Зачем это нужно
Стратегии содержат длинные многострочные команды и большое количество ссылок на файлы из bin/ и lists/.
После переименования, удаления файла или случайного удаления символа ^ стратегия может перестать запускаться или работать некорректно. Сейчас такие ошибки часто обнаруживаются только после скачивания релиза пользователями.
Новый workflow обнаруживает такие проблемы автоматически до слияния Pull Request и показывает конкретный файл и причину ошибки.
Поведение программы для пользователей не изменено.
Валидатор находится в .github/scripts/, поэтому не попадает в пользовательские архивы релизов.
Workflow использует только разрешение contents: read.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/Flowseal/zapret-discord-youtube/pull/16551
**Author:** [@Onmaynec](https://github.com/Onmaynec)
**Created:** 8/6/2026
**Status:** ❌ Closed
**Base:** `main` ← **Head:** `agent/strategy-validation-ci`
---
### 📝 Commits (2)
- [`1a3a665`](https://github.com/Flowseal/zapret-discord-youtube/commit/1a3a665f8c0ccd3cbce032f844cd84bfc85025ef) ci: add strategy validator
- [`fd87afe`](https://github.com/Flowseal/zapret-discord-youtube/commit/fd87afe78e84f3ade79352d17b352b4695a8cdec) ci: run strategy validator
### 📊 Changes
**2 files changed** (+193 additions, -0 deletions)
<details>
<summary>View changed files</summary>
➕ `.github/scripts/validate-strategies.ps1` (+159 -0)
➕ `.github/workflows/validate-strategies.yml` (+34 -0)
</details>
### 📄 Description
## Что изменено
* Добавлен PowerShell-валидатор для всех корневых файлов `general*.bat`.
* Добавлен GitHub Actions workflow, который автоматически запускает проверку при изменении:
* стратегий `general*.bat`;
* файлов в `bin/`;
* файлов в `lists/`;
* самого валидатора и workflow.
## Что проверяет валидатор
* наличие обязательных файлов проекта:
* `service.bat`;
* `.service/version.txt`;
* `bin/winws.exe`;
* наличие обязательных вызовов инициализации в каждой стратегии:
* `status_zapret`;
* `check_updates`;
* `load_game_filter`;
* `load_user_lists`;
* наличие ровно одного запуска `winws.exe`;
* пропущенные символы продолжения команды `^`;
* пустые строки внутри многострочной команды `winws.exe`;
* ссылки на отсутствующие файлы через `%BIN%` и `%LISTS%`;
* опечатки в именах бинарных файлов и списков.
Пользовательские файлы `list-general-user.txt`, `list-exclude-user.txt` и `ipset-exclude-user.txt` исключены из проверки, поскольку они создаются `service.bat` при первом запуске.
## Зачем это нужно
Стратегии содержат длинные многострочные команды и большое количество ссылок на файлы из `bin/` и `lists/`.
После переименования, удаления файла или случайного удаления символа `^` стратегия может перестать запускаться или работать некорректно. Сейчас такие ошибки часто обнаруживаются только после скачивания релиза пользователями.
Новый workflow обнаруживает такие проблемы автоматически до слияния Pull Request и показывает конкретный файл и причину ошибки.
## Результат проверки
Workflow успешно выполнен на `windows-latest`.
```text
Strategy validation passed.
Checked 21 strategy file(s) and 293 unique file reference(s).
```
## Влияние на проект
* Рабочие стратегии не изменены.
* Бинарные файлы и списки не изменены.
* Поведение программы для пользователей не изменено.
* Валидатор находится в `.github/scripts/`, поэтому не попадает в пользовательские архивы релизов.
* Workflow использует только разрешение `contents: read`.
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
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.
📋 Pull Request Information
Original PR: https://github.com/Flowseal/zapret-discord-youtube/pull/16551
Author: @Onmaynec
Created: 8/6/2026
Status: ❌ Closed
Base:
main← Head:agent/strategy-validation-ci📝 Commits (2)
1a3a665ci: add strategy validatorfd87afeci: run strategy validator📊 Changes
2 files changed (+193 additions, -0 deletions)
View changed files
➕
.github/scripts/validate-strategies.ps1(+159 -0)➕
.github/workflows/validate-strategies.yml(+34 -0)📄 Description
Что изменено
Добавлен PowerShell-валидатор для всех корневых файлов
general*.bat.Добавлен GitHub Actions workflow, который автоматически запускает проверку при изменении:
general*.bat;bin/;lists/;Что проверяет валидатор
наличие обязательных файлов проекта:
service.bat;.service/version.txt;bin/winws.exe;наличие обязательных вызовов инициализации в каждой стратегии:
status_zapret;check_updates;load_game_filter;load_user_lists;наличие ровно одного запуска
winws.exe;пропущенные символы продолжения команды
^;пустые строки внутри многострочной команды
winws.exe;ссылки на отсутствующие файлы через
%BIN%и%LISTS%;опечатки в именах бинарных файлов и списков.
Пользовательские файлы
list-general-user.txt,list-exclude-user.txtиipset-exclude-user.txtисключены из проверки, поскольку они создаютсяservice.batпри первом запуске.Зачем это нужно
Стратегии содержат длинные многострочные команды и большое количество ссылок на файлы из
bin/иlists/.После переименования, удаления файла или случайного удаления символа
^стратегия может перестать запускаться или работать некорректно. Сейчас такие ошибки часто обнаруживаются только после скачивания релиза пользователями.Новый workflow обнаруживает такие проблемы автоматически до слияния Pull Request и показывает конкретный файл и причину ошибки.
Результат проверки
Workflow успешно выполнен на
windows-latest.Влияние на проект
.github/scripts/, поэтому не попадает в пользовательские архивы релизов.contents: read.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
[PR #16551] Agent/strategy validation cito [PR #16551] [CLOSED] Agent/strategy validation ci