Refactor proxy handling and update related UI flows

This commit is contained in:
2026-07-08 09:01:10 +03:00
parent b45dd2ae05
commit 288acbf0c8
14 changed files with 2655 additions and 552 deletions

View File

@@ -0,0 +1,85 @@
# Доказательства трехпанельного интерфейса Windows Client
## Приемочные доказательства
Записать реальный артефакт, который доказывает результат с точки зрения пользователя.
Обязательные доказательства:
- `summary-panel.png`: read-only `Сводка` показывает статус системы, ProxiFyre, подключение, маршрут, активный сервер, количество приложений, config path state, dirty state и последнее событие.
- Browser state для `Сводка`: `summaryInputs = 0`, `summaryForbiddenButtons = []`, активная вкладка `panel-summary`.
- `proxifyre-panel.png`: панель `ProxiFyre` показывает статус компонента, setup action, service install action, список приложений, add controls, dirty/apply command row.
- `vpn-proxy-external-panel.png`: панель `VPN / Прокси` в режиме внешнего прокси показывает route switch, SOCKS5 input, TCP check state, route preview и apply/open actions.
- `vpn-proxy-local-panel.png`: панель `VPN / Прокси` в режиме локального прокси показывает Local sing-box empty/install state, route preview и dirty/apply state.
- `narrow-proxifyre-panel.png`: узкий viewport показывает tab bar, ProxiFyre card, app list controls и command area без overlap с log dock.
- Browser overlap state после фикса: desktop `commandBottom = 705.1875`, `logTop = 815.1875`, `overlaps = false`; narrow `appListBottom = 701.1875`, `logTop = 1072.1875`, `overlaps = false`.
- Root `src/web` и `src/server` не менялись.
Сервисные действия install/start/stop/uninstall проверены на уровне существующих handlers и сборки UI. Реальный elevated Windows service lane для ProxiFyre/Local sing-box в этой сессии не запускался: `implemented but unproven`.
## Проверка
Записать сфокусированные проверки, которые прошли, включая команды и важный вывод.
Ожидаемые команды:
```powershell
cd apps/windows-client
npm run build
```
Результат:
```text
tsc && vite build
1789 modules transformed
dist/index.html
dist/assets/index-Oqrmqzau.css
dist/assets/index-CJqhju7q.js
built in 1.31s
```
Если менялись Rust/Tauri commands:
```powershell
cd apps/windows-client/src-tauri
cargo test
```
Результат:
```text
command_tests: 10 passed, including ping_proxy_target_reports_open_tcp_endpoint
component_detection_tests: 7 passed
domain_tests: 5 passed
helper_tests: 6 passed
proxifyre_adapter_tests: 6 passed
singbox_adapter_tests: 6 passed
singbox_command_tests: 8 passed
singbox_service_tests: 7 passed
storage_tests: 8 passed
subscription_tests: 7 passed
doc-tests: 0 passed
overall: passed, warnings only for existing dead-code/test module duplication
```
Browser preview:
```text
Opened http://127.0.0.1:5174/
Tabs detected: Сводка, ProxiFyre, VPN / Прокси
Summary activePanel: panel-summary
ProxiFyre activePanel: panel-proxifyre
VPN/Proxy activePanel: panel-proxy
External route aria-pressed=true in external mode
Local route aria-pressed=true in local mode
```
## Заметки review
Записать PRE review, reviewer, maintainer или verifier findings, если они изменили результат.
- PRE review: aligned. No blockers. Main risk was weak UI evidence; resolved by browser screenshots and DOM state checks.
- POST plan review: aligned. The displaced monolithic screen path is removed from the active render path and replaced by three panels.
- Correctness review: summary has no mutating controls; ProxiFyre actions remain in ProxiFyre panel; route/proxy actions remain in VPN/Proxy panel; new `ping_proxy_target` is read-only and tested with a local TCP listener.
- Maintainability review: backend source of truth unchanged; no direct generated config writes from React; no root `src/web` or `src/server` edits.
- Residual risk: real elevated service actions were not manually executed in native Tauri/elevated Windows mode during this UI pass.