Merged
Conversation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add macOS Gatekeeper workaround to README
- Node-level: Insert/Update/Delete on table variables now shows Critical "forces serial" warning instead of generic "lacks statistics" message - Statement-level: stats warning only fires when reading from a table variable, not modifying it - Parameters pane: exclude table variable names from local variable detection so @t is not misreported as an unresolved local variable Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
PointerWheelChanged was attached with bubble routing, so the ScrollViewer consumed scroll-down events before the Ctrl+zoom handler could intercept them. Switch to Tunnel routing via AddHandler so the zoom handler fires first, matching how the pan handlers are already wired up. Closes #83 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Add <ApplicationIcon> to csproj so the icon is embedded in the PE resources. Without this, Windows falls back to the default app icon when the application is pinned to the taskbar. Closes #85 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
RetrievedFromCache is an attribute on the StmtSimple XML element, but the parser was reading it from the child QueryPlan element where it never exists. Changed to read from stmtEl instead of queryPlanEl. Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…#93) - Server-side fetch by query_id, plan_id, query_hash, query_plan_hash, module name - Schema-qualified module names (OBJECT_SCHEMA_NAME + OBJECT_NAME) - Wildcard support for module filter (dbo.%Order%) - New columns: Query Hash, Plan Hash, Module with column-level filtering - Search bar in toolbar with Enter-to-fetch - Database picker on Query Store tab - Select All/None toggle button - Second QS button click shows connection dialog for fresh tab - CLI: --query-id, --plan-id, --query-hash, --plan-hash, --module options - MCP: query_id, plan_id, query_hash, plan_hash, module parameters Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Copy Query ID, Plan ID, Query Hash, Plan Hash, Module Name, Query Text - Copy Row (tab-delimited, all columns) - Items disabled when no row selected or value is empty Closes #91 Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Rebuild connection string from current database selection at execution time rather than relying on cached _connectionString from SelectionChanged. Guarantees the picker state is always reflected when running queries. Closes #92 Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Core: - ServerMetadataService: using → await using for async disposal - KeychainCredentialService: fix potential deadlock on stdout/stderr - ShowPlanParser: add ParseError property instead of silent swallow - EstimatedPlanExecutor: null check on BatchSequence in merge - ServerConnection: throw when SQL auth credentials missing - QueryStoreService: fix PlanId filter applied after ROW_NUMBER CLI: - AnalyzeCommand: add missing return after credential check failure - AnalyzeCommand: wrap BuildServerConnection in try/catch - AnalyzeCommand: respect --output flag in live mode - Add --top/--hours-back/--timeout validation - QueryStoreCommand: add .env file support - Extract shared ConnectionHelper to eliminate duplication UI: - Fix MCP session leak: call viewer.Clear() on all tab close paths - Dispose CancellationTokenSource before creating new instances - Dispose TextMate.Installation on DetachedFromVisualTree - Consolidate duplicate Connect_Click / ShowConnectionDialogAsync - Cancel in-flight fetch on QS database change - Add try/catch to SavePlan_Click - Log MCP startup errors to Debug output - Validate numeric input in QS search (Query ID / Plan ID) - Remove dead QueryStoreDialog (superseded by QueryStoreGridControl) - Remove dead _currentPropertySection field Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Enables automatic PR reviews on dev and main branches with context-aware instructions for Avalonia app, PlanAnalyzer core, MCP server, and test code paths. Uses chill profile to reduce noise. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Right-click "View History" on any Query Store row opens a history window - ScottPlot.Avalonia chart shows time-series metrics per plan (separate colored lines) - 13 selectable metrics: 7 averages + 5 totals + executions - SQL aggregates across execution_type (Regular/Aborted/Exception) via GROUP BY - UTC-aware: filters with GETUTCDATE(), displays in local time - Hover tooltip shows plan, metric value, and timestamp - Adjustable hours-back with Refresh button - DataGrid with all metrics below the chart Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (30)
📝 WalkthroughWalkthroughThis PR introduces Query Store history visualization with ScottPlot charting, refactors Query Store UI from modal dialog to grid-integrated toolbar components, adds server-side filtering for Query Store analysis via CLI and UI, implements centralized connection management, and enhances core services with additional metadata tracking. Version bumped to 1.2.0 across all projects. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
✨ Finishing Touches
🧪 Generate unit tests (beta)
📝 Coding Plan
Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
v1.2.0 Release
Query Store Enhancements
Bug Fixes
Code Quality (22 fixes)
🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Bug Fixes
Documentation