Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

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

Migrate Calendar from local toasts to unified IToastService

Details

Replace custom ErrorMessage/SuccessMessage observable properties and

inline toast borders with the shell's IToastService (same pattern Tasks

uses). This gives Calendar consistent animated toasts with type-specific

styling and auto-dismiss timers managed by the shell.

Removed: ErrorMessage/SuccessMessage properties, OnErrorMessageChanged/

OnSuccessMessageChanged auto-clear handlers, inline success/error

Border elements from CalendarView.axaml.

Added: Toast() helper method routing to Host.Toast with StatusMessage

fallback (matching Tasks pattern).

patch Desktop ShellServices

Fix client mode startup: license check and error handling

Details

In client mode, ShowMainWindow crashed at LicenseExpirationService because

PrivStackService.GetLicenseStatus() requires the native runtime to be

initialized — which it isn't in client mode. The exception was silently

swallowed by the fire-and-forget task, leaving the app with no visible

window.

  • Add license_status field to /api/v1/status endpoint response
  • Parse and store server license status during TryEnterClientMode()
  • Add CheckLicenseStatusFromServer() to LicenseExpirationService for

applying license status from a remote server string

  • Use server-provided license status in client mode ShowMainWindow
  • Add ContinueWith error handler on fire-and-forget EnterClientModeAsync

to log failures instead of silently swallowing them

patch Calendar

Make color picker selection ring theme-aware (BUG #60 follow-up)

Details

Replace hardcoded white BorderBrush with ThemeTextPrimaryBrush (adapts

to light/dark theme). Converter now returns Thickness instead of Brush

so the theme resource can be resolved in XAML.

patch Desktop ShellServerServices

Route entity type registration through SDK transport layer

Details

RegisterEntityType was called directly via NativeLib P/Invoke in both

PluginRegistry (Desktop) and HeadlessPluginRegistry (Server), bypassing

the ISdkTransport abstraction. In client mode, the native runtime isn't

initialized, causing all entity schema registrations to fail with error

code -4.

  • Add RegisterEntityType to ISdkTransport interface
  • Implement in FfiSdkTransport (delegates to NativeLib)
  • Implement in HttpSdkTransport (POSTs to /api/v1/sdk/register-entity-type)
  • Add public RegisterEntityType method on SdkHost
  • Add /sdk/register-entity-type endpoint to LocalApiServer
  • Update PluginRegistry to route through SdkHost instead of NativeLib
  • Update HeadlessPluginRegistry with same fix, remove unused NativeLib import
patch Notes

Fix trash view title overflow — replace StackPanel with DockPanel (BUG #20)

Details

Horizontal StackPanel gives children unbounded width, making TextTrimming

ineffective. Switch to DockPanel so the icon docks left and the title

fills remaining constrained space, enabling proper ellipsis truncation.

← Prev Page 30 of 266 Next →

Get notified about new releases