Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 25 of 212 Next →
February 28, 2026
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.

patch Tasks

Fix GitHub Sync overlay state visibility overlap

Details

The "Add GitHub Project" picker and the source list were both visible

simultaneously because State 1 (source list) only checked !IsAddingSource,

not !IsAddingProject or !IsConfiguringFilters. Added a computed

IsShowingSourceList property that correctly hides the source list and

footer buttons whenever any sub-state (repo picker, project picker,

filter config) is active.

patch Desktop Shell

Parallelize plugin init and Dashboard metrics for client mode perf

Details

In client mode, every SDK call is an HTTP roundtrip (~100-300ms each).

Sequential execution of 30-45 calls during startup and 20-30 calls for

Dashboard metrics caused 5-10 second load times.

Two parallelization changes:

1. Plugin initialization: Split DiscoverAndInitialize into two phases.

Phase 1 (serial): vault unlock, host creation, schema registration

— these are fast and may touch shared state. Phase 2 (parallel):

InitializeAsync on all plugins concurrently via Task.WhenAll — each

plugin is independent and the SdkHost's ReaderWriterLockSlim allows

concurrent reads.

2. Dashboard metrics: SystemMetricsService.GetDataMetricsAsync now

fetches all IDataMetricsProvider results via Task.WhenAll instead of

sequential foreach+await. This turns 11 sequential plugin queries

into parallel HTTP calls.

Both changes are safe for standalone mode (FFI calls are fast, so the

parallelism just adds minor thread pool overhead with no UX impact).

patch CalendarTasks

Add tooltip coverage to Tasks and Calendar views (BUG #59, #70)

Details

Tasks: add tooltips to view toggles (List/Board), filter controls

(Show Completed, Show/Hide Filters, Archived, Clear Filters),

detail panel action buttons (Start, Complete, Archive, Delete, Edit,

Done, AI Title), and timer controls (Start, Pause, Stop, Resume).

Calendar: add tooltips to Today button, view mode toggles

(Day/Week/Month/Agenda), New Event button, calendar source toggles,

and event editor remove buttons (reminder, tag).

patch NotesTasks

Fix state persistence for Notes and Tasks (BUG #12, #21, #25, #56)

Details

Notes: persist expanded sidebar node IDs and selected page across

sessions using IPluginSettings. On first load, restore expansion

state from settings and fall back to persisted SelectedPageId when

no in-memory selection exists.

Tasks: fix selected task restore to fall back to _allTasks when the

task isn't in the current filtered collection (BUG #25). Fix filter

project reference going stale on plugin switch by re-resolving

FilterProject after LoadProjects() rebuilds the list (BUG #56).

Persist ShowFiltersRow toggle state.

← Prev Page 25 of 212 Next →

Get notified about new releases