Refactor proxy handling and update related UI flows
This commit is contained in:
85
docs/goals/windows-client-three-panel-ui/EVIDENCE.md
Normal file
85
docs/goals/windows-client-three-panel-ui/EVIDENCE.md
Normal 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.
|
||||
Reference in New Issue
Block a user