Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 21 of 53 Next →
February 21, 2026
minor CoreDesktop Shell

Add cloud-aware chat with conversation history and persistent memory

Desktop 1.50.8 → 1.51.0 | 0049f885
Details

Cloud providers (OpenAI, Anthropic, Gemini) now build full message arrays from

ConversationHistory when present, enabling multi-turn conversations. Anthropic

uses automatic prompt caching (cache_control ephemeral) for multi-turn chats,

reducing repeat input cost to 10% on cache hits. AiPersona gains a richer

cloud system prompt with memory context injection and higher token budgets.

AiMemoryService persists learned user facts to JSON at DataPaths.BaseDir,

capped at 50 entries. AiMemoryExtractor runs a fire-and-forget secondary AI

call after cloud responses to extract memorable facts. The chat VM branches:

local models get the existing minimal prompt path; cloud models get history,

memory, and no aggressive sanitization. Desktop version bumped to 1.51.0.

minor SDK

Add AiChatMessage record and ConversationHistory to AiRequest

SDK 1.50.0 → 1.51.0 | ca666b10
Details

Introduces AiChatMessage (Role + Content) and an optional ConversationHistory

property on AiRequest for multi-turn chat support. Cloud providers can iterate

over the history to build full message arrays while local providers ignore it.

Backward-compatible — defaults to null. SDK version bumped to 1.51.0.

minor Desktop ShellSDK

Convert AI tray from flat card list to conversation chat interface

SDK 1.49.2 → 1.50.0 | Desktop 1.49.6 → 1.50.0 | e1dd9542
Details

Redesign the AI suggestion tray as a chat-style conversation UI with user/assistant

message bubbles. User actions (Summarize, Rewrite) appear as right-aligned user bubbles

with clickable source entity links, followed by left-aligned assistant response bubbles

with loading states, content, and action buttons.

Key changes:

  • Add UserPromptLabel to ContentSuggestionCard SDK model for user bubble text
  • New AiChatMessageViewModel with User/Assistant roles, state management, and actions
  • Refactor AiSuggestionTrayViewModel to use Messages collection instead of Cards
  • Add free-form chat input with AiSuggestionTrayViewModel.Chat.cs partial class
  • Rewrite AiSuggestionTray.axaml with chat bubble layout, auto-scroll, Enter-to-send
  • Wire NavigateToLinkedItemFunc for clickable source links in bubbles
  • Fix text overflow: all content uses TextWrapping="Wrap" instead of TextTrimming
  • Rename tray header from "AI Suggestions" to "PrivStack AI"
  • Mark old IAiTrayCardViewModel and ContentSuggestionCardViewModel as [Obsolete]
  • Bump SDK to 1.50.0, Desktop to 1.50.0
minor Data

Add AI Generated section to Data plugin sidebar

Data 1.18.2 → 1.19.0 | c1dbda09
Details

Isolates AI-generated datasets (category "ai-generated") into a dedicated

sidebar section between Datasets and Views. The new section uses a globe icon

with accent color to visually distinguish AI-derived data, and auto-hides

when no AI datasets exist.

DataObjectSummary gains a Category field. DataViewModel partitions datasets

by category into Datasets vs AiGeneratedDatasets collections with matching

FilteredAiGenerated computed property. DataView.axaml adds the third section

with its own ListBox and context menu. Code-behind wires up selection so

clicking in any of the three lists clears the other two.

All lookup sites (delete, duplicate, deep link navigation) now search

AiGeneratedDatasets in addition to Datasets and Views.

Version bump: 1.18.2 → 1.19.0.

minor Notes

Migrate chart rendering to LiveCharts with 6 new chart types

Notes 1.54.2 → 1.55.0 | edb8cb23
Details

Replaces ~1300 lines of custom Canvas/SkiaSharp chart rendering with LiveCharts

for bar, line, pie, stacked bar, grouped bar, horizontal bar, scatter, area, and

donut charts. Timeline remains custom Canvas (no LC Gantt equivalent).

ChartBlockEditor is now a ~280-line orchestrator that delegates data loading to

ChartDataLoader and series construction to ChartSeriesFactory. The AXAML adds

buttons for all 10 chart types plus a Group By column selector for stacked/grouped.

ChartExportRenderer uses LiveCharts off-screen rendering (SKCartesianChart/SKPieChart)

instead of manual SkiaSharp drawing, ensuring export matches interactive rendering.

ChartConfigViewModel gains SelectedGroupByColumn and emits GroupBy, Orientation, and

InnerRadiusRatio fields for the new chart types.

Bumps Notes plugin from 1.54.2 to 1.55.0.

← Prev Page 21 of 53 Next →

Get notified about new releases