Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 25 of 266 Next →
February 28, 2026
patch Tasks

Fix ComboBox bindings showing Avalonia.Controls.ComboBoxItem as text

Details

GitHub Sync: The project picker state was missing an error message

display, so GraphQL errors were silently swallowed. Added error

TextBlock and improved the auto-fetch catch to surface the error.

The SyncDirection ComboBox used ComboBoxItem wrappers with

SelectedItem bound to a string — replaced with x:String items.

Also normalize corrupted SyncDirection values on load.

Settings Overlay: Same ComboBoxItem binding bug on StatusCategory,

FieldType, and RuleTriggerType dropdowns. Replaced with ItemsSource

+ SelectedValueBinding + DisplayMemberBinding pattern using static

KeyValuePair arrays in the ViewModel.

patch Services

Downgrade update check network failures from ERROR to WARNING

Details

When the cloud is offline (or the API is unreachable), the auto-update

timer fires repeatedly and logs a full ERROR stack trace for each

15-second timeout. These are expected connectivity failures, not bugs.

Split the catch block: HttpRequestException, TaskCanceledException,

and TimeoutException now log a one-line WARNING without the stack

trace. Actual unexpected errors (e.g., JSON parse, null ref) still

log at ERROR level and fire the UpdateError event.

patch Email

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.

patch IO

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.

patch Notes

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.

← Prev Page 25 of 266 Next →

Get notified about new releases