- test(server-monitor): require TLS 1.2 in HTTPS test server ff3d431
- chore(deps): bump certifi from 2026.7.22 to 2026.10.19 9fd2314
- fix(server-monitor): correct ssl verification logic and improve cert parsing 08181c9
- chore(deps): bump pydantic from 2.13.5 to 2.14.1 bfa0d9e
- refactor(validation): use Field const instead of Literal for widget type schema 04153be
- fix(window-switcher): improve mouse hover detection for window focus 5fd4161
- chore(deps): bump pillow from 12.3.0 to 13.0.0 b3f5c13
- chore(deps): bump tzdata from 2026.4 to 2026.5 4c039e9
- chore(ci): pin tooling versions and skip builds for dependabot PRs e64748a
- fix(bar_helper): prevent auto-hide from setting monitor hwnd to None 57cd65a
- feat(window_switcher): Alt+Tab style keybind and live window previews 2e67906
- refactor(popup): allow customizing the fade animation duration 963f600
- feat(windows_desktops): move COM to its own thread, add populated class 0f5b6d5
- feat(ci): report Pyright results in PR comments and job summaries 4c8a45a
- test(glazewm): remove client query test b0645c5
- fix(windows_desktops): reset stale COM objects when Explorer restarts a3f9fd4
- chore(deps): bump holidays from 0.105 to 0.106 7d7cc28
- refactor(win32): clean up utils and share the CLI pipe helpers a420194
- refactor(tests): remove redundant binding and native window tests 143afd0
- chore(deps): remove pywin32 00d1fa0
- refactor(cloud): replace win32com with comtypes in the backup task a12217e
- refactor(win32): replace win32com automation with comtypes d658fa1
- refactor(win32): replace the pywin32 shell interfaces with the bindings 2822516
- refactor(win32): replace win32security with the bindings 397bc56
- refactor(win32): replace the pywin32 pipe and event modules with the bindings 4c8111c
- refactor(win32): replace win32api with the bindings 1edc9e4
- refactor(win32): replace win32gui and win32process with the bindings 4ef4eef
- refactor(win32): replace win32con with constants.py 0a4fbbc
- chore(deps): bump cx-freeze from 8.6.4 to 8.7.2 dec2d23
- refactor(quick-launch): share terminate_process between providers d76bada
- refactor(win32): move all Windows declarations into the bindings b04fee7
- refactor(cli): remove obsolete icon cache cleanup from reset command e04c42e
- refactor(icons): clean up comments and rename resolve.py to sources.py 8157065
- fix(launchpad): get icons and titles from more websites 78d602c
- perf(taskbar): don't look up app names when matching windows 228357b
- refactor(icons): one icon service for all widgets f638259
- fix(window-actions): don't wait on the window you click 29b5b57
- fix(gpu): compute utilization the same way as Task Manager 75c087f
- fix(docs): audit widget pages against validation models and fix formatting a237644
- fix(window-switcher): defer taskbar connection until widget is shown 7cd2535
- fix(wifi): persist worker result and initialize label on startup f0460fd
- fix(glazewm): avoid unrelated queries on subscription events 169afdf
- chore(vscode): enable pytest in the Testing panel 1cbc7e5
- fix(types): drop duplicate annotations flagged by basedpyright 3fd3f89
- refactor: adopt Pyright strict mode across the codebase 4d6f6fb
- refactor(systray): systray cleanup and types 13f65e9
- feat(ui): add DropDownButton with menu flyout 58dc910
- feat(themes): redesign theme gallery with featured content and install flow af7b448
- chore(deps): bump python-dotenv from 1.2.3 to 1.2.4 a68b544
- chore(deps): bump pycaw from 20260921 to 20260927 b5829a4
- docs(tests): rewrite test suite README and improve missing header hints 63ad8c5
- refactor(win32): call the user32 wrappers in window_actions 152f977
- fix(ci): extract PR artifacts outside the workspace 5c887f6
- test: add pytest suite 7cb12f5
- fix(win32): correct ctypes declarations that disagree with the Windows SDK 47fb7a3
- feat(ui): add TextBox component and align_selected option to DropDown ebfc058
- fix(markdown): support lazy continuation lines in blockquotes 127e39d
- refactor(language): use shell_open for language settings shortcut 636da84
- refactor(tray): use shell_open for cloud and themes shortcuts f8229fa
- fix(bar): disable CSS engine box-shadow on bar frame 48df63f
- feat(wallpapers): open gallery at the current wallpaper 707d524
- fix(wallpapers): respect EXIF orientation in gallery and engine 5520b42
- perf(startup): avoid spawning komorebic, PowerShell and cmd.exe 1884933
- fix(komorebi): delete removed workspace widgets instead of detaching them 9afaddc
- fix(komorebi): run komorebic without cmd.exe and fix invalid arguments c5c12fd
- fix(audio-visualizer): hide on idle with hide() and service-owned timers ef83cdd
- fix(bar): keep widgets hidden from the context menu hidden 941e180
- chore(deps): bump pycaw from 20251023 to 20260921 cb6b8f1
- chore(deps): bump comtypes from 1.4.16 to 1.4.17 895bc1d
- feat(audio-visualizer): add source option to pick the output device (#1131) 71afc82
- fix(widgets): let self-hiding widgets hide while the bar is autohidden 9aff5b4
- chore(deps): bump holidays from 0.103 to 0.105 (#1134) d6d1e6d
- fix(wifi): elide wifi label if it's too long (#1127) c0caaa9
- fix(bar): stop bottom adaptive bar jumping when edgeradius changes 046ac67
- fix(bar): draw adaptive border along the side facing the desktop 5ce4609
- fix(widgets): stop bar widgets from creating native windows 18283d8
- fix(win32): set correct packing for DWM_THUMBNAIL_PROPERTIES 248253c
- fix(bar_manager): collect grouper child keybindings regardless of config order 17fabdd
- chore(deps): bump tzdata from 2026.3 to 2026.4 11a011e
- fix(dpi): handle display scale changes in bar and widgets 2e87be5
- fix(media-lite): clip artwork background to popup rounded shape 7ce0d44
- fix(komorebi): stop event listener without blocking on pending pipe connect b3267bc
- fix(bar): keep adaptive rail when no island is left e8f8994
- fix(open-meteo): use module-level REGION_FIELDS constant 2ec985c
- chore(deps): bump pydantic from 2.13.4 to 2.13.5 d2d5db2