Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 39 of 53 Next →
February 17, 2026
minor Email

Add account settings overlay and view preference persistence (v1.3.0)

Email 1.2.0 → 1.3.0 | 793caf4c
Details

Add full account settings UI that exposes existing backend infrastructure

for signature editing, sync interval control, server configuration, and

enable/disable toggling. Settings overlay is accessible from both the

gear menu and account context menu.

New files:

  • EmailViewPreferences model for persisted view state (sort, reading

pane, compact list, sidebar collapsed)

  • AccountSettingsViewModel for editing existing account properties

including display name, signature, sync interval, enabled state,

and IMAP/SMTP server configuration with test connection support

  • AccountSettingsOverlay.axaml modal with General, Signature, and

collapsible Server sections

Modified files:

  • EmailPlugin.cs: Pass Host.Settings to ViewModel for IPluginSettings
  • EmailViewModel.cs: Accept IPluginSettings, add account settings

overlay state, load view preferences on construction

  • EmailViewModel.ViewOptions.cs: Persist view prefs on every toggle

(reading pane, compact list, sort mode), add OpenAccountSettings

command with Saved/Cancelled event handlers

  • EmailViewModel.Commands.cs: Persist sidebar toggle to view prefs
  • EmailView.axaml: Add Account Settings to gear menu and account

context menu, add sync error indicator on account list items,

dim disabled accounts via EnabledToOpacity converter

  • EmailConverters.cs: Add EnabledToOpacity converter

Version bumped from 1.2.0 to 1.3.0 in both csproj and PluginMetadata.

minor UI Components

Extend UI.Adaptive graph models with unified types and physics settings (v1.32.0)

SDK 1.31.13 → 1.32.0 | cda5727c
Details

Add Tags, ModifiedAt, WikiLinkCount fields to GraphNode and Label to GraphEdge.

Port AdjacencyList, BFS, GetLocalGraph, and AssignBfsDepths from plugin GraphData

to the Adaptive GraphData model, enabling the Graph plugin to output Adaptive types

directly without conversion. Remove 5 vestigial PhysicsParameters fields

(RepulsionStrength, SpringStrength, CollisionStrength, VelocityDecay, MinSeparation)

that were marked unused. Add GraphPhysicsSettings composable ObservableObject that

maps 0-100 slider values to consumer-specific parameter ranges, and GraphPhysicsPanel

reusable control with 4 labeled sliders for both Graph plugin and InfoPanel consumers.

minor Email

Add full-featured options menu, context menus, and view toggles (v1.2.0)

Email 1.1.0 → 1.2.0 | 0262490d
Details

Add production-grade toolbar with sync button and gear settings menu containing

account management, view toggles (reading pane, compact list), bulk actions

(mark all read, empty trash), sort submenu, and sidebar toggle. Remove redundant

sort ComboBox and sync button from the messages area header.

Extract message list into MessageListView with right-click context menu providing

Reply, Reply All, Forward, Toggle Star, Mark as Unread, Archive, Move to Junk,

and Delete actions. Add MoveToJunkAsync command following the existing archive

pattern.

Enhance account sidebar context menu with Sync Now (parameterized per-account),

Mark All Read in Account, Enable/Disable Sync, and Remove Account options.

Add IsReadingPaneVisible and IsCompactList view state properties with

CompactToPadding converter. Add ICommandProvider entries for Mark All as Read

and Empty Trash. New ViewOptions partial keeps all new commands modular.

Version bump 1.1.0 -> 1.2.0 in both csproj and PluginMetadata.

minor Calendar

Modernize calendar popover layout and replace emojis with PathIcons

Calendar 1.9.0 → 1.10.0 | c3d9053d
Details

Restructure event detail popover: move title+color-dot to header area

just below the close button, replace edit/delete icon buttons in the

top toolbar with labeled text buttons ("Edit" / "Delete") in a new

footer section separated by a border line. Close button now uses a

PathIcon X instead of the ✕ emoji. Delete button uses ThemeErrorBrush

for visual distinction.

Replace all emoji-based UI icons across CalendarView.axaml with

Material Design PathIcon SVG paths: settings gear, recurring badge,

calendar date, video camera, location pin, document text, calendar

outline, and info circle. All PathIcons use DynamicResource theme

brushes for consistent cross-platform rendering.

Version: 1.9.0 → 1.10.0

February 16, 2026
minor CanvasNotes

Extract Canvas/Whiteboard into standalone plugin (v1.0.0)

Notes 1.41.0 → 1.42.0 | 6288b94f
Details

Canvas (whiteboards) has been extracted from the Notes plugin into its

own standalone plugin PrivStack.Plugin.Canvas. This reduces the Notes

god-object problem and gives Canvas its own navigation entry in the

sidebar.

New plugin (PrivStack.Plugin.Canvas v1.0.0):

  • Standalone PluginBase<CanvasViewModel> with own NavigationItem
  • Whiteboard CRUD via WhiteboardService (PluginId: privstack.canvas)
  • Entity sidebar for cross-plugin drag-to-canvas
  • Connector toolbar with style/arrow controls
  • IDeepLinkTarget for whiteboard deep links
  • IRecipient<EntitySyncedMessage> for cloud sync
  • One-time data migration from privstack.notes to privstack.canvas

Notes plugin cleanup (v1.42.0):

  • Removed whiteboard EntitySchema, WhiteboardService, CanvasViewModel
  • Removed IsCanvasView property and Canvas toggle button
  • Removed ~450 lines of canvas XAML and ~200 lines of code-behind
  • Removed whiteboard sync handler and canvas event wiring
  • Retained inline CanvasBlock support (AddCanvasBlock command) for

embedded canvas blocks within pages

← Prev Page 39 of 53 Next →

Get notified about new releases