Fix dismiss button and add View in Notes link for insight cards
Details
Three fixes for AI suggestion cards:
1. Dismiss button now works — AiSuggestionTrayViewModel handles
ContentSuggestionDismissedMessage to remove the card from the UI.
2. After saving insights to Notes, the "Save as Notes" action is replaced
with a "View in Notes" link that navigates directly to the created page.
3. Register INavigationService in DI so the orchestrator can deep-link
navigate to the insight page when the user clicks "View in Notes".
Desktop 1.55.0 → 1.55.1
Add chart-eligible column filtering for view-based insights
Details
When generating AI insights from SQL views, the view may produce computed
columns (e.g., billable_pct) that don't exist in the underlying dataset.
Charts reference the dataset directly via AggregateAsync, so they can only
use the dataset's actual columns.
This adds ChartEligibleColumns/ChartEligibleColumnTypes to the insight
request message, allowing the Data plugin to pass the underlying dataset's
columns separately from the view's result columns. The orchestrator now
validates chart markers against these chart-eligible columns and instructs
the AI to only reference them in chart suggestions, while still analyzing
all view columns in the prose.
SDK 1.54.0 → 1.55.0, Desktop 1.54.5 → 1.55.0
Include dataset_id value in aggregate error messages
Details
When Uuid::parse_str fails on a dataset_id, the error message now
includes the actual value that failed to parse, making it much easier
to diagnose why chart data loading fails. Previously only returned
a generic "invalid dataset id" with no context.
Fix chart error swallowing in aggregate queries
Details
DatasetService.AggregateAsync and AggregateGroupedAsync were silently
returning empty results when the Rust FFI returned errors, causing charts
in AI-generated insight pages to show "No data available" instead of the
actual error message. Changed both methods to throw
InvalidOperationException with the error details so ChartDataLoader can
surface them in the UI. Added ExtractErrorMessage helper to parse the
error from Rust JSON responses. Also added debug logging for aggregate
queries, normalized aggregation values to lowercase in
TryParseChartMarker, and strip quotes from chart title values.
Version: 1.54.4 → 1.54.5
Fix table separator regex not matching dash characters
Details
The IsTableSeparator regex character class [\s:_-|] treated _-| as a
range (0x5F–0x7C), which excluded the literal dash character (0x2D).
This meant separator rows like |---|---| never matched, so markdown
tables were never detected and fell through as paragraph text.
Replaced the regex approach with a simpler character check that strips
pipes and verifies the remainder is only dashes, colons, and spaces.
Also made IsTableRow more lenient — trailing pipe is now optional since
some models omit it. Version 1.54.3 → 1.54.4.
Get notified about new releases