4.2 KiB
4.2 KiB
Windows Local Sing-Box Evidence
Acceptance Evidence
Record the real artifact that proves the outcome from the Windows-client user's perspective.
- Windows client now has two independent component blocks:
ProxiFyreblock remains the existing required app-routing layer.Local sing-boxblock is optional, visually matches the ProxiFyre finder card, has setup details, install/start/stop/uninstall actions, subscription input, route switch, server list, ping, and config generation actions.
- Route choice is explicit:
Внешний проксиkeeps the existing external SOCKS5 flow.Local sing-boxgeneratessing-box-config.json, ensures targetlocal-singboxat127.0.0.1:1080, and applies ProxiFyre to that local target.
- Generated config proof is covered by
singbox_command_tests::generate_writes_config_and_local_singbox_target:- generated config contains a local mixed inbound;
- selected outbound is retagged to stable
vpn; - persisted target is
local-singbox,kind=local,protocol=socks5,host=127.0.0.1,port=1080,requiresComponent=singbox.
- Browser visual proof:
- Vite dev server:
http://127.0.0.1:5173/ - Playwright/system Chrome desktop screenshot showed ProxiFyre and Local sing-box blocks, route switch, subscription input, ping/config actions, and apply/open controls.
- Mobile screenshot at
390pxwidth showed the same controls stacked without overlap. - Final mobile layout metric:
docScrollWidth=390,viewportWidth=390,overflow=[].
- Vite dev server:
- Privileged Windows service lane:
- Implemented install/start/stop/uninstall paths and PowerShell parser checks.
- Real elevated UAC install/start was not executed in this session, so this lane is
implemented but unprovenuntil manual Windows validation runs.
Verification
Record focused checks that passed, including command and relevant output.
cd apps/windows-client && npm run build- Passed:
tsc && vite build.
- Passed:
cd apps/windows-client/src-tauri && cargo test --test storage_tests --test subscription_tests --test singbox_adapter_tests --test component_detection_tests --test singbox_service_tests --test command_tests --test singbox_command_tests- Passed:
command_tests: 8 passedcomponent_detection_tests: 7 passedsingbox_adapter_tests: 6 passedsingbox_command_tests: 7 passedsingbox_service_tests: 6 passedstorage_tests: 8 passedsubscription_tests: 7 passed
- Total focused Local sing-box backend path: 49 passed.
- Passed:
cd apps/windows-client/src-tauri && cargo test --test proxifyre_adapter_tests- Passed: 6 passed.
- Proves existing external SOCKS5 route still generates and
local-singboxroute is blocked when the required component is missing but works when it is running.
cargo fmt- Passed.
apps/windows-client/scripts/install-singbox.ps1parser check:- Covered by
singbox_service_tests::install_singbox_script_parses_as_powershellon Windows.
- Covered by
- Playwright/system Chrome visual check:
- Desktop viewport
1280x1200: main controls rendered. - Mobile viewport
390x900: no horizontal overflow after CSS fix.
- Desktop viewport
Review Notes
Record PRE reviewer, maintainer, or verifier findings that changed the result.
- PRE self-review: aligned after tightening the service-wrapper contract to WinSW and requiring
start_singbox_serviceto regenerate/check config before service start. - POST plan review: implementation stayed inside
apps/windows-clientand did not reuse root Node subscription parsing. External proxy remains default and does not require Local sing-box. - Correctness review: covered storage defaults, redacted subscription URL, HTTP/HTTPS validation, JSON/base64/VLESS subscription parsing, selected-outbound config generation, missing selected server errors, component detection, service command output parsing, Tauri command orchestration, route target generation, TypeScript build, and responsive UI.
- Maintainability review: Rust owns subscription/cache/config/service state; React owns transient UI only. Tauri commands are typed and do not expose raw PowerShell/stdout to the UI.
- Residual risk: real UAC install/start/stop/uninstall for
VpnProxySingBoxmust be validated manually on a Windows machine with admin confirmation and network access to GitHub releases.