6 Commits
Author SHA1 Message Date
NikhilandChris Titus 436773df73 Fix legacy json import compatibility, UI sidebar refactor, and improved test coverage (#4911)
* Fix backward compatibility for old-style JSON config imports

* Refactor sidebar UI generation and add tests for Get-WinUtilVariables

* Fix appnavigation config test following UI generation refactor

* Restore global sync state in variables tests

* fix(impex): migrate supported legacy selections

Keep modern imports strict while allowing legacy backups to skip retired entries with clear logging and user feedback. Add fixtures covering partial and all-retired imports.

* test: strengthen UI and global state coverage

Exercise app category rendering through Initialize-WPFUI and restore global sync without leaking test state.

* fix(impex): ignore legacy metadata fields

Limit legacy selection migration to supported WPF key families so unrelated string metadata does not produce false retired-setting warnings.

* docs: clarify legacy config imports

Distinguish strict modern flat imports from partial legacy object migration, including single-setting export shape and historical groups.

---------

Co-authored-by: Chris Titus <contact@christitus.com>
2026-08-19 17:13:14 -05:00
792122e998 fix: preserve selections when config import is invalid (#4994)
* fix: validate imports before replacing selections

* test: cover atomic config imports

* docs: explain stale config imports

---------

Co-authored-by: Guilherme de Oliveira Rocha <contatoguilhermeoliveira@protonmail.com>
Co-authored-by: Chris Titus <contact@christitus.com>
2026-08-19 15:30:46 -05:00
Gabi 7c71a39f7a Feature/appx removal tab (#4729)
* feat: add config-driven AppX package removal tab

- Add config/appx.json with curated list of removable AppX packages

- Add AppX Removal tab (WPFTab6) with Select All, Clear, and Remove buttons

- Reuse existing Invoke-WPFUIElements engine for minimal code footprint

- Add Invoke-WPFAppxRemoval.ps1 for background runspace package removal

- Add theme colors for the new tab button in light and dark modes

* yep

* yep

* yep

* yep

* Update inputXML.xaml

* Update Invoke-WPFButton.ps1

* Update Invoke-WPFButton.ps1

* Update Invoke-WPFSelectedCheckboxesUpdate.ps1

* Update appx.json

* Update appx.json

* Update appx.json

* Update tweaks.json

* Update appx.json

* Update appx.json

* Update appx.json

* Update Invoke-WPFAppxRemoval.ps1

* Update Invoke-WPFButton.ps1

* Delete functions/public/Invoke-WPFAppxRemoval.ps1

* Revert "Update Invoke-WPFButton.ps1"

This reverts commit d8705cc08e.

* Revert "Delete functions/public/Invoke-WPFAppxRemoval.ps1"

This reverts commit 9e45d1ad99.

* Update Invoke-WPFAppxRemoval.ps1

* Update Invoke-WPFAppxRemoval.ps1

* Update Invoke-WPFAppxRemoval.ps1

* Update Invoke-WPFButton.ps1

* yep

* Update appx.json

* Update appx.json

* Update tweaks.json

* Update start.ps1

* Update preset.json

* Update tweaks.json

* yep

* yep

* yep

* yep

* yep

* yep

* Update Invoke-WPFAppxRemoval.ps1

* Update Update-WinUtilSelections.ps1

* Update Update-WinUtilSelections.ps1

* yep

* Update Invoke-WPFAppxRemoval.ps1

* yep

* yep

* Update Invoke-WPFAppxRemoval.ps1

* Update appx.json

* Update Invoke-WPFAppxRemoval.ps1

* Update Invoke-WPFAppxRemoval.ps1

* Update appx.json

* Update Invoke-WPFGetInstalled.ps1

* Update Invoke-WPFAppxRemoval.ps1

* yep

* yep

* Update Invoke-WPFSelectedCheckboxesUpdate.ps1

* yep

* yep

* Update Invoke-WPFAppxRemoval.ps1

* Update Invoke-WPFAppxRemoval.ps1

* yep

* Update Invoke-WPFAppxRemoval.ps1

* Update Invoke-WPFAppxRemoval.ps1

* Update appx.json

* Update Invoke-WPFImpex.ps1

* Update Invoke-WPFImpex.ps1

* Update Invoke-WPFAppxRemoval.ps1

* Update preset.json

* Update preset.json

* Update Invoke-WPFSelectedCheckboxesUpdate.ps1

* Update Invoke-WPFAppxRemoval.ps1

* Update tweaks.json

* Update Invoke-WPFAppxRemoval.ps1

* Update Invoke-WPFAppxRemoval.ps1

* Update Invoke-WPFAppxRemoval.ps1

* Update Invoke-WPFAppxRemoval.ps1

* yep

* yep

* Update Invoke-WPFAppxRemoval.ps1

* yep

* Delete functions/private/Find-AppxByNameOrDescription.ps1

* yep

* Update Invoke-WPFButton.ps1

* Update main.ps1

* Update Invoke-WPFTab.ps1

* yep

* yep

* Update themes.json
2026-07-01 12:13:32 -05:00
Gabi 8034e85521 Remove Write-Debug (#4498)
* Update Invoke-WinUtilCurrentSystem.ps1

* Update Invoke-WinUtilFontScaling.ps1

* Update Invoke-WinUtilTweaks.ps1

* Update Reset-WPFCheckBoxes.ps1

* Update Set-Preferences.ps1

* Update Update-WinUtilSelections.ps1

* Update Invoke-WPFSelectedCheckboxesUpdate.ps1

* Update Invoke-WPFtweaksbutton.ps1

* Update main.ps1

* Update main.ps1

* Update main.ps1

* Update main.ps1

* Update main.ps1

* Merge branch 'main' into Remove-Write-Debug
2026-05-19 13:16:06 -05:00
Eren 3fb5c04693 Fix import/export functionality (#4131)
* fix: cast selections to string to prevent PSCustomObject type issues

* fix(presets): clear existing selections before importing to replace state instead of merging

* refactor(impex): warn user when exporting empty selections or importing empty config
2026-03-02 13:02:48 -06:00
KamaleiZestri 70a94abe02 Decoupled UI and data (#4051)
* Decoupled UI and data

* Fix bad variable naming

* Fix mistype

* Fix mistype v2

Editing from mobile is hard
2026-02-17 12:39:44 -06:00