Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 27 of 139 Next →
February 27, 2026
patch Desktop Shell

Catch NotSupportedException in SDK deserialization and fix PluginLoadContext

Details

SdkHost only caught JsonException but .NET 9's System.Text.Json throws

NotSupportedException for polymorphic type errors (missing discriminator,

unsupported interface types). Added catch for NotSupportedException so

these errors return graceful SdkResponse.Fail instead of crashing callers.

PluginLoadContext: changed from Default.LoadFromAssemblyPath (which could

conflict with runtime-managed assemblies) to returning null to let the

runtime's standard probing handle host-provided assemblies.

patch Desktop Shell

Fix PluginLoadContext: delegate to runtime probing instead of Default.LoadFromAssemblyPath

Details

The previous approach used Default.LoadFromAssemblyPath() to explicitly

load host-provided assemblies into the Default context. This could

conflict with runtime-managed assemblies and cause JSON polymorphic

deserialization failures (NotSupportedException for types with

JsonPolymorphic attributes).

Changed to return null when the host resolver can provide the assembly,

letting the runtime's standard default-context probing handle it. The

runtime finds the DLL in the app's output directory and loads it into

Default naturally, avoiding conflicts with already-loaded assemblies.

patch Desktop Shell

Fix MissingMethodException for shared assemblies in plugin load context

Details

PluginLoadContext only checked Default.Assemblies (already-loaded) when

deciding whether to delegate to the host. Assemblies the host ships but

hasn't loaded yet (e.g. LiveCharts via UI.Adaptive) were resolved from

the plugin's publish directory instead, creating a type identity split

that caused MissingMethodException on AdaptiveCartesianChart.set_Series.

Added a host-side AssemblyDependencyResolver that checks the host's deps

graph. If the host CAN provide an assembly, it's loaded into the default

context to maintain type identity — even if it hasn't been loaded yet.

patch IO

Fix stale plugin dependencies in incremental build

Details

The --with-plugins incremental skip check only looked at plugin source

files (.cs, .csproj, .axaml) to decide if a rebuild was needed. When

PrivStack.Sdk or PrivStack.UI.Adaptive changed without any plugin source

change, the stale dependency DLLs persisted in plugins/ output, causing

MissingMethodExceptions at runtime.

Now also checks if PrivStack.Sdk.dll or PrivStack.UI.Adaptive.dll build

output is newer than the plugin DLL, triggering a republish when shared

dependencies change.

patch Desktop Shell

Replace terse action catalog with concrete examples

Details

Models follow copy-pasteable examples far better than compact schema

listings. Replace the DatasetActionReference with three concrete [ACTION]

examples (create note with chart, update note, generate insights) that

the model can directly adapt. This fixes Duncan describing actions

instead of emitting [ACTION] blocks.

~318 tokens (was 188 terse, but 188 wasn't working). Total dataset

context injection is ~1,169 tokens — still under the original draft.

← Prev Page 27 of 139 Next →

Get notified about new releases