Skip to content

v1.1 — Gaming toolbox expansion#1

Merged
jonax1337 merged 9 commits into
mainfrom
feat/gaming-tweaks-expansion
May 26, 2026
Merged

v1.1 — Gaming toolbox expansion#1
jonax1337 merged 9 commits into
mainfrom
feat/gaming-tweaks-expansion

Conversation

@jonax1337

Copy link
Copy Markdown
Owner

Summary

  • 228 tweaks (was 200) — gaming category went 7 → 35, every entry has check[] + revert/defaultValue coverage
  • 6 new routes beyond the tweak catalog: /gaming-session (snapshot-based background suspend), /per-game-profiles (per-EXE GPU + AppCompat overrides via HKCU — no admin), /msi-mode (per-PCI MSI/MSI-X toggle with SYSTEM-task fallback for ACL-locked Enum subkeys), /nic-tuning (Get-NetAdapterAdvancedProperty editor with 16 curated properties), /latency-monitor (live ping with sparklines), /anti-cheat-compat (Vanguard / EAC / BattlEye / VAC compatibility matrix with fix shortcuts)
  • gaming-esports built-in profile (48 tweaks, plugged-in desktop rigs) and Esports Rig Install-Media template
  • Windows 10 compatibility tier: README badge + Settings InfoBanner, graceful degradation documented (Recall / Widgets / Mica silently no-op on Win10)
  • Dashboard redesign: profile cards + categories grid out; 4 KPI tiles + Recent activity feed + permanent per-category Catalog coverage breakdown
  • Sidebar reorg: new Gaming group, Customize trimmed back to 10 OS-tweak entries, Developer merged into System info
  • 5 new Rust modules / 19 new Tauri commands

See CHANGELOG.md for the full v1.1 entry incl. the cluster of route bugfixes (PS 5.1 ConvertTo-Json -AsArray incompat, inverted audio-enhancements-off, locale-dependent powercfg/fsutil checks, MSI HKLM\…\Enum ACL fallback, NIC numeric-vs-string typing).

Test plan

  • pnpm tauri:dev — sidebar shows new Gaming group with 5 entries
  • Dashboard renders 4 KPI tiles + Recent activity (no "Session started" entries) + Catalog coverage bars
  • /gaming-session starts + ends a session, snapshot survives reload
  • /per-game-profiles writes to HKCU UserGpuPreferences without admin
  • /msi-mode lists ~30+ PCI devices, toggle on a low-stakes device cycles the value
  • /nic-tuning lists adapters + properties, Set works on *EEE / *FlowControl / *InterruptModeration
  • /latency-monitor shows ping values for Steam / Cloudflare / Google DNS
  • /anti-cheat-compat shows correct Secure Boot / TPM / VBS / HVCI / Test Mode / kernel debug state
  • Settings page shows Windows 10 banner if build < 22000
  • pnpm catalog:export — writes 228 tweaks, 5 profiles
  • cargo build --release — clean
  • CLI: reclaim.exe --apply-profile gaming-esports --silent applies all 48 tweaks

🤖 Generated with Claude Code

jonax1337 and others added 9 commits May 26, 2026 11:48
Expands the gaming category from 7 → 35 tweaks across input, network,
GPU, CPU scheduling, fullscreen/GameBar, storage, visual and audio.
All have check[], reversible via revert[] or defaultValue.

Catalog 200 → 228, profiles 4 → 5 (new "gaming-esports" for plugged-in
desktop rigs with aggressive latency settings: NIC interrupt moderation
off, EEE/flow-control off, core parking off, HPET off, TSC Enhanced).

README: add Win10 "Best effort" badge alongside Win11 "Primary",
document graceful degradation (AI/Widgets/Mica silently no-op on Win10).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds /gaming-session route: snapshots power plan, Defender realtime state
and a whitelist of services, then kills/stops user-picked background
processes (Discord, Spotify, browsers, OneDrive, launchers, …) and
services (WSearch, SysMain, DiagTrack, BITS, …). On End Session every
mutation is reversed from the snapshot.

Safety: process and service names are hardcoded whitelists in
src-tauri/src/gaming_session.rs — frontend cannot ask us to taskkill
arbitrary executables or stop arbitrary services. Power-plan GUIDs are
strict-format validated. PowerShell payloads are templates with only
whitelist-derived values substituted.

Snapshot is persisted to localStorage so a crash mid-session lets the
user offer a manual restore on next launch.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds /per-game-profiles route. Each tracked executable gets:
- GPU preference (auto / power-saving / high-performance) via HKCU
  Software\Microsoft\DirectX\UserGpuPreferences — same key the
  Windows Settings → Graphics page writes.
- Fullscreen-optimization off, HighDPIAware override and
  Run-as-admin via the per-user AppCompat Layers key.

All settings live in HKCU so the route works without elevation. Icons
are extracted via the existing get_file_icons command. Removal cleans
both registry locations so there are no orphans.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds /anti-cheat-compat route that probes Secure Boot, TPM 2.0, VBS,
HVCI / Memory Integrity, Test Mode (testsigning) and kernel debugging,
then renders a compatibility matrix for Riot Vanguard, Easy Anti-Cheat,
BattlEye and VAC. Each row explains the requirement and, where Reclaim
can fix it from inside Windows (testsigning off, debug off), exposes a
one-click button. Secure Boot off → reboot-to-UEFI shortcut.

Backend: src-tauri/src/anticheat.rs queries WMI Win32_DeviceGuard +
Win32_Tpm + Confirm-SecureBootUEFI + bcdedit. No state changes happen
during the probe; fixes are explicit and gated behind confirmation
dialogs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…tions

Adds /nic-tuning route backed by Get-NetAdapterAdvancedProperty.
Curated list of 16 latency-relevant properties (EEE, FlowControl,
InterruptModeration, RSS, LSO, JumboPacket, Realtek Green Ethernet,
…) with explanations and a recommended value badge per entry. "Show
all" expander dumps every remaining property the driver exposes,
each with a Select bound to the driver's published valid values.

Backend (src-tauri/src/nic.rs) validates adapter name, registry
keyword and value with strict character whitelists before any
PowerShell interpolation. Reset uses Reset-NetAdapterAdvancedProperty
which restores the driver default, not the pre-Reclaim state — note
surfaced in the InfoBanner.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds /msi-mode route. Enumerates physical PCI devices via Get-PnpDevice
(filtered to Display, MEDIA, SCSIAdapter, Net, HIDClass, USB, System),
reads the MSISupported / MessageNumberLimit values from each device's
Interrupt Management subkey, lets the user toggle MSI mode per device.

Strong safety:
- Hardcoded HKLM\SYSTEM\CurrentControlSet\Enum prefix; only the device
  instance id segment varies, and that segment is regex-validated
  (PCI\ prefix only, alnum + \&_.-# chars).
- Sticky "wrong values prevent boot" warning that the user must
  explicitly dismiss before any toggle becomes interactive.
- One-click restore-point shortcut wired to the existing
  createRestorePoint command.
- Setting MSI OFF deletes the value rather than writing 0, so the
  driver default kicks back in.

Devices are grouped by class with High-impact-for-gaming highlights on
Display, MEDIA and SCSIAdapter (the classic NVMe / GPU / audio trio).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds /latency-monitor route. Eight built-in preset targets (Steam, Riot,
Epic, Battle.net, Discord, Cloudflare, Google DNS, GitHub) plus
unlimited user-added custom targets via a small dialog. Polls 2 / 5 /
10 s, pause toggle, per-target rolling 60-sample buffer rendered as a
color-coded sparkline with min/avg/max/loss% stats.

Backend (src-tauri/src/latency.rs) parallelises Test-Connection across
all enabled targets via Start-Job + Wait-Job with a 4-second timeout.
Host inputs are strictly validated (DNS-safe chars only, <=253 chars,
<=32 hosts per batch) before they touch the single-quoted PowerShell
argument.

Read-only — no system changes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…route bugfixes

Sidebar reorganisation:
- New "Gaming" group (Gaming tweaks / Gaming Session / Per-game profiles /
  Anti-cheat compat / MSI mode manager) split out of Customize.
- Customize back to its original 10 OS-tweak entries.
- Developer's lone "Windows features" merged into System info.

Dashboard redesign:
- Removed Profile cards (duplicates the Profiles tab) and Categories grid
  (duplicates the sidebar).
- Added a fourth KPI tile (Profiles available · built-in + custom).
- New Recent activity feed (last 6 user-visible log entries with relative
  timestamps and level icons) replacing the categories grid.
- New permanent Catalog coverage section: per-category applied/total counts
  with mini progress bars, 3-column grid.

Activity log cleanup:
- Removed `log.info("system.boot", …)` and the `service.tick` heartbeat
  log call — they were heartbeat noise, not user actions.
- log.svelte.ts filters NOISE_ACTIONS (system.boot, service.tick) on load
  and rewrites localStorage so existing history is cleaned. push() also
  silently drops them as defence-in-depth.

Tweak bugfixes:
- `audio-enhancements-off`: apply was writing PKEY_AudioEndpoint_
  Disable_SysFx = 0 which ENABLES enhancements; now writes 1. Check
  switched to safer PSObject.Properties enumeration.
- `core-parking-off-ac` and `processor-perf-boost-aggressive`: checks
  matched English-only powercfg output text via regex, broken on every
  non-English Windows. Now reads ACSettingIndex directly from the active
  scheme's registry key (locale-independent).
- `ntfs-8dot3-off`: check parsed locale-dependent fsutil text; now reads
  NtfsDisable8dot3NameCreation from the registry.
- `hid-power-management-off`: replaced full Recurse with explicit 2-level
  iteration so the scan finishes in <500ms instead of multi-second.

Route bugfixes (the big one — all driven by a single PowerShell 5.1
incompatibility):
- ConvertTo-Json -AsArray is PS 7.0+ only; on PS 5.1 (the system default
  powershell.exe on Win10/11) the parameter is rejected, the script
  aborts, stdout is empty and the Rust side returns an empty array.
  This silently broke listing for NIC tuning, MSI mode and Latency
  monitor. Fixed by switching all four call sites to
  `ConvertTo-Json -InputObject @($out) -Depth N -Compress` which
  produces a proper JSON array on both PS 5.1 and 7+.
- Latency monitor: replaced SendPingAsync + Task.WaitAll dance with
  sequential System.Net.NetworkInformation.Ping.Send(host, 1500). 8
  healthy targets finish in <300ms; no Task lifecycle fragility.
- NIC tuning adapter list: dropped `-Physical` filter which excluded
  USB / weird-firmware NICs; now uses bare `Get-NetAdapter`.
- NIC set-property: detects numeric values via [int64]::TryParse and
  hands them unquoted to Set-NetAdapterAdvancedProperty so DWORD-typed
  properties don't reject a string argument; catch-block falls back
  to the string form for REG_SZ-typed properties.
- MSI device list: try/catch fallback to Win32_PnPEntity for stripped-
  down SKUs without the Get-PnpDevice cmdlet.
- MSI toggle: `HKLM\SYSTEM\…\Enum` subkeys are SYSTEM-owned and grant
  Administrators read-only access, so direct writes get ACCESS_DENIED.
  Now first attempts a direct write with -ErrorAction Stop; on failure
  falls back to a one-shot SYSTEM scheduled task (schtasks /create
  /ru SYSTEM /rl HIGHEST → reg.exe add/delete → /delete). Verifies the
  value landed by reading it back.

Esports Rig template:
- New Install-Media Task Sequence template based on the gaming-esports
  profile + standard preamble + Steam/Discord/Epic/Firefox winget set.

Win10 compatibility:
- README gains a Windows 10 "Best effort" status badge alongside the
  Windows 11 "Primary" badge plus a paragraph documenting graceful
  degradation (Recall / Widgets / Mica silently no-op on Win10).
- Settings page surfaces an inline InfoBanner when build < 22000.

README + CLAUDE.md refreshed counts: 228 tweaks (was 200), 5 profiles
(+ gaming-esports), 7 install-media templates (+ Esports Rig), 42 routes,
34 Rust modules, 156 Tauri commands.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Headline numbers, the six new routes (gaming-session / per-game-profiles
/ msi-mode / nic-tuning / latency-monitor / anti-cheat-compat), the
28 new gaming tweaks broken down by sub-category, the gaming-esports
profile, the Esports Rig install-media template, sidebar / dashboard
reorg, and the cluster of route bugfixes — the silent-empty-array
PowerShell 5.1 ConvertTo-Json -AsArray incompat, inverted audio-
enhancements-off, locale-dependent powercfg / fsutil checks, MSI mode
SYSTEM-task ACL fallback, NIC numeric-vs-string typing, latency ping
sequentialisation.

Plus the Windows 10 compatibility-tier paragraph + Settings InfoBanner.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@jonax1337 jonax1337 merged commit 5fa40de into main May 26, 2026
1 check passed
@jonax1337 jonax1337 deleted the feat/gaming-tweaks-expansion branch May 26, 2026 17:27
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