Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 44 of 212 Next →
February 27, 2026
patch Notes

Fix wiki folder children disappearing after trash view round-trip

Details

When ShowingTrash toggles, the TreeView becomes invisible. Avalonia

tears down TreeViewItem containers and resets IsExpanded to false via

the two-way binding, collapsing all nodes. When returning from trash,

wiki folders (and any expanded regular folders) appeared empty because

their expansion state was lost.

Fix: snapshot _expandedNodeIds when entering trash, then restore

expansion state on all nodes (including wiki folders) when leaving.

Wiki folders with children are always re-expanded by convention since

they don't participate in the _expandedNodeIds tracking.

patch Desktop Shell

Add Developer settings section with local API toggle

Details

New "Developer" category in Settings (between Security and Enterprise)

with UI to enable/disable the local HTTP API server:

  • Enable toggle that starts/stops the Kestrel server immediately
  • Port configuration field (default 9720)
  • API key display with Copy and Regenerate buttons
  • Status indicator showing running state
  • Quick test curl command for easy verification
patch IO

Document local HTTP API in APP_CONTEXT.md

Details

Add IApiProvider to the capability table and describe the local API server

in the shell features section (port, auth, endpoints, opt-in setting).

patch Desktop ShellSDK

Add IApiProvider SDK capability and local HTTP API server

Details

New SDK capability interface (IApiProvider) lets plugins declare HTTP API

routes and handle requests via pure SDK DTOs — no Kestrel dependency in

plugins. The shell hosts a Kestrel minimal API server on 127.0.0.1:9720

(configurable) that discovers providers and maps routes.

  • IApiProvider interface + ApiProviderModels DTOs (ApiMethod, ApiRouteDescriptor,

ApiRequest, ApiResponse with static factory methods)

  • LocalApiServer: WebApplication.CreateSlimBuilder(), API key auth middleware

(constant-time compare), per-provider route mapping, /api/v1/status (no auth)

and /api/v1/routes shell endpoints

  • AppSettings: ApiEnabled (default false), ApiPort (default 9720), ApiKey

(auto-generated base64url on first enable)

  • ServiceRegistration: LocalApiServer singleton
  • App.axaml.cs: conditional server start in deferred background services
  • PluginRegistry.ActivatePlugin: auto-register IApiProvider to CapabilityBroker
  • FrameworkReference Microsoft.AspNetCore.App in Desktop csproj
patch Tasks

Fix split layout resize and replace selection highlight

Details

Resize: Changed ColumnDefinitions from star (*) to Auto sizing for

both panes. Star columns have implicit minimum widths from content,

preventing the left pane from shrinking below ~50%. Both panes now

get explicit programmatic widths set in ApplyDetailPanelRatio() and

OnPanelResizeMoved(), allowing true 25%-75% range.

Selection: Stripped the default ThemeSelectedBrush lavender highlight

on ListBoxItem. Selected items now use ThemeHoverBrush background

with a subtle drop shadow on the .item-card border instead.

← Prev Page 44 of 212 Next →

Get notified about new releases