Fix Dashboard tab controls: remove linter-generated InitializeComponent stubs
Details
The linter added `private static void InitializeComponent() { throw
new NotImplementedException(); }` to all three tab UserControls. This
shadowed the Avalonia source generator's instance method, preventing
XAML from loading — all tabs rendered empty.
Wire Data plugin: register IIntentProvider + add IIndexableContentProvider
Details
Data plugin had IIntentProvider implemented (DataPlugin.Intents.cs)
but never registered it in OnInitializeAsync — intents were unreachable
via the capability broker.
Changes:
- Register IIntentProvider and IIndexableContentProvider in OnInitializeAsync
- Add IIndexableContentProvider implementation (DataPlugin.IndexableContent.cs):
indexes plugin feature description, dataset schemas with column types,
and saved SQL queries for RAG vector search
- Add IIndexableContentProvider to class declaration
- Version bump: 1.21.2 → 1.21.3 (csproj + metadata)
Add IDataMetricsProvider to Dashboard and Graph plugins
Details
Dashboard and Graph were the only plugins without any capability
interface implementations, so they never appeared in the Dashboard
Data tab's plugin metrics list.
Dashboard:
- Implements IDataMetricsProvider via partial class
- Reports subsystem count from SubsystemTracker as runtime metrics
- Version bump: 1.5.1 → 1.5.2
Graph:
- Implements IDataMetricsProvider via partial class
- Reports cached graph node and edge counts as runtime metrics
- Version bump: 1.1.0 → 1.1.1
Note: Build may fail at this commit due to concurrent in-progress
work by another session — will be resolved in a subsequent commit.
Split Dashboard into separate tab UserControls
Details
Extract Overview, Data, and Subsystems tabs from the monolithic
DashboardView.axaml (~1035 lines) into three independent UserControls.
A single ContentControl in the star row now swaps between lazily-created
and cached tab controls, ensuring only one tab exists in the visual tree
at a time. This eliminates the persistent scroll/layout bugs caused by
three competing elements sharing one Grid star cell with IsVisible toggling.
- DashboardOverviewTab: marketplace grid, category pills, stat cards,
responsive grid sizing handler, category-pill + plugin-action styles
- DashboardDataTab: storage metrics, plugin data tables, DB diagnostics
- DashboardSubsystemsTab: subsystem groups with live metrics
- DashboardView.axaml slimmed to ~110 lines (toolbar + ContentControl)
- Code-behind uses Dictionary<DashboardTab, Control> cache with
PropertyChanged listener for instant tab switching
- No ViewModel changes — all tabs inherit DataContext from ContentControl
- Version bump: 1.5.0 → 1.5.1
Move scroll spacing from ScrollViewer.Padding to content Margin
Details
ScrollViewer.Padding shrinks the viewport, reducing visible content
area. Move the spacing to Margin on the inner StackPanel instead —
this adds the spacing as part of the scrollable content extent, so
the 80px bottom space is scrollable buffer rather than viewport
reduction.
Get notified about new releases