All checks were successful
Windows project source guards / test (push) Successful in 22s
3 KiB
3 KiB
Project Rules
- Do not create new Git branches unless the user explicitly asks for one. By default, keep work on
mainand commit/push requested changes directly tomain. - Stable production releases are built and verified locally on the Windows workstation, then published to Forgejo by following
$zapret-kvn-releasein.agents/skills/zapret-kvn-release/SKILL.md. A release request authorizes that local build. Forgejo Actions validates portable source and tests in the background; it does not own Windows release publication. - For sing-box and Xray proxy/native TUN modes, the active raw JSON config is the routing and DNS source of truth. Keep versioned defaults under
data/templates/sing-boxanddata/templates/xray, using only the original native core schemas. - Do not introduce a custom routing DSL, overlay,
${APP_ROUTE_RULES}-style compiler, or hidden Python injection of product routing policy. Runtime mutations must stay limited to app-owned transport and safety contracts. - The same active raw JSON owns routing for an engine's proxy and native TUN modes. The hybrid Xray sidecar owns only its
proxypath, while tun2socks remains a separate legacy path. - The updater preserves
data/, while remote builds carry current native templates inassets/template-update. On startup,template_sync.pyreplaces shipped templates and automatically refreshes a same-path active config only when it is still JSON-equivalent to the previously installed template; user-edited active JSON must remain untouched. - For JSON routing work, follow the project skill
$zapret-kvn-json-routingin.agents/skills/zapret-kvn-json-routing/SKILL.md. - Keep page-level surfaces transparent. Do not add local background fills or page/root/scroll-area style sheets that block Windows 11 Mica.
- Prefer built-in
qfluentwidgetsappearance over custom page styling. Add local UI styling only when the user explicitly asks for it or when the library cannot provide the needed result. - Do not force
WA_TranslucentBackgroundon full pages, scroll areas, or their viewports unless it is explicitly needed and visually verified; prefer the same built-in page behavior used by working screens. - Do not rebuild or smoke-start the app automatically after UI changes. The user will build it manually unless they explicitly ask for a build or startup verification.
- Do not change Xray proxy template/config
listenaddresses from0.0.0.0to localhost-only. In this project that is an intentional feature so the app can share the local proxy with other devices/apps when the user wants proxy distribution. - When a build is explicitly requested, use the project builder
python build.pyfrom the repo root instead of calling PyInstaller directly. - Before building, make sure
dist/ZapretKVN/ZapretKVN.exeis not running; if needed, stopZapretKVN.exefirst or the clean step can fail because the old binary is locked. - The builder is WSL-aware and converts paths for the Windows virtualenv automatically, so prefer it even when working from WSL.