feat(uninstaller): force remove option for failed uninstalls#74
Merged
Conversation
Show a loading spinner instead of rendering nothing while the onboarding IPC check completes. On slow Windows 10 machines the concurrent startup IPC calls (settings, history, platform, etc.) queue up synchronous file reads, delaying the onboarding response and leaving users with a blank window. Also fix onboarding completion not being reliably persisted — the write was fire-and-forget so closing the app quickly could lose the flag — and add missing gameMode to PlatformInfo defaults. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Startup toggle silently returned success even when all registry operations failed (e.g. HKLM without admin), causing the UI to show items as disabled until the next refresh. Now returns false when no critical registry write succeeds, so the optimistic UI update reverts and an error toast is shown. Privacy toggle notification was based on intention rather than actual post-rescan state. When the operation reported no error but the system state didn't change, the toast still said "Activated". Now compares pre/post state and shows an admin-required error when unchanged. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3be6369803
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
When a program's native uninstaller fails or is cancelled, show a "Force Remove" button that deletes the registry entry and cleans leftover files. Useful for programs with broken or missing uninstallers. - Add UNINSTALLER_FORCE_REMOVE IPC channel - Add deleteRegistryKey() service function using reg delete /f - Add force-remove IPC handler with registry deletion + leftover cleanup - Add Force Remove button in failure result banner with warning confirm dialog - Add force-removing progress phase display - Add i18n keys for force remove UI Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Reset lastFailedProgramRef at the start of batch uninstall to prevent the Force Remove button from targeting a program from a prior single uninstall failure. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fce1fff to
9387906
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
reg delete /f) and scans/cleans leftover filesChanges
channels.ts— newUNINSTALLER_FORCE_REMOVEchanneltypes.ts— addedforce-removingtoUninstallProgress.phaseunionprogram-uninstaller.ts— newdeleteRegistryKey()functionprogram-uninstaller.ipc.ts— new force-remove IPC handlerpreload/index.ts— newuninstallerForceRemovebridge methodUninstallerPage.tsx— Force Remove button, confirm dialog, handler, progress displayuninstaller.json— i18n keys for force remove UITest plan
npm testpasses (1891 tests)🤖 Generated with Claude Code