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.
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.
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.
Inject compact action catalog when embedded datasets are present
Details
When a note has embedded dataset tables, always inject the
ActionFormatHeader + a compact DatasetActionReference (~188 tokens)
listing notes.create_note, notes.update_note, and data.generate_insights
with chart block syntax. This ensures Duncan knows how to use [ACTION]
blocks for note operations without relying on RAG index freshness.
Collapsed the reference from ~481 tokens to ~188 by removing duplicated
format rules (ActionFormatHeader already covers those).
Include dataset ID in embedded context metadata
Details
Add the dataset UUID to the context injected for embedded dataset-backed
tables, so Duncan can reference it in [CHART:] markers when creating
notes with chart blocks.
Get notified about new releases