Fix HtmlRenderer crash: Wrong Push/Pop state order in DrawingContext
Details
The Avalonia.HtmlRenderer HtmlControl.Render method can corrupt the
DrawingContext clip stack when content changes race with an in-progress
render pass. The existing hide+defer mitigation narrows the window but
doesn't eliminate it.
Add SafeHtmlLabel subclass that overrides Render with a try/catch
around the base call, catching InvalidOperationException from the
Push/Pop state mismatch and requesting a clean re-render via
InvalidateVisual(). Swap HtmlLabel for SafeHtmlLabel in the Email
plugin's HtmlMessageRenderer.
Fix build.sh skipping plugins with incomplete publish output
Details
The incremental skip logic only checked if the plugin DLL existed,
not whether all NuGet dependencies were present. If a previous
publish was interrupted or the output directory was manually
modified, subsequent --with-plugins runs would skip the plugin
thinking it was up-to-date, leaving it deployed without transitive
dependencies (e.g. Avalonia.HtmlRenderer for the Email plugin).
Add a DLL count check: if the output directory has only the plugin
DLL itself (no transitive dependencies), force a republish.
Fix wiki folder expansion state not persisting across plugin switches
Details
The wiki folder PageTreeNode constructor didn't accept the
onExpansionChanged callback, so expand/collapse events were never
recorded in _expandedNodeIds. Pass the callback and restore
expansion state from the persisted set after constructing wiki
folder nodes.
Auto-load GitHub projects for authenticated user
Details
The "Add Project" flow previously required the user to manually type
their GitHub username and click "Load Projects" — even though they're
already authenticated. Now it auto-fetches the viewer's login via
GraphQL and loads their projects immediately on open.
The UI is restructured: project list appears first as the primary
content, with a "Load from a different account" section below for
switching to an org or different user.
Fix server SDK logs invisible at Information level + stale update logger
Details
Server SDK passthrough logs were all at Debug level, but the minimum log
level is Information — making them completely invisible. Changed all 16
SDK log calls from Debug to Information so server activity is visible.
Also fixed RegistryUpdateService using stale static readonly ILogger
(same ForContext pattern that killed PluginRegistry logging after
workspace switch).
Get notified about new releases