Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 14 of 139 Next →
February 28, 2026
patch Desktop ShellServices

Stop firing update checks when API is unreachable

Details

After 2 consecutive network failures (timeout, HTTP error, DNS

failure), the auto-update timer skips further checks instead of

burning 15 seconds on a doomed request each cycle. The counter

resets automatically when the API responds successfully.

Manual "Check for updates" always resets the backoff and fires

regardless, so the user can always retry.

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 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 Services

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).

patch Services

Add structured logging to SDK passthrough (server + client)

Details

Server side (LocalApiServer):

  • /sdk/execute: logs action, entity_type, response size, and timing
  • /sdk/register-entity-type: logs entity type at Information level
  • /sdk/search: logs response size and timing
  • Vault/blob operations: logs operation and vault/blob IDs
  • DB maintenance: logs operation and timing
  • Fixed stale logger (static readonly → property)

Client side (HttpSdkTransport):

  • All POST/GET requests: logs timing via Stopwatch
  • Slow requests (>500ms): logged at Warning level
  • Failed requests: includes elapsed time for diagnosing timeouts

Log format uses [SDK] prefix on server and [Client→Server] on client

so both sides are easily grepable in the shared log file.

← Prev Page 14 of 139 Next →

Get notified about new releases