Skip to content

PR#8

Merged
wallydz merged 12 commits intowickedtech:vpnht-rewritefrom
VPNht:vpnht-rewrite
Feb 21, 2026
Merged

PR#8
wallydz merged 12 commits intowickedtech:vpnht-rewritefrom
VPNht:vpnht-rewrite

Conversation

@wallydz
Copy link

@wallydz wallydz commented Feb 21, 2026

Description

Brief description of the changes in this PR.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Performance improvement
  • Security enhancement
  • Code refactoring

Related Issues

Fixes #(issue number)
Closes #(issue number)

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

Security Checklist

  • No hardcoded secrets or credentials
  • Input validation is implemented
  • Error messages do not leak sensitive information
  • Principle of least privilege is followed

Testing

  • Manual testing performed
  • Unit tests added/updated
  • Integration tests added/updated
  • UI tests pass (if applicable)

Screenshots (if applicable)

Add screenshots to help explain your changes.

Additional Context

Add any other context about the pull request here.

wallydz and others added 12 commits February 21, 2026 17:49
- Fix Map.tsx: escape raw < and > in JSX text content
- Fix Settings.tsx: rewrite incomplete snippet as full component
- Fix tests/helpers.test.ts: correct import path from ./helpers to ../src/utils/helpers
- Fix api.ts: add proper type casting for mock server data, remove unused imports
- Fix Login.tsx: resolve UseFormRegister union type incompatibility
- Fix stores/index.ts: prefix unused get parameter with underscore
- Remove unused imports: Heart (Servers), location (Layout), resourcesToBackend (i18n)
- Remove unused code: isDisconnected, getStatusBg (Home)
- Add .eslintrc.cjs configuration file
- Add src/vite-env.d.ts for Vite client types (import.meta.env)
- Bump vite build target from safari13 to safari15 (BigInt support for maplibre-gl)
- Add [workspace] to src-tauri/Cargo.toml for standalone cargo check
- 30 tests covering formatBytes, formatDuration, validateEmail,
  validatePassword, groupByRegion, getCountryFlag, getCountryCodeFromName,
  formatLatency, formatSpeed, debounce, and cn
- All tests passing
- Lint, typecheck, and test jobs
- Multi-platform Tauri builds (Linux, Windows, macOS)
- Rust caching with Swatinem/rust-cache
- npm dependency caching
- Artifact upload for all platform builds
- Security audit job (npm audit + cargo audit)
- CodeQL analysis for JavaScript/TypeScript
- Concurrency control to cancel stale runs
- Triggers on main branch pushes and PRs
REPORT.md covers:
- Stack identification
- Baseline verification results (before/after)
- Security threat model and 12 findings
- Code quality analysis and refactor opportunities
- Testing inventory and 35 new tests
- CI/CD workflow analysis
- UX/feature recommendations
- Prioritized roadmap (P0/P1/P2)
- Replace mock API with Tauri IPC in src/utils/api.ts
- Add code splitting for MapLibre GL in App.tsx
- Add ConnectionTimer to Home page
- Wrap all routes with ErrorBoundary
- Fix type mismatch in Servers.tsx for latency results
- Restrict IPC store_secure/retrieve_secure to allowlisted keys only
- Add input validation to all IPC commands (email, password, server_id, etc.)
- Fix kill switch privilege escalation with platform-specific elevation
- Add interface name sanitization to prevent command injection
- Tighten CSP in tauri.conf.json by removing unsafe-inline
- Restrict HTTP scope to specific API endpoints
- Remove token storage from localStorage to prevent plaintext exposure

This implements critical security hardening for production readiness.
- Replace Result<T, String> with proper AppError in error.rs
- Implement From traits for common error types
- Create api.rs with real GraphQL API client
- Update commands.rs to use real API client
- Add ApiClient to Tauri managed state in main.rs
- Update all error handling to use AppError properly
- Fix auth.test.ts: use isLoading (not loading), auth_login (not login)
- Fix connection.test.ts: use bytesReceived/bytesSent, correct error state,
  silently return on double-connect (not throw)
- Fix server.test.ts: re-read state after toggle, remove reset() call
- Fix settings.test.ts: use preferredProtocol, correct default values

All 73 tests passing.
- Added tests for Zustand stores: auth, connection, server, settings
- Added smoke test for App component
- Added config persistence test
- Added VPN connect/disconnect flow test
- All tests pass (73/73)
audit: production readiness review — fix build/lint/tests + CI + security findings
@wallydz wallydz merged commit d6d0512 into wickedtech:vpnht-rewrite Feb 21, 2026
7 of 19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant