Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 27 of 266 Next →
February 28, 2026
patch CalendarTasks

Add tooltip coverage to Tasks and Calendar views (BUG #59, #70)

Details

Tasks: add tooltips to view toggles (List/Board), filter controls

(Show Completed, Show/Hide Filters, Archived, Clear Filters),

detail panel action buttons (Start, Complete, Archive, Delete, Edit,

Done, AI Title), and timer controls (Start, Pause, Stop, Resume).

Calendar: add tooltips to Today button, view mode toggles

(Day/Week/Month/Agenda), New Event button, calendar source toggles,

and event editor remove buttons (reminder, tag).

patch NotesTasks

Fix state persistence for Notes and Tasks (BUG #12, #21, #25, #56)

Details

Notes: persist expanded sidebar node IDs and selected page across

sessions using IPluginSettings. On first load, restore expansion

state from settings and fall back to persisted SelectedPageId when

no in-memory selection exists.

Tasks: fix selected task restore to fall back to _allTasks when the

task isn't in the current filtered collection (BUG #25). Fix filter

project reference going stale on plugin switch by re-resolving

FilterProject after LoadProjects() rebuilds the list (BUG #56).

Persist ShowFiltersRow toggle state.

patch Desktop ShellServices

Fix greyed-out sidebar in client mode (concurrent command execution)

Details

CommunityToolkit's AsyncRelayCommand disables the command while it's

executing, preventing concurrent calls. In client mode, SelectTab awaits

plugin.OnNavigatedToAsync() which makes HTTP SDK calls to the server —

these are much slower than local FFI calls. While the first SelectTab

is waiting on the HTTP response, all sidebar buttons bound to the same

SelectTabCommand are disabled (greyed out) because CanExecute returns

false during execution.

Fix: AllowConcurrentExecutions = true on SelectTab, matching the

expected behavior where rapid tab switching should always work.

Also fix HttpSdkTransport stale logger (same pattern as PluginRegistry:

static readonly ForContext becomes dead after ReconfigureForWorkspace).

patch TasksTasks.Headless

Split Tasks plugin: create PrivStack.Plugin.Tasks.Headless

Details

Extract Models/ (16 files) and Services/ (16 files) from the Tasks

plugin into a new PrivStack.Plugin.Tasks.Headless project. This

assembly references only PrivStack.Sdk — zero Avalonia dependency —

making it loadable by the headless server.

New files in Headless:

  • TasksHeadlessPlugin.cs: HeadlessPluginBase entry point with entity

schemas, service initialization, and IApiProvider implementation

  • TasksApiHandler.cs: Shared API handler extracted from

TasksPlugin.Api.cs — used by both desktop and headless plugins

The UI plugin (PrivStack.Plugin.Tasks) now references the Headless

project for shared models and services. TasksPlugin.Api.cs delegates

to the shared TasksApiHandler.

Directory.Build.props updated: HeadlessPlugin=true opt-out prevents

UI.Adaptive (and thus Avalonia) from being added as a transitive

dependency to headless plugin projects.

AXAML xmlns declarations updated with assembly qualifier for types

now in the Headless assembly.

patch CalendarCanvasContactsDataEmailFilesFinanceHabitsJournalNotesWebClips

Bump patch versions for unified toast migration

Data 1.21.0 → 1.21.1 | Email 1.28.1 → 1.28.2 | Files 1.11.0 → 1.11.1 | Notes 1.65.1 → 1.65.2 | Canvas 1.0.4 → 1.0.5 | Habits 1.2.3 → 1.2.4 | Finance 3.24.1 → 3.24.2 | Journal 1.15.5 → 1.15.6 | Calendar 1.14.7 → 1.14.8 | Contacts 1.9.6 → 1.9.7 | WebClips 1.3.4 → 1.3.5 | e0df99f8
Details

Calendar 1.14.7→1.14.8, Canvas 1.0.4→1.0.5, Contacts 1.9.6→1.9.7,

Data 1.21.0→1.21.1, Email 1.28.1→1.28.2, Files 1.11.0→1.11.1,

Finance 3.24.1→3.24.2, Habits 1.2.3→1.2.4, Journal 1.15.5→1.15.6,

Notes 1.65.1→1.65.2, WebClips 1.3.4→1.3.5. Both csproj and

PluginMetadata versions updated.

← Prev Page 27 of 266 Next →

Get notified about new releases