Fit Launcher Contributions
Fit Launcher is a community launcher for FitGirl Repacks. My contributions are on hiatus while I focus on my own projects. I worked on debrid support, installer automation, IPC, and maintenance fixes.
Most of that work involved coordinating downloads, installers, elevation, and frontend state while keeping the main app unelevated.
Debrid integration
Added TorBox and Real-Debrid support behind unified backend types, so the frontend does not need to understand every provider-specific API shape.
TorBox exposes cache availability endpoints. Real-Debrid needed a workaround: add the torrent, poll briefly, treat a quick 100% result as cached, and delete the torrent when it misses the cache.
Secrets are stored through Stronghold. The frontend mostly gets provider state and display hints, such as whether a download path is likely to be fast.
Installer monitoring
Replaced 250ms installer polling with Windows SetWinEventHook monitoring scoped to the installer PID.
FitGirl installers put percentages and phase text in the window title. Windows now pushes title-change events to the launcher; polling remains only for the final verification step.
Event-driven monitoring made the automation less timing-sensitive and stopped the old progress loop from wasting CPU.
Scoped elevation and IPC
Installer automation runs in a small elevated controller process. The full GUI stays unelevated.
The GUI stays asInvoker. When automation needs elevation, it spawns a controller through UAC and talks to it over a local named pipe using length-prefixed JSON messages.
The protocol has four commands and six event types:
commands: start, cancel, shutdown, ping
events: ready, phase, progress, file, completion, error
Only one controller runs at a time. It queues install requests, accepts an explicit shutdown command, and exits when the pipe disconnects or stays idle.
The threat model covers other local users, stale instances, predictable IPC endpoints, and accidental cross-talk. It excludes malware already running as the same NT user, process injection, kernel exploits, and UAC bypass chains.
Cleanup
I also sent smaller maintenance fixes:
- Settings input fixes for broken SolidJS reactivity and path mismatches.
- Error reporting cleanup so failures stop showing up as
[object Object]. - Cache bootstrap fixes and discovery refresh events.
- Stale aria2 WebSocket detection and reconnect handling.
- Dependency hygiene across Rust and frontend packages.
- Husky hooks, rustfmt, clippy, linting, and dead-code cleanup.