Dr Jones
792b320257
fix: address P0/P1/P2 audit findings — security, reliability, CI, docs
...
CI / Test Python 3.10 (push) Has been cancelled
CI / Test Python 3.11 (push) Has been cancelled
CI / Test Python 3.12 (push) Has been cancelled
P0 - Critical:
- config.py: add _mask() credential-redaction helper, SETTINGS_SCHEMA_VERSION,
plaintext-storage warning; corrupt settings.json backed up before defaults
- gost_util.py: pin SHA256 for gost_3.2.6_windows_amd64.zip; verify before
extraction; _add_defender_exclusion now logs warning on failure
- firewall.py: add emergency_disengage() for atexit/signal use
- service.py: register fw_emergency_disengage via atexit + SIGTERM/SIGINT;
stop() calls emergency_disengage if thread hangs past 15s timeout
- app.py: wrap main() in top-level except with CTk error dialog + log
- LICENSE: add MIT license file
P1 - Important:
- app.py: switch to RotatingFileHandler (5 MB / 3 backups)
- config.py: settings_version + migrate(); save_settings() writes .bak before
overwrite; _is_safe_https_url() strips RFC-1918 sources/ip_check_url
- service.py: threading.Lock on _settings; _signal_handler; graceful stop
- requirements.txt: pin exact versions; add cryptography==48.0.0
- .gitignore: add settings.json, credential JSON files, screenshot noise
- tray.py, dns_leak.py, gost_util.py: replace bare except:pass with logging
- CHANGELOG.md: document all session changes
P2 - Nice to have:
- .github/workflows/test.yml: CI on Python 3.10/3.11/3.12 windows-latest
- run.py: --version / -V flag
- docs/OPERATOR_RUNBOOK.md: emergency disengage, proxy leak, GOST, settings
Tests: 47/47 passed (python -m unittest discover -s tests -v)
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-21 23:49:02 -07:00
Indiana Holmes
094e0577fb
Spoof-when-possible browser personas, Tier-2 telemetry kill + artifact wipe, UI polish
...
Browser: identity persona dropdown (blend Windows-Chrome / Firefox / mac-Safari / hardened / custom) + cookie policy dropdown. Blend personas relax RFP/FPI/strict-TP so the machine looks normal while still hiding behind the chain. Persona TZ applied via env var; UA / language / locale / screen via user.js. WebRTC still forced off (it leaks real IP). Privacy: Telemetry kill toggle (DiagTrack, Activity History, ad ID, Cortana, scheduled tasks) with full snapshot/restore. One-button forensic artifact wipe (TEMP, Recent, Jump Lists, Prefetch, MRU, clipboard). UI: neon palette, glow card borders, gradient header banner.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-16 23:07:18 -07:00
Indiana Holmes
6561bdc37f
Add LAN-broadcast lockdown, per-rotation MAC, leak audit panel
...
Tier-1 paranoid hardening: privacy_lan.py disables LLMNR/NetBIOS/mDNS with reversible snapshot; service rotates MAC on every chain rotation when enabled; leak_audit.py probes every leak surface (IP, DNS, IPv6, WPAD, GPO, ProxySettingsPerUser, LAN broadcast, VPN, WebRTC) and renders pass/fail in Privacy tab.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-16 18:40:53 -07:00
Indiana Holmes
8f012402a6
Harden Windows Server compatibility and system-wide proxy.
...
Fix exit-IP checks for HTTP-only proxies, apply proxy via WinINet Connections blob and WinHTTP, improve VPN detection on legacy Server, add SOCKS5 host:port:user:pass exit parsing, and add win_compat probe for PowerShell 2.0 hosts.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-16 18:03:30 -07:00
Indiana Holmes
d4296763ee
Build comprehensive privacy suite and hardened browser controls.
...
Adds VPN-aware leak handling, chain testing UX improvements, hardened Firefox launch/profile management, privacy/device hardening modules, and tray/status upgrades so the app is production-ready as the new baseline.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-16 13:50:05 -07:00
Dr Jones
9439037cac
Early-exit validation: stop once enough valid proxies found
...
- validate_proxies: target= param — once N valid found, remaining
tasks skip the HTTP call and drain immediately (no wasted time)
- _build_pool: target = max(min_pool_size, chain_length * 3)
- Settings: min_pool_size (default 20), max_candidates default 400->200
- UI: Stop after N valid / Max candidates fields in Settings tab
- README: updated settings table
- 1 new test for early-exit with unreachable target
Made-with: Cursor
2026-04-16 02:31:40 -07:00
Dr Jones
c9c45fdfec
Fix empty proxy sources (empty pool), first-run bat, elite hint
...
- load_settings/sanitize_settings: treat sources=[] as invalid; restore defaults (all([]) was true)
- _build_pool: defensive default sources + clearer empty-fetch log; elite-only empty fetch message
- FirstRun_Build_And_Install.bat: Python check + setup_and_build.ps1
- README + test for empty sources sanitize
Made-with: Cursor
2026-04-16 00:44:42 -07:00
Dr Jones
214d2d2ff7
Proxy auth UI, verbose Live logs, build script, docs
...
- Fixed exit and manual chain: optional user/pass fields with URL merge and redaction in UI/logs
- config: split_proxy_for_edit, merge_proxy_credentials, redact_proxy_url, IPv6-style host bracketing
- Live tab: UILogHandler to stream proxy_chain_manager logs; Verbose toggle; Clear log; httpx quiet
- service/validator/fetcher: structured INFO/DEBUG for pool, GOST, validation, fetches
- setup_and_build.ps1: pip upgrade, deps, PyInstaller, desktop copy + shortcut; build_exe.bat delegates
- README: clone/pull to one-script desktop build flow
Made-with: Cursor
2026-04-16 00:27:39 -07:00
Dr Jones
086a2499c0
fix: anti-stall — IP check budgets, capped timers, fetch wait_for, obfuscation auto-fallback, empty validate short-circuit, unittest suite
...
Made-with: Cursor
2026-04-15 14:40:46 -07:00
Dr Jones
096c5094fb
fix: sanitize settings JSON, asyncio get_running_loop, Defender exclusion, _btn cleanup, ASCII Save label
...
Made-with: Cursor
2026-04-15 13:39:27 -07:00
Dr Jones
644229719f
feat: fixed exit proxy (last hop only), optional pool-free single-hop mode, gitignore pycache
...
Made-with: Cursor
2026-04-14 19:28:50 -07:00
Dr Jones
4bb626498f
v2: tabs, chain builder, obfuscation modes, hop slider, Defender exclusion, firewall kept
...
Made-with: Cursor
2026-04-14 17:13:02 -07:00