Fix Data plugin metrics: always report at least one table entry
Details
GetMetricsAsync now always returns at least a "Dataset Store" table
entry so the plugin shows in Dashboard Data tab even with 0 datasets.
Also reports saved query count when queries exist.
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)
Fix duckdb_tables query error after SQLCipher migration
Details
DataPlugin.GetMetricsAsync was querying duckdb_tables() which no longer
exists after the DuckDB → SQLCipher migration. Replaced with
sqlite_master query to find dataset tables (ds_* pattern).
SQLite doesn't expose per-table byte sizes like DuckDB did, so the
method now returns a set of existing table names and the caller uses
the existing row-count × column-count heuristic for all tables.
- Rename QueryDuckDbTableSizesAsync → QueryDatasetTablesAsync
- Return HashSet<string> instead of Dictionary<string, long>
- Query sqlite_master WHERE type='table' AND name LIKE 'ds_%'
- Fix stale DuckDB references in comments
- Bump Data plugin 1.21.1 → 1.21.2
Fix RSS feed refresh not detecting new articles
Details
Root cause: deduplication used URL-only comparison, but feeds where
all entries share the same link (e.g., changelog feeds pointing to
/changelog) would reject every article after the first as a "duplicate".
Fix: add EntryId field to RssArticle populated from the Atom <id> or
RSS <guid> element. Dedup now checks entry ID first (globally unique
per spec), falling back to URL comparison for feeds without entry IDs.
Fix feed selector dropdown showing empty
Details
MenuFlyout.Opening event doesn't fire when wired via XAML attribute
because MenuFlyout is not a Control in the visual tree — it's an
AvaloniaObject attached via Button.Flyout. Wire the event in the
constructor instead, where we can directly access the flyout instance.
Get notified about new releases