Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 44 of 53 Next →
February 15, 2026
minor Desktop Shell

Add cloud sync desktop integration — DTOs, P/Invoke, and service layer (1.25.0)

Desktop 1.24.5 → 1.25.0 | 277e850b
Details

Phase 6 of the Cloud Sync Implementation Plan. Adds the .NET desktop integration layer for S3-backed cloud sync:

  • CloudSyncModels.cs: DTOs for CloudSyncStatus, CloudQuota, CloudWorkspaceInfo, CloudAuthTokens, CloudShareInfo, SharedWithMeInfo, CloudDeviceInfo, and SyncTier enum
  • PrivStackError.cs: Added error codes 28-33 (InvalidArgument, CloudSyncError, QuotaExceeded, ShareDenied, EnvelopeError, CloudAuthError) matching Rust FFI enum
  • NativeLibrary.cs: 27 P/Invoke declarations for all privstack_cloudsync_* FFI exports (auth, key management, workspaces, sync engine, sharing, devices)
  • ICloudSyncService.cs: Interface abstracting the cloud sync FFI surface for DI and testability
  • CloudSyncService.cs: FFI wrapper implementing ICloudSyncService with DeserializeAndFree/MarshalAndFree helpers, lifecycle hooks (FlushIfSyncing on shutdown), and IDisposable cleanup
  • Workspace.cs: Added SyncTier and CloudWorkspaceId properties
  • ServiceRegistration.cs: Registered ICloudSyncService → CloudSyncService singleton
minor Core

Add privstack-cloud crate for S3-backed cloud sync (1.7.0)

Core 1.6.8 → 1.7.0 | 2e782fe2
Details

New crate with 12 modules: API client (JWT auth, token refresh on 401),

S3 transport (STS credentials, upload/download), credential manager

(auto-refresh), adaptive outbox (solo 60s / collab 5s flush modes),

sync engine (tokio::select event loop), envelope manager (DEK sharing

orchestration), compaction (snapshot generation, >50 batch threshold),

sharing workflow (create/accept/revoke/cascade), blob sync (encrypted

upload/download with quota tracking), config, types, and error handling.

Dependencies: aws-sdk-s3, aws-sdk-sts, reqwest, crypto_box, sha2.

February 14, 2026
minor Data

Replace DataGrid with shared TableGrid in Data plugin browse view (1.14.0)

Data 1.13.9 → 1.14.0 | 89a1d5b1
Details

Migrated DatasetBrowseView from the native Avalonia DataGrid to the shared

TableGrid control from PrivStack.UI.Adaptive. This brings the Data plugin's

table display in line with the Notes plugin's table blocks, providing a

consistent table UX across the app.

Created DatasetTableGridSource (ITableGridDataSource adapter) that bridges

IDatasetService CRUD operations to the TableGrid control. Supports both

editable dataset mode (cell editing, row/column add/delete) and read-only

SQL view mode. Saved view sort overrides are preserved through the adapter.

The view is significantly simplified — filter bar, pagination controls,

loading indicator, column rebuilding, sorting handlers, clipboard paste,

and cell edit wiring are all now handled internally by TableGrid. The

code-behind drops from 172 lines to 60, and the XAML from 95 to 60.

TableGrid provides additional capabilities not previously available in

the Data plugin browse view: export (CSV/TSV/JSON/Markdown), freeze panes,

column resize grips, infinite scroll mode, context menus for row/column

operations, keyboard cell navigation, and URL detection in cells.

minor SDK

Add Relation variant to SdkPropertyType enum (1.25.0)

SDK 1.24.0 → 1.25.0 | 1e277d63
Details

Add Relation to the SdkPropertyType enum to support entity-linking

properties. Plugins will be able to define properties that reference

entities from any ILinkableItemProvider (contacts, tasks, notes, etc).

The new enum value is appended after Url to preserve ordinal mapping

with the Desktop PropertyType enum. SDK version bumped to 1.25.0.

minor UI Components

Remove structural borders from PluginSidebar and PluginToolbar, use recessed surfaces (1.24.0)

SDK 1.23.1 → 1.24.0 | b9dfaed4
Details

PluginSidebar: remove right border, use ThemeSurfaceRecessedBrush background,

transparent border brush, bind resize handle pill to ThemeBorderSubtleBrush.

PluginToolbar: remove bottom border, increase padding for breathing room,

use ThemeFontSizeHeading2 (22px) for title, transparent border brush.

Bump Directory.Build.props SDK version to 1.24.0.

← Prev Page 44 of 53 Next →

Get notified about new releases