Add cross-block text selection for Notes editor
Details
Implements document-like selection across block boundaries in the block
editor. Double-tap Cmd+A selects all blocks (first tap selects within
the focused block, second escalates to all blocks). Shift+Click extends
selection from the anchor block to the clicked block. Selected blocks
receive a visual highlight overlay via the block-cross-selected CSS class.
Cmd+C copies aggregated text from selected blocks separated by blank
lines. Cmd+X copies and deletes. Delete/Backspace removes selected
blocks. Escape or clicking into a single block clears the selection.
Typing any character also dismisses the selection.
State is managed via CrossBlockSelection record on NotesViewModel with a
static event that BlockWrapper instances subscribe to for highlight
updates. No SDK or UI.Adaptive changes required.
Add chart query error recovery in ChartDataLoader
Details
When a dataset chart query fails with a binder or aggregation error,
the loader now sends a ChartQueryErrorMessage to the shell's
DatasetInsightOrchestrator for AI-assisted correction. The AI returns
a fixed chart config which is retried once. Recovery has a 15-second
timeout and only attempts one retry to prevent infinite loops.
Notes plugin version bump to 1.56.0.
Add chart query error recovery and granular insight progress updates
Details
Add ChartQueryErrorMessage to SDK for cross-boundary error recovery
communication. When a chart's dataset query fails (e.g., missing
aggregation on GROUP BY), the orchestrator receives the error context,
sends it to the AI for a corrected chart config, and retries once.
Add intermediate progress updates to the insight generation pipeline
so users see status at each stage: sending to AI, processing response,
generating chart datasets, and saving to Notes.
SDK version bump to 1.59.0 for new message type.
Data plugin: visual overhaul + smart delete with reference checking
Details
Flatten sidebar item styling (smaller icons, tighter margins) to match
Notes' minimal aesthetic. Add hover-reveal (x) delete buttons on Views
and AI Generated list items. Extract delete logic into partial class
DataViewModel.Delete.cs with async reference search — on delete request,
the overlay now checks for cross-plugin entities referencing the dataset
via SDK SearchAsync and displays clickable navigation links before
confirming. Add DatasetReference model, wire IPrivStackSdk through
DataPlugin. Bump version to 1.20.0.
Add Embedding Space tab to Graph plugin (v1.58.0)
Details
Integrate the 3D embedding space visualization as a second tab in the
Graph plugin. New EmbeddingDataService calls the rag_fetch_all FFI,
projects 768-dim embeddings to 3D via random projection, and computes
pairwise cosine similarity edges above a configurable threshold.
EmbeddingSpaceViewModel manages loading, parameters (similarity threshold,
max points, max neighbors, auto-rotate), entity type filtering, and
selection state. GraphViewModel gains GraphTab enum and ActiveTab property.
GraphView.axaml adds a tab strip with Knowledge Graph / Embedding Space
tabs, per-tab sidebar controls, and per-tab footer stats. GraphView
code-behind handles tab switching with lazy control creation.
GraphPlugin version bumped to 1.1.0, Desktop to 1.58.0.
Get notified about new releases