Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 31 of 117 Next →
February 26, 2026
patch Desktop Shell

Route Whisper transcriptions to Duncan when no text input is focused

Details

When Cmd+M is pressed without a text input focused, the speech recording

now proceeds normally and routes the transcription to Duncan's AI tray

instead of silently discarding it. This enables voice commands:

  • MainWindow.Speech.cs: removed early return when no text control is

focused — always start recording regardless of focus state

  • MainWindow.axaml.cs: OnTranscriptionReady routes to

AiTrayVM.SendVoiceMessageAsync() when _speechTargetControl is null,

and auto-opens the AI tray panel

  • AiSuggestionTrayViewModel.Chat.cs: added SendVoiceMessageAsync() that

sets ChatInputText and triggers the standard send pipeline (RAG +

intent classification)

Flow: Cmd+M → record → Whisper transcribe → no text field? → Duncan

processes via RAG + intent engine → shows response/action in AI tray.

February 25, 2026
patch CoreDesktop Shell

Update 2026-02-24

patch Core

Move inline tests to integration tests for crdt, crypto, ffi

Details

Migrate remaining #[cfg(test)] inline test modules to tests/ directories.

Crates migrated:

  • privstack-crdt: 18 pn_counter tests → tests/pn_counter_tests.rs
  • privstack-crypto: 5 recovery tests → tests/recovery_tests.rs
  • privstack-ffi: 337 tests → tests/ffi_tests.rs (biggest migration)

FFI crate changes:

  • Added "rlib" to Cargo.toml crate-type for integration test linking
  • Made DTOs pub: SyncEventDto, DiscoveredPeerInfo, SyncStatus,

CloudFileInfo, LicenseInfo, ActivationInfo, FfiDeviceInfo,

SdkRequest, SdkResponse (with pub fields)

  • Made functions pub: init_core, init_with_plugin_host_builder,

license_error_to_ffi, nullable_cstr_to_str, to_c_string

  • Made EntityRegistry methods pub: new, register_schema, get_schema,

get_handler, has_schema

  • Made HANDLE static pub, plugin_ffi module pub

Remaining #[cfg(test)] in cloud/config.rs and crypto/key.rs are

test-only constructors (CloudConfig::test, KdfParams::test), not

inline test modules.

Total: 360 integration tests, 0 inline test modules remaining.

patch Core

Move inline tests to integration tests for ppk, plugin-sdk, plugin-host

Details

Migrate all #[cfg(test)] inline test modules to tests/ directories as

proper integration tests. This enforces the public API boundary and

ensures tests only exercise exported interfaces.

Crates migrated:

  • privstack-ppk: 21 tests → tests/ppk_tests.rs
  • privstack-plugin-sdk: 34 tests → tests/types_tests.rs
  • privstack-plugin-host: 236 tests across 5 new files

(permissions, policy, wit_types, sandbox, manager)

Visibility changes to support integration tests:

  • lib.rs: re-export TrackingLimiter, PluginState, AuditConfig
  • wit_types.rs: make to_core_field() and to_core() pub
  • manager.rs: remove #[cfg(test)] from new_for_test
  • sandbox.rs: make track_fuel_consumption and last_fuel_consumed pub

Total: 291 integration tests, 0 inline tests remaining in these crates.

patch Core

Add core test coverage: sync error/cloud + desktop services/SDK (518 C# tests)

Details

Rust (28 new tests):

  • error_tests.rs: all 10 SyncError variants, Display, Debug, std::error::Error,

SyncResult, From<serde_json::Error>, unicode, edge cases (16 tests)

  • cloud_storage_tests.rs: CloudStorageConfig defaults/custom/serde,

CloudFile create/clone/serde, ChangeSet empty/populated/clone (12 tests)

C# Desktop Services (5 new test files):

  • EntityTypeMapTests: lookup roundtrips, uniqueness, all fields non-empty (14 tests)
  • StringHelpersTests: emoji stripping, null/empty, accented/CJK preservation (8 tests)
  • FocusModeServiceTests: state toggle, event firing, duplicate suppression (7 tests)
  • QuickActionServiceTests: action collection, caching, invalidation, find by

ID/shortcut, case insensitivity, provider exception handling (11 tests)

  • PlatformDetectorTests: platform/arch detection, memory, GPU/CPU detection,

hardware assessment, AI recommendation (11 tests)

C# SDK Tests (3 new test files):

  • WikiLinkParserTests: wiki-link/privstack URL parsing, mixed formats,

ExtractContentFromEntity, ExtractSnippet, regex patterns (16 tests)

  • UnixTimestampConverterTests: number/string/ISO reads, millis write,

roundtrip, epoch zero, negative, invalid token (8 tests)

  • GraphProviderModelsTests: node CompositeKey, edge/content/link construction,

GraphContribution defaults and populated (8 tests)

C# Models (1 new test file):

  • PropertyModelsTests: PropertyDefinition, PropertyGroup, RelationEntry,

PropertyTemplate, EntityMetadata — defaults, serialization, record with (21 tests)

Total C# tests: 379 → 518 (139 new)

Total Rust sync tests: +28

← Prev Page 31 of 117 Next →

Get notified about new releases