Safety + polish pass: auto-rollback, locale-independent WiFi, cleaner code.
- Post-optimization connectivity check + auto-rollback — after every optimization run, waits 5s then tests internet. If broken, automatically calls
Invoke-Restoreto revert changes. User is never left without network. Optimize-NetworkSpeednow returns$true/$false(applied / rolled back) so callers can report the outcome.Invoke-NetworkResetandInvoke-SmartModehandle the new return value and show whether optimizations stuck or were rolled back.
- WiFi reconnect: replaced broken
netsh wlan(mojibake on non-English locales) withGet-NetConnectionProfile(CIM API, locale-independent). SSID saved to snapshot for reconnect after reset. Check-Admin: usesthrowinstead ofexit 1(works correctly when dot-sourced or called from other scripts).Save-Snapshot: backs up existing snapshot instead of refusing (last run may have left unapplied changes).- Profile cache TTL: 30d → 7d (laptops change networks frequently).
Invoke-Restore: broken into readable per-step blocks instead of one monolithic block.- Menu
[U]: does not force-quit after undo — returns to menu so user can verify connectivity.
Get-TcpValue(dead code — never called, netsh mojibake on non-English).AdapterTimeoutparameter (unused).
Major rewrite: adaptive optimization, snapshot/restore, interactive menu.
- Adaptive TCP optimization: detects CPU, RAM, WiFi/Ethernet, LinkSpeed, RTT, battery → computes optimal values (no hardcode)
- System profile detection, cached to
network-profile.json(stale check: 30 days / adapter change / speed delta >50%) - Snapshot + Restore: saves registry, netsh, port range, DNS state to
reset-snapshot.jsonbefore any modification -Restoreflag reverts all changes from snapshot- Interactive menu after auto-action: Force reset, Re-optimize, Restore, Quit
- Reset-snapshot escape hatch: prompts user on relaunch if snapshot exists from crashed run
- TCP auto-tuning level set based on RAM
- Russian translit in menu prompts
Save-Snapshotmoved to script start (before any action, not just before optimize)- One-entry-point UX: single shortcut, menu handles everything
- Atomic snapshot write (
.tmp→ rename) to prevent corruption on power loss
- Separate desktop shortcuts for each mode (single entry point now)
Safety fixes based on Claude code review.
ipconfig /releasenow targets specific adapter name (was releasing all adapters, including Bluetooth PAN)- Bluetooth exclusion added to
Disable-AllVPNAdapters(belt and suspenders) - Removed
netsh winsock resetandnetsh int ip reset(require reboot, pointless in automated flow) - Replaced with
netsh int ip delete destinationcache(clears stale VPN routes, no reboot) - Removed hardcoded DNS override (
Set-DnsClientServerAddress) —/renewrestores DHCP DNS - WiFi auto-connect now picks last saved profile, not first alphabetical
Optimize-NetworkSpeedbroken into per-step try/catch (was one monolithic block)- DCA verification relaxed: warning instead of throw (DCA is server-only feature)
Complete rewrite: smart auto-detect, no interactive menu.
- Smart mode: detects internet DOWN → full reset; UP → optimize only
-ForceResetflag to force reset when internet is already working- Admin check at script entry
- Improved adapter detection with fallback chain
- Log rotation at 1MB
- Interactive menu (script runs once, shows result, waits for Enter, exits)
- All snapshot/preset/proxy/menu functions
-Auto,-NoMenu,-Optimizeparameters (superseded by smart mode)
Interactive menu version with manual mode selection, presets, proxy config, and snapshot history.