Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 33 of 127 Next →
February 25, 2026
patch Notes

Compact BlockWrapper: smaller drag handle, remove up/down, relocate delete

Details
  • Drag handle: 28px → 20px width, 4-dot grip (was 6-dot), smaller padding
  • Insert handle: 24px → 20px
  • Removed MoveUp/MoveDown buttons entirely (drag reorder + context menu suffice)
  • Removed the action buttons column (Grid column 4)
  • Relocated RemoveButton under the drag handle in the handle column (20x20,

hidden by default, fades in on hover like the drag handle)

  • Handle column margin: 6px → 4px gap to content

Net effect: the handle gutter is ~10px narrower, block content gets more space,

and the UI is less cluttered — only insert, drag, and delete in a compact stack.

patch Calendar

Add internal HttpClient constructor to CalDavClient + 12 tests

Details

Adds an internal constructor accepting HttpClient for test injection,

enabling comprehensive testing of the CalDAV protocol implementation.

Tests cover: calendar discovery (PROPFIND chain), well-known fallback,

non-calendar/non-VEVENT filtering, Apple color alpha stripping, event

fetching (REPORT), sync-collection with changed/deleted events, PUT

with ETag/conflict handling, and DELETE with 404 acceptance.

patch Journal

Refactor GeocodingService and RoutingService with HttpClient injection + tests

Details

Convert both services from static classes to instance classes with

internal HttpClient constructors for testability. Add InternalsVisibleTo

to Journal csproj. Update MapSectionEditor to use instance fields.

New tests (10 cases):

  • GeocodingServiceTests: valid result, empty input, empty array response,

missing lat/lon, empty display name, URL parameter verification

  • RoutingServiceTests: fewer than 2 waypoints, valid route response,

non-Ok code, empty routes array

patch Rss

Refactor ReaderService with HttpClient injection + add tests

Details

Add internal constructor accepting HttpClient to ReaderService for

testability, following the same pattern used by RssParserService and

other HTTP-dependent services. The public parameterless constructor

still delegates to the shared static HttpClient for production use.

Add 5 tests covering: readable article extraction, HTTP failure (404),

non-readable content, HTTP exception handling, and word count.

patch Notes

Fix GroupBlock alignment: render children via BlockWrapper's ChildBlocksHost

Details

The core issue: GroupBlock children were rendered inside the parent BlockWrapper's

content column (Grid column 2), which is offset right by the handle gutter

(~38px). Negative margins couldn't reliably break out of that layout.

Fix: BlockWrapper.UpdateChildBlocksBinding() now detects GroupBlock content and

binds its Children to ChildBlocksHost — the ItemsControl that sits OUTSIDE the

handle Grid, at full BlockWrapper width. Each child gets its own BlockWrapper

with handles, so text naturally aligns with the page title.

GroupBlockEditor now only renders the compact header (collapse toggle + label)

and add button. Children rendering is fully delegated to the parent BlockWrapper.

Collapse state toggles ChildBlocksHost visibility via FindParentBlockWrapper().

← Prev Page 33 of 127 Next →

Get notified about new releases