v26.4.22.1179
Pre-release
Pre-release
What's New in v26.4.22.1179
Features
- Light mode is now available, with an option to follow the system theme
- Column drag-and-drop reordering in the event table, with persistent column sizing and ordering across sessions
- Details pane height is now remembered as a user preference
- XML resolution no longer requires the toggle — XML is automatically available, but only resolved when a filter actually needs it
- Improved keyboard navigation in the event table with refactored event selection
- Support for exported LocaleMetaData folders when resolving events from exported
.evtxfiles - DbTool now supports MTA files for provider details
- Added missing severity levels so more events display the correct level
- Added additional event types and EvtVariantTypes for broader event coverage
- Title bar now shows app name and version before the log names
Improvements
- Faster event table loading with batch loading and improved indexing performance
- Better performance when opening multiple logs (channels + semaphore-throttled threading)
- Filtering automatically switches to parallel processing above a threshold
- Smoother UI updates — the event table and status bar only refresh when values actually change
- Added a rotating cache for NTStatus and HResult lookups
- Caches are now instance-based so they release at end of life cycle
- Reduced memory usage and optimized hot paths throughout the app (string cache, keyword display, property/format caching, sort-in-place, IReadOnlyList)
- Refactored logger to allocate only when an event is actually logged; uses a temp file instead of in-memory buffering
- Refactored async patterns: removed
FireAndForgetin favor ofInvokeAsync, convertedasync voidtoasync Task, wrappedInvokeAsynccalls with exception handlers - Simplified provider lock pattern and refactored event resolver
- Improved event template matching when multiple potential templates exist
- Refactored filtering references to keyword display name
- Unified State naming across the app for consistency
- Release notes now render properly as Markdown on GitHub
- Removed unused HTML/navigation since the app does not use page navigation
- Removed
aria-expandedfrom the Razor side (handled in JS now) - Created a GitHub PR pipeline and removed unused legacy pipelines
- Hardened the release workflow to run with least required permissions
- Treat warnings as errors and cleaned up remaining warnings
- Added additional debug logging for event debugging
Bug Fixes
- Fixed index out of range errors when event messages contain a trailing
%nor use0as a terminator - Fixed variant type mismatch that could cause event resolution issues
- Fixed issue reading a log file after it was deleted
- Fixed temp file creation failure when encryption was involved (now uses a file stream directly)
- Fixed dispose method on the DB event resolver and a watcher constructor bug
- Fixed logger DI issue
- Fixed several smaller bugs and applied optimizations to ValueSelect dropdowns
- Fixed CI issue related to needs-upgrade checks
- Added a failure path when
Deserializereturns null - Added
IDisposableto several components to prevent leaks; cleaned up unneeded dispose patterns