86 lines
4.3 KiB
Markdown
86 lines
4.3 KiB
Markdown
# Доказательства трехпанельного интерфейса 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.
|