Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
131 changes: 131 additions & 0 deletions doc/release-notes/v0.99-release-notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
# PowerToys v0.99 Release Notes

## Highlights

- **ZoomIt**: Added panoramic/scrolling screenshot capture, text extraction when snipping, and break timer improvements with screen saver mode and optional computer lock
- **Image Resizer**: Migrated from WPF to WinUI 3, enabling future AOT compilation for 1.5-3x performance improvements and aligning with Windows 11 design language
- **Command Palette**: Made the Dock window stay on top of all other windows by default, automatically yielding when a full-screen app is detected
- **Command Palette**: Improved full-screen detection for the activation shortcut, adding rapid-press breakthrough to bypass suppression and live diagnostics in Settings
- **Command Palette**: Added plain text viewer and image viewer content types for extensions, enabling safe display of raw text and zoomable images directly in the content pane

Check failure

Code scanning / check-spelling

Unrecognized Spelling Error documentation

zoomable is not a recognized word
- **Display Management**: Re-enabled the PowerDisplay module with installer integration, a new icon and logo, DPI-related fixes, and UI/UX improvements
- **Peek**: Added auto-detection of file name encoding when previewing zip files, fixing garbled text for archives created on non-UTF-8 systems
- **Quick Accent**: Added subscript and superscript Unicode characters to the Special Characters set for keys 0-9, A, E, N, X, Y, Z, and math operators
- **PowerToys Run**: Fixed a command breakout issue in the Shell plugin by escaping double quotes in user input before passing to shell processes
- **Settings**: Fixed arrow key icons rendering as box placeholders by switching from glyph codepoints to standard Unicode arrow characters

## Advanced Paste

- Fixed 13 WMC1506 XAML compiler warnings by changing OneWay bindings to OneTime on non-observable properties, eliminating dead subscriptions in [#46726](https://github.com/microsoft/PowerToys/pull/46726)

## Command Palette

- Added plain text viewer and image viewer content types for extensions, enabling safe display of raw text and zoomable images directly in the content pane in [#43964](https://github.com/microsoft/PowerToys/pull/43964). Thanks [@jiripolasek](https://github.com/jiripolasek)!

Check failure

Code scanning / check-spelling

Unrecognized Spelling Error documentation

zoomable is not a recognized word
- Improved full-screen detection for the activation shortcut, separating D3D fullscreen from heuristic busy state, adding live diagnostics in Settings, and providing an opt-in rapid-press breakthrough to bypass suppression in [#45891](https://github.com/microsoft/PowerToys/pull/45891). Thanks [@jiripolasek](https://github.com/jiripolasek)!
- Made the Dock window stay on top of all other windows by default, automatically yielding when a full-screen app is detected, with a new setting to disable this behavior in [#46163](https://github.com/microsoft/PowerToys/pull/46163). Thanks [@jiripolasek](https://github.com/jiripolasek)!
- Introduced a new pin-to-Dock dialog that gives users more control over how commands are pinned in [#46436](https://github.com/microsoft/PowerToys/pull/46436)
- Enabled FancyZones layout commands to be pinned into the Dock by assigning stable command IDs in [#46198](https://github.com/microsoft/PowerToys/pull/46198)
- Added a setting to select network speed display units (bits/s, bytes/s, or binary bytes/s) in the Performance Monitor extension in [#46320](https://github.com/microsoft/PowerToys/pull/46320)
- Fixed the Window Walker Close window command to respect the "Keep open after closing window" setting and automatically refresh the window list in [#45721](https://github.com/microsoft/PowerToys/pull/45721). Thanks [@jiripolasek](https://github.com/jiripolasek)!
- Fixed an exception when converting calculator results to hex/binary/octal for large numbers by switching to BigInteger-based conversion in [#46176](https://github.com/microsoft/PowerToys/pull/46176). Thanks [@jiripolasek](https://github.com/jiripolasek)!
- Fixed the Time & Date extension page to compute results on-demand, breaking a possible infinite refresh loop in [#46396](https://github.com/microsoft/PowerToys/pull/46396). Thanks [@jiripolasek](https://github.com/jiripolasek)!
- Fixed inline code text being invisible on light-theme backgrounds in the Details and Content panels by adding theme-aware styling in [#46739](https://github.com/microsoft/PowerToys/pull/46739)
- Fixed the Window Walker "Not Responding" tag being illegible in dark mode by removing a hardcoded color in favor of the theme-aware brush in [#46924](https://github.com/microsoft/PowerToys/pull/46924)
- Fixed the Dock context menu incorrectly following the active item in the Command Bar instead of showing its own menu in [#46420](https://github.com/microsoft/PowerToys/pull/46420). Thanks [@jiripolasek](https://github.com/jiripolasek)!
- Fixed duplicate "Pin to..." context menu entries appearing on top-level home page commands after hiding and reopening the window in [#46458](https://github.com/microsoft/PowerToys/pull/46458)
- Fixed binary file corruption (invisible icons) when creating new extensions via the built-in "Create Extension" command in [#46490](https://github.com/microsoft/PowerToys/pull/46490). Thanks [@jiripolasek](https://github.com/jiripolasek)!
- Fixed screen reader announcing "Enter Alias" instead of "Alias" on the Extension settings page, reducing confusing duplicate announcements in [#45906](https://github.com/microsoft/PowerToys/pull/45906)
- Added screen reader announcements for shortcut key information on the settings button, improving accessibility for assistive technology users in [#46164](https://github.com/microsoft/PowerToys/pull/46164). Thanks [@jiripolasek](https://github.com/jiripolasek)!
- Fixed keyboard navigation double Tab stop in the details panel so Tab moves directly to interactive controls in [#46346](https://github.com/microsoft/PowerToys/pull/46346)
- Prevented PgUp/PgDown keyboard navigation from selecting non-interactive items such as separators or section headers in [#46439](https://github.com/microsoft/PowerToys/pull/46439). Thanks [@jiripolasek](https://github.com/jiripolasek)!
- Added a guard to prevent a crash when navigating back with an empty navigation stack in [#46493](https://github.com/microsoft/PowerToys/pull/46493). Thanks [@jiripolasek](https://github.com/jiripolasek)!
- Moved each built-in extension to its own settings file, preventing the shared settings file from being silently overwritten, with transparent migration from the legacy file in [#46685](https://github.com/microsoft/PowerToys/pull/46685)
- Hardened ListViewModel fetch synchronization to handle overlapping refreshes, cancellation, and re-entrant ItemsChanged scenarios in [#46429](https://github.com/microsoft/PowerToys/pull/46429). Thanks [@jiripolasek](https://github.com/jiripolasek)!

Check failure

Code scanning / check-spelling

Forbidden Pattern Error documentation

re-entrant matches a line_forbidden.patterns rule: Should be 'reentrant' - '[Rr]e[- ]entrant'
- Refactored settings and app state to be immutable end-to-end using copy-on-write record patterns, eliminating a class of concurrency bugs during persistence in [#46451](https://github.com/microsoft/PowerToys/pull/46451)
- Extracted persistence logic from settings and app state models into dedicated service classes, improving separation of concerns and testability in [#46312](https://github.com/microsoft/PowerToys/pull/46312)
- Added a new logging infrastructure (CmdPalLogger, provider, and extension method) that integrates Microsoft.Extensions.Logging and routes output through ManagedCommon.Logger in [#46768](https://github.com/microsoft/PowerToys/pull/46768)
- Added Copilot instructions and skills to the extension template so new extensions include AI-assisted development guidance out of the box in [#46683](https://github.com/microsoft/PowerToys/pull/46683)
- Removed a legacy workaround for FontIconSource.CreateIconElement icons not being visible, as the issue was fixed in Windows App SDK 1.8.4 in [#45790](https://github.com/microsoft/PowerToys/pull/45790). Thanks [@jiripolasek](https://github.com/jiripolasek)!
- Updated CommunityToolkit.WinUI packages to 8.2.251219 and removed SearchBar debouncer workaround hacks that are no longer needed in [#46027](https://github.com/microsoft/PowerToys/pull/46027)
- Updated the PowerToys extension solution filter to include missing project dependencies in [#46136](https://github.com/microsoft/PowerToys/pull/46136). Thanks [@jiripolasek](https://github.com/jiripolasek)!
- Fixed keyboard focus restoration on the Extensions settings page so that Shift+Tab navigation returns to the previously selected extension card in [#45903](https://github.com/microsoft/PowerToys/pull/45903). Thanks [@jiripolasek](https://github.com/jiripolasek)!
- Reverted focus restoration on the Extensions settings page that was causing clicks to open the wrong extension item in [#46642](https://github.com/microsoft/PowerToys/pull/46642). Thanks [@jiripolasek](https://github.com/jiripolasek)!
- Fixed Calculator extension unit tests failing under non-English cultures by pinning the C++ evaluator to the classic locale in [#46911](https://github.com/microsoft/PowerToys/pull/46911)
- Fixed a type rename missed during a merge gap that broke compilation in [#46599](https://github.com/microsoft/PowerToys/pull/46599). Thanks [@jiripolasek](https://github.com/jiripolasek)!
- Fixed a build-breaking merge inconsistency in DockWindow caused by concurrent changes in [#46639](https://github.com/microsoft/PowerToys/pull/46639). Thanks [@jiripolasek](https://github.com/jiripolasek)!
- Moved developer documentation to the standard doc/devdocs/modules/cmdpal location, consistent with other modules in [#46926](https://github.com/microsoft/PowerToys/pull/46926)

## Display Management

- Re-enabled the PowerDisplay module in PowerToys with installer integration, a new icon and logo, DPI-related fixes, and UI/UX improvements in [#46489](https://github.com/microsoft/PowerToys/pull/46489)

## Image Resizer

- Migrated Image Resizer from WPF to WinUI 3, enabling future AOT compilation for 1.5-3x performance improvements and aligning with Windows 11 design language in [#45288](https://github.com/microsoft/PowerToys/pull/45288)
- Fixed missing PNG encoder settings by applying codec-specific encoder properties in the transcode path and passing the PNG interlace option to the WinRT encoder in [#46695](https://github.com/microsoft/PowerToys/pull/46695)

## Peek

- Added auto-detection of file name encoding when previewing zip files, fixing garbled text for archives created on non-UTF-8 systems in [#44799](https://github.com/microsoft/PowerToys/pull/44799). Thanks [@oxygen-dioxide](https://github.com/oxygen-dioxide)!

## PowerToys Run

- Fixed a command breakout issue in the Shell plugin by escaping double quotes in user input before passing to shell processes in [#45554](https://github.com/microsoft/PowerToys/pull/45554). Thanks [@RinZ27](https://github.com/RinZ27)!
- Removed unused XAML namespace declarations from PowerLauncher XAML files, cleaning up dead references in [#46221](https://github.com/microsoft/PowerToys/pull/46221)

## Quick Accent

- Added subscript and superscript Unicode characters to the Special Characters set for keys 0-9, A, E, N, X, Y, Z, and math operators in [#45540](https://github.com/microsoft/PowerToys/pull/45540). Thanks [@Salehnaz](https://github.com/Salehnaz)!
- Added the missing Icelandic accented letter i to the VK_I key definition in [#46424](https://github.com/microsoft/PowerToys/pull/46424). Thanks [@squirrelslair](https://github.com/squirrelslair)!
- Added Shift+N capitalization support for superscript Latin small letter n, mapping to modifier letter capital N in [#46571](https://github.com/microsoft/PowerToys/pull/46571). Thanks [@PesBandi](https://github.com/PesBandi)!

## Settings

- Fixed the Quick Accent character sets list being cropped and not reflowing when the Settings window is resized in [#45986](https://github.com/microsoft/PowerToys/pull/45986). Thanks [@daverayment](https://github.com/daverayment)!
- Fixed arrow key icons rendering as box placeholders by switching from glyph codepoints to standard Unicode arrow characters in [#46454](https://github.com/microsoft/PowerToys/pull/46454)
- Updated the shortcut conflict checkbox label from "Ignore shortcut" to "Ignore conflict" for clarity in [#46318](https://github.com/microsoft/PowerToys/pull/46318)

## Text Extractor

- Refactored PadImage to use an out parameter and improved bitmap disposal to prevent memory leaks in the OCR capture pipeline in [#44906](https://github.com/microsoft/PowerToys/pull/44906). Thanks [@adelobosko](https://github.com/adelobosko)!

## ZoomIt

- Added panoramic/scrolling screenshot capture, text extraction when snipping, and break timer improvements with screen saver mode and optional computer lock in [#46506](https://github.com/microsoft/PowerToys/pull/46506). Thanks [@foxmsft](https://github.com/foxmsft), [@MarioHewardt](https://github.com/MarioHewardt), and [@markrussinovich](https://github.com/markrussinovich)!
- Fixed ZoomIt x86 build compatibility by emulating the _mm_cvtsi128_si64 intrinsic with _mm_storel_epi64 for 32-bit targets in [#46529](https://github.com/microsoft/PowerToys/pull/46529). Thanks [@foxmsft](https://github.com/foxmsft)!

## Development

### Build

- Updated the Windows Implementation Library (WIL) to version 1.0.250325.1, now managed centrally via Directory.Packages.props in [#43503](https://github.com/microsoft/PowerToys/pull/43503)
- Upgraded the check-spelling CI action to v0.0.26, fixing spell-check failures on fork PRs and updating exclusion patterns in [#46851](https://github.com/microsoft/PowerToys/pull/46851). Thanks [@jsoref](https://github.com/jsoref)!
- Added contributor names from a recent PR to the spellchecker allow-list to prevent CI spelling errors in [#46765](https://github.com/microsoft/PowerToys/pull/46765). Thanks [@jiripolasek](https://github.com/jiripolasek)!

Check failure

Code scanning / check-spelling

Unrecognized Spelling Error documentation

spellchecker is not a recognized word
- Reverted the pinning of the check-spelling action to v0.0.26 after determining it was unrelated to the pipeline issue in [#46749](https://github.com/microsoft/PowerToys/pull/46749)
- Pinned the check-spelling GitHub Action to v0.0.26 to attempt to fix CI pipeline blocking PRs from forked repositories in [#46746](https://github.com/microsoft/PowerToys/pull/46746)
- Fixed the build.ps1 script so the -RestoreOnly switch works correctly and added support for .slnf solution filter files in [#46012](https://github.com/microsoft/PowerToys/pull/46012). Thanks [@raycheung](https://github.com/raycheung)!

### Code Quality

- Resolved StyleCop SA1614 warnings by adding meaningful text to previously empty XML parameter documentation tags in [#46706](https://github.com/microsoft/PowerToys/pull/46706)
- Resolved StyleCop SA1623 warnings by updating 29 property XML doc summaries to use required prefixes across multiple modules in [#46717](https://github.com/microsoft/PowerToys/pull/46717)
- Resolved StyleCop SA1616 warnings by adding meaningful descriptions to 6 previously empty return-value XML doc tags in [#46718](https://github.com/microsoft/PowerToys/pull/46718)
- Resolved StyleCop SA1622 warning by adding a meaningful description to an empty generic type parameter XML doc tag in [#46707](https://github.com/microsoft/PowerToys/pull/46707)

### Telemetry

- Documented three missing telemetry events in DATA_AND_PRIVACY.md covering module editor launches, dock configuration, and editor open methods in [#46371](https://github.com/microsoft/PowerToys/pull/46371)

### Tests

- Fixed MSTEST0017 analyzer warnings by correcting the argument order in 22 Assert calls across 8 test files to follow MSTest conventions in [#46712](https://github.com/microsoft/PowerToys/pull/46712)
- Added comprehensive unit tests for Hosts ValidationHelper (IPv4, IPv6, hostname validation) and ColorPicker format conversions (CMYK, HSB, HSI, HWB, CIE XYZ, CIE LAB, Oklab, Oklch, and more) in [#46679](https://github.com/microsoft/PowerToys/pull/46679)

### Documentation

- Cleaned up root-folder Markdown files by consolidating bullet styles, fixing spelling and grammar, converting HTML to Markdown, and applying sentence-case headers in [#46582](https://github.com/microsoft/PowerToys/pull/46582). Thanks [@Jay-o-Way](https://github.com/Jay-o-Way)!
- Added comprehensive DSC (Desired State Configuration) documentation with per-module reference pages, settings examples, and an overview guide covering 25+ PowerToys modules in [#42554](https://github.com/microsoft/PowerToys/pull/42554). Thanks [@Gijsreyn](https://github.com/Gijsreyn)!

### GitHub Actions

- Bumped the azure/cli GitHub Action from v2 to v3 in the MS Store submissions workflow in [#46562](https://github.com/microsoft/PowerToys/pull/46562)
- Bumped the azure/login GitHub Action from v2 to v3 in the MS Store submissions workflow in [#46323](https://github.com/microsoft/PowerToys/pull/46323)
Loading