Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 19 of 127 Next →
February 27, 2026
patch Tasks

Redesign Kanban cards to match list view layout, move layout toggle to Settings

Details

Kanban cards now use the same Grid layout as the detailed list view (status

bar, priority dot, metadata row, tags, timer button) instead of the old flat

StackPanel. Simple mode shows a minimal priority-dot + title variant. The

Done column applies strikethrough, muted colors, opacity, and shows

"Completed: date" instead of due date with a logged-time badge.

Move the Simple/Detailed toggle from the toolbar into Settings > View tab as

a new "Layout Mode" option set. All three View tab option sets (Layout Mode,

List Grouping, Item Density) now show a contextual description TextBlock

below them that updates when the selection changes.

IsSimpleMode is now persisted to plugin settings and restored on startup.

patch Tasks

Persist task view state across restarts and plugin switches (BUG #25, #56, #58)

Details

BUG #25 — Selected task restored on restart: SelectedTask ID is saved

to IPluginSettings on every selection change and restored during

ApplyFiltersAndSort when no in-memory selection exists.

BUG #56 — Filters persist across plugin switch and restart: FilterStatus,

FilterPriority, ActiveSmartFilter, SortField, SortAscending,

ShowCompletedTasks, ShowArchivedTasks, and ViewMode are all saved to

settings on change and restored in the constructor.

BUG #58 — Edit state survives plugin switch: OnSelectedTaskChanged now

detects when RefreshTasks() replaces the object reference for the same

task (same ID) and skips resetting IsDetailPanelEditing and edit fields,

so mid-edit state is preserved when navigating away and back.

patch Tasks

Fix kanban drop zone triggering at 50% card overlap (BUG #52)

Details

IsPointInBounds() was transforming column bounds to the visual root

(window) coordinate space, but the pointer position from

e.GetPosition(this) is in the UserControl's coordinate space. The

offset between the two (window chrome, sidebar, etc.) meant the

pointer had to travel well past the column boundary before matching.

Fixed by transforming column bounds to `this` (the UserControl)

instead of the visual root, so both coordinates share the same space.

patch Notes

Add right-click context menu to sticky notes

Details

Right-clicking a sticky note now shows a context menu with:

  • Edit: opens the full editor overlay
  • Color: submenu with 6 color swatches (yellow, blue, green, pink,

purple, orange) — selecting a color updates the note immediately

without opening the editor, with a colored dot indicator and a

border on the currently active color

  • Delete: deletes the sticky note

Adds NoteColorChangeRequested event to StickyBoardControl and

ChangeStickyNoteColorAsync to NotesViewModel for direct color

changes. Also refactors the duplicate RGB color tuple out of

GetStickyColor into a shared GetStickyColorRgb helper.

Fixes: BUG #18

patch Tasks

Route all StatusMessage feedback to toast system, enlarge timer buttons

Details

Two changes:

1. Migrate all transient StatusMessage assignments to Toast() calls

routed through IToastService. Added _toast field to TasksViewModel,

wired via Host.Toast in TasksPlugin. Error messages use

ToastType.Error, validation warnings use ToastType.Warning, all

other feedback uses default ToastType.Info. The StatusMessage

property is retained only for the static task count display.

Removed the StatusMessage TextBlock from the split header since

feedback now appears as shell toasts.

2. Increased timer play/stop button size from ThemeFontSizeXs to

ThemeFontSizeMd/Sm with larger padding (6,5 vs 4,3). Button is

now visible in all density modes, not just Full.

← Prev Page 19 of 127 Next →

Get notified about new releases