Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 56 of 266 Next →
February 27, 2026
minor Data

Add data.generate_insights intent for AI-triggered dataset analysis

Data 1.20.6 → 1.21.0 | 83ccc5bd
Details

Expose the existing insights generator pipeline as an intent so Duncan

can trigger exploratory data analysis when users ask to analyze, report

on, or generate insights from an embedded dataset. The intent fetches

sample data, pushes a loading suggestion card, and sends the

DatasetInsightRequestMessage to the shell's DatasetInsightOrchestrator

— the same pipeline used by the UI "Generate Insights" button.

Bump Data plugin version to 1.21.0.

patch Desktop Shell

Fix Duncan not initializing on app load due to vault timing

Details

The AI provider's IsConfigured check uses a synchronous vault read with

a 2-second timeout (GetApiKeySync). During DI resolution this runs before

EnsureStandardVaults has unlocked the ai-vault, so it times out and

returns false. Since IsEnabled is a plain computed property with no

re-notification, Duncan stays dead for the entire session.

Fix:

  • AiService.RecheckAvailability() — called from the deferred background

services block after the vault is guaranteed unlocked. Re-evaluates the

provider's IsConfigured state.

  • AiService.AvailabilityChanged event — fires when availability transitions.
  • AiSuggestionTrayViewModel subscribes to AvailabilityChanged and re-raises

PropertyChanged for IsEnabled, which flips the UI visibility binding.

minor Notes

Notes: multi-image gallery for image blocks

Notes 1.63.0 → 1.64.0 | e0cd4248
Details

Replace the single-image ImageBlockEditor with a multi-image gallery

matching the Journal's photo section pattern. Key changes:

  • Add ImagePhoto record, ImagePhotoLayout enum, extend ImageBlock with

Photos list and PhotoLayout property (backward-compatible — legacy

single-image blocks auto-migrate on load)

  • New ImageLayoutBuilder: smart grid layouts (hero top/left/right, 2x2,

rows-of-3) with hover lift animation, rounded corners, and shadow

  • New ImageLightbox: full-screen overlay with zoom (wheel, 0.5x–5x),

pan (drag when zoomed), navigation arrows, counter, double-tap reset

  • Rewrite ImageBlockEditor: drop zone for empty state, multi-select

file picker, drag-to-reorder between cells, per-image remove button

on hover, layout picker for 3+ photos

  • Add lightbox state and commands to NotesViewModel
  • Update Markdown/PDF/DOCX export services to handle multi-image blocks
  • Bump version to 1.64.0
patch Desktop Shell

Load .env file at startup for local development

Details

Adds a LoadDotEnv() helper that walks up from the executable directory

to find the nearest .env file and sets any missing environment variables.

This ensures PRIVSTACK_GITHUB_CLIENT_ID and other secrets are available

during local dev without requiring manual export or launchSettings.json.

Existing env vars are never overwritten.

February 26, 2026
patch Notes

Fix DOCX export crash: copy NuGet dependencies to output

Details

Add CopyLocalLockFileAssemblies to the Notes plugin csproj. Without

this, NuGet dependencies like DocumentFormat.OpenXml and QuestPDF were

not copied to the build output. When the PluginLoadContext's

AssemblyDependencyResolver tried to resolve them at runtime, it failed

with FileNotFoundException because there's no runtimeconfig.json to

probe the NuGet cache.

This matches the pattern used by PrivStack.Plugin.Journal which also

has plugin-specific NuGet dependencies.

← Prev Page 56 of 266 Next →

Get notified about new releases