Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
dcbcf2c
Add Light Theme to Dashboard
ClaudioESSilva Feb 26, 2026
73f8947
Added default sort by 'DisplayName' to the server list.
HannahVernon Feb 26, 2026
bd461d1
Merge pull request #1 from HannahVernon/feature/sort-server-list
HannahVernon Feb 26, 2026
96ad0db
Added sorting of Server Health Cards to the LandingPage in the Full D…
HannahVernon Feb 26, 2026
e6e2605
Add light theme to Lite
ClaudioESSilva Feb 27, 2026
ad95215
Fix hover colors to make sure we see what we are selecting
ClaudioESSilva Feb 27, 2026
21a1632
Rename Methods to remove Dark reference keep just Theme
ClaudioESSilva Feb 27, 2026
c27eba0
Add Light Theme to Dashboard
ClaudioESSilva Feb 26, 2026
a3a6dd5
Add light theme to Lite
ClaudioESSilva Feb 27, 2026
e7e87a5
Fix hover colors to make sure we see what we are selecting
ClaudioESSilva Feb 27, 2026
3ac232b
Rename Methods to remove Dark reference keep just Theme
ClaudioESSilva Feb 27, 2026
263971a
Add "Cool Breeze" theme
ClaudioESSilva Feb 27, 2026
f81aa0a
Fix 1st load flashing white & Memory and Query Tabs on theme change e…
ClaudioESSilva Feb 27, 2026
033bb23
Merge branch 'feature/AddLightTheme' of https://github.com/ClaudioESS…
ClaudioESSilva Feb 27, 2026
2f41791
Make sure the right/previous theme is loaded at startup and lite prev…
ClaudioESSilva Feb 27, 2026
b612ead
Support comma-separated values in text column filters (#348)
erikdarlingdata Feb 27, 2026
a644408
Merge pull request #354 from erikdarlingdata/feature/comma-separated-…
erikdarlingdata Feb 27, 2026
3b5a707
implements #30
ClaudioESSilva Feb 27, 2026
96f68b8
Merge pull request #330 from HannahVernon/feature/sort-server-list-in…
erikdarlingdata Feb 27, 2026
6329343
Rules 15-24: Pattern precision, threshold tuning, and message improve…
erikdarlingdata Feb 27, 2026
c708942
Merge pull request #356 from erikdarlingdata/fix/rules-15-24-review
erikdarlingdata Feb 27, 2026
8a1e1e5
Supports "Open .sqlplan file", "paste xml" and "drag & drop" of plans…
ClaudioESSilva Feb 27, 2026
f0ee72c
Move collect_query/collect_plan upgrade to proper upgrade path (2.0.0…
erikdarlingdata Feb 27, 2026
ff0875c
Revert preview theme theme on Cancel/close
ClaudioESSilva Feb 27, 2026
10b04a9
Fix StaticResource BackgroundLightBrush that should be DynamicResource
ClaudioESSilva Feb 27, 2026
bf15fce
Fix the "misses the blue-tinted chart backgrounds" for "CoolBreeze"
ClaudioESSilva Feb 27, 2026
f194465
Merge pull request #357 from erikdarlingdata/fix/upgrade-path-collect…
erikdarlingdata Feb 27, 2026
ea5d8f2
Rule 11: Skip PROBE-only bitmap filter predicates (#358)
erikdarlingdata Feb 27, 2026
13d61c1
Merge pull request #355 from ClaudioESSilva/feature/add-warning-statu…
erikdarlingdata Feb 27, 2026
213c529
Merge pull request #347 from ClaudioESSilva/feature/AddLightTheme
erikdarlingdata Feb 27, 2026
ffdbf27
Fix AG secondary filter to skip all inaccessible databases (#325)
erikdarlingdata Feb 27, 2026
ac3d821
Merge pull request #360 from erikdarlingdata/fix/ag-secondary-filter-v2
erikdarlingdata Feb 27, 2026
974fd66
Bump all project versions to 2.1.0
erikdarlingdata Feb 27, 2026
fcfc7bc
Merge pull request #361 from erikdarlingdata/fix/version-bump-2.1.0
erikdarlingdata Feb 27, 2026
184ee63
Plan viewer polish: index suggestions, property panel, muted brush audit
erikdarlingdata Feb 28, 2026
dad6815
Merge pull request #365 from erikdarlingdata/feature/plan-viewer-polish
erikdarlingdata Feb 28, 2026
999d480
Plan canvas top-left alignment and scroll reset on statement switch
erikdarlingdata Feb 28, 2026
40ca3ec
Merge pull request #366 from erikdarlingdata/feature/plan-canvas-topleft
erikdarlingdata Feb 28, 2026
385cb42
Add right-click 'Copy Query Text' to Dashboard statements grid
erikdarlingdata Feb 28, 2026
2f3da56
Merge pull request #367 from erikdarlingdata/feature/statements-copy-…
erikdarlingdata Feb 28, 2026
b737904
Add Visual C++ Redistributable to Lite requirements in README (#369)
erikdarlingdata Feb 28, 2026
96d3949
Rewrite all PlanAnalyzer warning messages to be actionable
erikdarlingdata Feb 28, 2026
453c76d
Merge pull request #370 from erikdarlingdata/feature/actionable-advic…
erikdarlingdata Feb 28, 2026
ef46c84
Refine PlanAnalyzer advice per expert guidance
erikdarlingdata Feb 28, 2026
e7a48d8
Merge pull request #371 from erikdarlingdata/feature/advice-v2-per-ru…
erikdarlingdata Feb 28, 2026
92142a0
Add wait stats banner to Dashboard and Lite plan viewers
erikdarlingdata Feb 28, 2026
cf5f888
Merge pull request #373 from erikdarlingdata/feature/wait-stats-banner
erikdarlingdata Feb 28, 2026
62cc178
Sync plan-b v0.3.0 improvements to Dashboard and Lite
erikdarlingdata Feb 28, 2026
56b76e2
Merge pull request #374 from erikdarlingdata/feature/plan-insights-sync
erikdarlingdata Feb 28, 2026
dcf9be6
Update New Query Plan Viewer.jpg
erikdarlingdata Feb 28, 2026
a6da748
Merge pull request #376 from erikdarlingdata/update-plan-viewer-picture
erikdarlingdata Feb 28, 2026
9640483
Revise README for clarity and new features
erikdarlingdata Feb 28, 2026
18210c6
Merge pull request #377 from erikdarlingdata/erikdarlingdata-patch-1
erikdarlingdata Feb 28, 2026
0cad346
Add reserved threads and 10 missing showplan XML attributes (#378)
erikdarlingdata Feb 28, 2026
e41b03c
Add PlanAnalyzer rules 26-29, exchange spill enhancement, RID Lookup fix
erikdarlingdata Feb 28, 2026
b8019d2
Merge pull request #379 from erikdarlingdata/feature/plan-analyzer-ru…
erikdarlingdata Feb 28, 2026
3dd2570
Sync plan-b fixes: temp table names, Rule 28, memory grants, wait sta…
erikdarlingdata Mar 1, 2026
3f23ae2
Sync plan-b property display additions to Dashboard and Lite
erikdarlingdata Mar 1, 2026
282c879
Merge pull request #381 from erikdarlingdata/feature/plan-viewer-prop…
erikdarlingdata Mar 1, 2026
d1fd5c9
Show UDF CPU and elapsed in Runtime Summary pane when > 0
erikdarlingdata Mar 1, 2026
dacaf61
Merge pull request #382 from erikdarlingdata/feature/udf-runtime-summary
erikdarlingdata Mar 1, 2026
699f248
Fix UTC/local timezone mismatch in blocked process XML processor
erikdarlingdata Mar 1, 2026
a06125f
Merge pull request #383 from erikdarlingdata/fix/blocked-process-utc-…
erikdarlingdata Mar 1, 2026
8ff0fa0
Fix SQL dumps on mirroring passive servers (RESTORING databases)
erikdarlingdata Mar 1, 2026
acf5a6e
Merge pull request #385 from erikdarlingdata/fix/mirroring-restoring-…
erikdarlingdata Mar 1, 2026
a070a56
Fix Lite collectors for mirroring/RESTORING database crash (#384) (#386)
erikdarlingdata Mar 1, 2026
82e8f73
Fix UI hang when adding first server to Dashboard (#387) (#388)
erikdarlingdata Mar 2, 2026
c51722f
Added exclusions for sp_server_diagnostics and WAITFOR wait types to …
HannahVernon Mar 2, 2026
e482537
Sync PlanAnalyzer + ShowPlanParser improvements from plan-b
erikdarlingdata Mar 2, 2026
667c151
Merge pull request #389 from erikdarlingdata/feature/plan-analyzer-sync
erikdarlingdata Mar 2, 2026
6de3865
Fix/duckdb aliases in get long running queries async (#391)
HannahVernon Mar 2, 2026
e21f7c4
Sync operator time calculation fixes from plan-b
erikdarlingdata Mar 3, 2026
a512b0a
Merge pull request #392 from erikdarlingdata/feature/operator-time-fix
erikdarlingdata Mar 3, 2026
2cb6ecc
Analysis rule refinements: memory grant MB display, missing index qua…
erikdarlingdata Mar 3, 2026
8c2e98e
Add time display mode toggle (Server Time / Local Time / UTC) — Issue…
erikdarlingdata Mar 3, 2026
adc5535
Add "Open External Plan" button to "Dashboard"
ClaudioESSilva Mar 3, 2026
84a3699
Add "Open External Plan" button to Lite.
ClaudioESSilva Mar 3, 2026
f479edf
Change icon to magnifier and button text
ClaudioESSilva Mar 3, 2026
f40e4e6
Rename button name and change icon
ClaudioESSilva Mar 3, 2026
363f9b5
Fix OverflowException on wait stats with large decimal values — Issue…
erikdarlingdata Mar 3, 2026
ea694ce
Also fix decimal overflow in NocHealth poison wait avg_ms_per_wait
erikdarlingdata Mar 3, 2026
c92bd68
Make "Paste XML" behaviour the same as Dashboard
ClaudioESSilva Mar 3, 2026
26f8390
Fix Focus when opening 1st time so paste works
ClaudioESSilva Mar 3, 2026
2e6d6db
Add missing icons
ClaudioESSilva Mar 3, 2026
33670d5
Reorder options to match Lite
ClaudioESSilva Mar 3, 2026
753bfe8
Match textbox style
ClaudioESSilva Mar 3, 2026
6dd3a91
Merge pull request #396 from erikdarlingdata/fix/decimal-overflow-395
erikdarlingdata Mar 3, 2026
445f502
Merge pull request #397 from ClaudioESSilva/feature/allow-external-ex…
erikdarlingdata Mar 3, 2026
a072377
make text match
ClaudioESSilva Mar 3, 2026
5d19000
Fix buttons sizes/styles
ClaudioESSilva Mar 3, 2026
fcf6caf
fix missing bold in some textblocks
ClaudioESSilva Mar 3, 2026
823ee3d
Match titles
ClaudioESSilva Mar 3, 2026
ed5cd52
Support Multi-file drag & drop and from "open file"
ClaudioESSilva Mar 3, 2026
eddb431
Missing Ctrl+V on Lite's per-server Plan Viewer empty state
ClaudioESSilva Mar 3, 2026
54a5571
Minor formatting
ClaudioESSilva Mar 3, 2026
e7f69ca
Clean "OpenMainWindowPlanTab" method - was public but uncalled
ClaudioESSilva Mar 3, 2026
9ea21e3
Merge pull request #398 from ClaudioESSilva/feature/allow-external-ex…
erikdarlingdata Mar 3, 2026
c1157f9
Fix password box style
ClaudioESSilva Mar 3, 2026
92c89c6
move encryption drop down to the left to match lite
ClaudioESSilva Mar 3, 2026
1dc5eab
Merge pull request #399 from ClaudioESSilva/feature/make-add-server-d…
erikdarlingdata Mar 3, 2026
6e199c8
v2.1.0 release prep: changelog, README, upgrade scripts, version prop…
erikdarlingdata Mar 3, 2026
11f50d4
Fix query_snapshots_collector schema mismatch after sp_WhoIsActive up…
erikdarlingdata Mar 3, 2026
b18945d
Add installer and query_snapshots fixes to 2.1.0 changelog (#403)
erikdarlingdata Mar 3, 2026
842dc68
Merge remote-tracking branch 'origin/main' into dev
erikdarlingdata Mar 3, 2026
10c67fc
Merge pull request #406 from erikdarlingdata/release/v2.1.0
erikdarlingdata Mar 3, 2026
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
97 changes: 97 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,60 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [2.1.0] - 2026-03-04

### Important

- **Schema upgrade**: The `config.collection_schedule` table gains two new columns (`collect_query`, `collect_plan`) for optional query text and execution plan collection. Both default to enabled to preserve existing behavior. Upgrade scripts run automatically via the CLI/GUI installer and use idempotent checks.

### Added

- **Light theme and "Cool Breeze" theme** — full light mode support for both Dashboard and Lite with live preview in settings ([#347])
- **Standalone Plan Viewer** — open, paste (Ctrl+V), or drag & drop `.sqlplan` files independent of any server connection, with tabbed multi-plan support ([#359])
- **Time display mode toggle** — show timestamps in Server Time, Local Time, or UTC with timezone labels across all grids and tooltips ([#17])
- **30 PlanAnalyzer rules** — expanded from 12 to 30 rules covering implicit conversions, GetRangeThroughConvert, lazy spools, OR expansion, exchange spills, RID lookups, and more ([#327], [#349], [#356], [#379])
- **Wait stats banner** in plan viewer showing top waits for the query ([#373])
- **UDF runtime details** — CPU and elapsed time shown in Runtime Summary pane when UDFs are present ([#382])
- **Sortable statement grid** and canvas panning in plan viewer ([#331])
- **Comma-separated column filters** — enter multiple values separated by commas in text filters ([#348])
- **Optional query text and plan collection** — per-collector flags in `config.collection_schedule` to disable query text or plan capture ([#337])
- **`--preserve-jobs` installer flag** — keep existing SQL Agent job schedules during upgrade ([#326])
- **Copy Query Text** context menu on Dashboard statements grid ([#367])
- **Server list sorting** by display name in both Dashboard and Lite ([#30])
- **Warning status icon** in server health indicators ([#355])
- Reserved threads and 10 missing ShowPlan XML attributes in plan viewer ([#378])
- Nightly build workflow for CI ([#332])

### Changed

- PlanAnalyzer warning messages rewritten to be actionable with expert-guided per-rule advice ([#370], [#371])
- PlanAnalyzer rule tuning: time-based spill analysis (Rule 7), lowered parallel skew thresholds (Rule 8), memory grant floor raised to 1GB/4GB (Rule 9), skip PROBE-only bitmap predicates (Rule 11) ([#341], [#342], [#343], [#358])
- First-run collector lookback reduced from 3-7 days to 1 hour for faster initial data ([#335])
- Plan canvas aligns top-left and resets scroll on statement switch ([#366])
- Plan viewer polish: index suggestions, property panel improvements, muted brush audit ([#365])
- Add Server dialog visual parity between Dashboard and Lite with theme-driven PasswordBox styling ([#289])

### Fixed

- **OverflowException** on wait stats page with large decimal values — SQL Server `decimal(38,24)` exceeding .NET precision ([#395])
- **SQL dumps** on mirroring passive servers with RESTORING databases ([#384])
- **UI hang** when adding first server to Dashboard ([#387])
- **UTC/local timezone mismatch** in blocked process XML processor ([#383])
- **AG secondary filter** skipping all inaccessible databases in cross-database collectors ([#325])
- DuckDB column aliases in long-running queries ([#391])
- sp_server_diagnostics and WAITFOR excluded from long-running query alerts ([#362])
- UDF timing units corrected: microseconds to milliseconds ([#338])
- DuckDB migration ordering after archive-and-reset ([#314])
- Int16 cast error in long-running query alerts ([#313])
- Missing dark mode on 19 SystemEventsContent charts ([#321])
- Missing tooltips on charts after theme changes ([#319])
- Operator time per-thread calculation synced across all plan viewers ([#392])
- Theme StaticResource/DynamicResource binding fix for runtime theme switching
- Memory grant MB display, missing index quality scoring, wildcard LIKE detection ([#393])
- **Installer validation** reporting historical collection errors as current failures — now filters to current run only ([#400])
- **query_snapshots schema mismatch** after sp_WhoIsActive upgrade — collector auto-recreates daily table when column order changes ([#401])
- **Missing upgrade script** for `default_trace_events` columns (`duration_us`, `end_time`) on 2.0.0→2.1.0 upgrade path ([#400])

## [2.0.0] - 2026-02-25

### Important
Expand Down Expand Up @@ -180,6 +234,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Delta normalization for per-second rate calculations
- Dark theme UI

[2.1.0]: https://github.com/erikdarlingdata/PerformanceMonitor/compare/v2.0.0...v2.1.0
[2.0.0]: https://github.com/erikdarlingdata/PerformanceMonitor/compare/v1.3.0...v2.0.0
[1.3.0]: https://github.com/erikdarlingdata/PerformanceMonitor/compare/v1.2.0...v1.3.0
[1.2.0]: https://github.com/erikdarlingdata/PerformanceMonitor/compare/v1.1.0...v1.2.0
Expand Down Expand Up @@ -274,3 +329,45 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
[#281]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/281
[#284]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/284
[#287]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/287
[#313]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/313
[#314]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/314
[#17]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/17
[#30]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/30
[#319]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/319
[#321]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/321
[#325]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/325
[#326]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/326
[#327]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/327
[#331]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/331
[#332]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/332
[#335]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/335
[#337]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/337
[#338]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/338
[#341]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/341
[#342]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/342
[#343]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/343
[#347]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/347
[#348]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/348
[#349]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/349
[#355]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/355
[#356]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/356
[#358]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/358
[#359]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/359
[#362]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/362
[#365]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/365
[#366]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/366
[#367]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/367
[#370]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/370
[#371]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/371
[#373]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/373
[#378]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/378
[#379]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/379
[#382]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/382
[#383]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/383
[#384]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/384
[#387]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/387
[#391]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/391
[#392]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/392
[#393]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/393
[#289]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/289
[#395]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/395
Loading
Loading