Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 13 of 22 Next →
February 18, 2026
minor Desktop ShellUI Components

Replace all hardcoded AXAML colors, font sizes, and shadows with theme resources (v1.34.0, SDK v1.38.0)

SDK 1.37.4 → 1.38.0 | Desktop 1.33.10 → 1.34.0 | a4644b6b
Details

Systematic sweep across all AXAML files replacing hardcoded values:

  • Modal backdrops: replaced inline #80000000 with Classes="modal-backdrop" (8 files)
  • Modal card shadows: replaced inline BoxShadow with Classes="modal" (8 files)
  • DashboardView: replaced 10x identical BoxShadow with Classes="shadow-sm"
  • MainWindow: banner #E53E3E -> ThemeDangerBrush, Foreground="White" -> ThemeTextPrimaryBrush, raw FontSize -> theme resources
  • SensitiveUnlockOverlay: #E0181820 -> modal-backdrop, #30F38BA8 -> ThemeDangerMutedBrush, Foreground="White" -> ThemeTextPrimaryBrush
  • PasswordConfirmationWindow: BoxShadow -> modal class, #30F38BA8 -> ThemeDangerMutedBrush
  • SettingsPanel: FontSize="18" -> ThemeFontSizeXl, Foreground="White" -> ThemeTextPrimaryBrush
  • GraphView tags: #9CA3AF -> ThemeTextMutedBrush
  • EmojiPicker/SkinTonePopover: backdrop and shadow -> theme classes

Added to PrivStackTheme.axaml:

  • modal-backdrop-light class (#40000000) for lighter overlays
  • shadow-sm, shadow-md, shadow-lg utility classes for shadow-only application
  • Updated modal-backdrop to #80000000 matching actual modal usage
minor Desktop ShellUI Components

Add ThemedDropdown and IconLabel controls to UI.Adaptive (v1.37.0)

SDK 1.36.0 → 1.37.0 | Desktop 1.33.5 → 1.33.6 | 84c8c9c4
Details

Add two new shared controls to PrivStack.UI.Adaptive for enforcing

consistent styling across the app:

ThemedDropdown: Wraps a native ComboBox with standardized theme-aware

styling. Supports three size variants (Standard/Compact/Dense) with

enforced padding and corner radius. Properties include ItemsSource,

SelectedItem (TwoWay), SelectedIndex (TwoWay), PlaceholderText,

ItemTemplate, ShowBorder, and MaxDropDownHeight. Uses

GetResourceObservable for Background/Foreground auto-tracking and

ActualThemeVariantChanged for border/radius updates. Includes

re-entrancy guard for selection sync between the outer control

properties and the inner ComboBox.

IconLabel: Horizontal or vertical icon+text pair with optional

PathIcon and TextBlock. Hides icon when IconData is null, hides

text when Text is null/empty. Foreground defaults to

ThemeTextPrimaryBrush via resource observable when not explicitly

set. FontSize defaults to ThemeFontSizeSmMd (sentinel value 0)

for automatic theme binding. Supports configurable IconSize,

Spacing, FontWeight, and Orientation.

Both controls follow the existing PluginToolbar pattern: inherit

Border, compose children in constructor, forward StyledProperties

via OnPropertyChanged, and manage theme lifecycle via

OnAttachedToVisualTree/OnDetachedFromVisualTree.

SDK version: 1.36.0 -> 1.37.0

Desktop version: 1.33.5 -> 1.33.6

minor SDK

Add SupportedLinkTypes and typed NavigateToItemAsync to IDeepLinkTarget (v1.36.0)

SDK 1.35.0 → 1.36.0 | d0c2d1b3
Details

Plugins managing multiple entity types (e.g., Contacts with contact, company,

contact_group) had no way to register deep-link routing for sub-entity types.

Only the primary LinkType was matched, causing navigation failures for secondary

types like contact_group and company in both the neuron graph and info panel.

Added SupportedLinkTypes property with default implementation returning [LinkType]

for backward compatibility, and a NavigateToItemAsync(string linkType, string itemId)

overload so plugins can dispatch to the correct sub-view based on entity type.

February 17, 2026
minor Desktop Shell

Add toast notification system to Desktop (v1.33.0)

Desktop 1.32.1 → 1.33.0 | 492c0798
Details

Implement ToastService and ToastContainer control for global

in-app toast notifications. Toasts appear top-center with

type-based styling (Success/Info/Warning/Error), friendly

labels ("All Set", "FYI", "Heads Up", "Action Needed"),

optional action buttons, and auto-dismiss (5-10s by type).

Max 4 visible with oldest trimmed on overflow.

Added ThemeInfo/ThemeInfoMuted color + brush resources to all

7 theme files. Registered ToastService in DI, wired through

PluginHostFactory → PluginHost → IPluginHost.Toast so plugins

can show toasts via Host.Toast.Show(). Bumped Desktop version

from 1.32.1 to 1.33.0.

minor SDK

Add IToastService interface to SDK (v1.35.0)

SDK 1.34.0 → 1.35.0 | 8797e71d
Details

Introduce ToastType enum and IToastService interface for global

in-app toast notifications. Plugins will access this via

IPluginHost.Toast to show transient messages with type-based

styling and optional action buttons. Added Toast property to

IPluginHost interface. Bumped SDK version from 1.34.0 to 1.35.0.

← Prev Page 13 of 22 Next →

Get notified about new releases