Task rows now drive a hand-built pointer-capture drag instead of
DragDrop.DoDragDropAsync: armed on press, begins past a 4px threshold so a
plain click still selects. The ghost follows the screen cursor across windows;
on release the action is decided by what is under the cursor -- over the
Mission Control window queues the task (geometric DragHitTest, no OLE drop),
over another row in the same user list reorders, anywhere else cancels and
restores the row. Drag starts from any list kind (drag-to-queue everywhere)
but reorder-on-drop stays gated on CanReorder. Removes the obsolete OLE
TaskRowFormat path from both the source and MissionControlView (pane
PaneFormat reorder is untouched).
Rest stroke -> TextBrush (was too dim vs the filled neighbours),
hover -> AccentBrush, icon Viewbox 15 -> 18.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Renders the new SVG faithfully via a stroked Path (PathIcon fills, so a
line-art icon would vanish). Renamed the button to "Plan My Day".
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
It was a no-op placeholder command; removed the button, command,
locale keys, and now-unused Icon.Sort geometry.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add ShowNotesRow/OpenNotesCommand to TasksIslandViewModel; wire NotesRequested
event to Details.ShowNotes() in the shell; show a Notes button above the task
list when the My Day smart list is active.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Drag-to-reorder user lists in the sidebar, persisted via a new
list sort_order column (AddListSortOrder migration, backfilled by
creation time) and ListRepository.ReorderAsync
- "Open in Explorer" / "Open in Terminal" context-menu actions on lists
- "Clear all completed" button on the Tasks island
- Inline-edit subtask titles (empty text deletes the step) and
click-to-copy task ID in the Details island
- Make modal and planning windows resizable (BorderOnly decorations
with min sizes) instead of fixed-size borderless
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The gear button on list rows became noisy and overlapped with row
selection. Moves it into the tasks island header where it targets the
currently selected list. Lists pane regains a cleaner row layout.
Also: swallow GetListConfig errors on fresh lists that have no row yet.
Expose OverdueItems / OpenItems / CompletedItems as separate observable
collections recomputed in LoadForList (and after add / toggle-done).
- OverdueItems: ScheduledFor.Date < Today && !Done
- OpenItems: remaining !Done
- CompletedItems: Done
View renders three sections with eyebrow-style headers:
- OVERDUE (blood accent, only when non-empty)
- TASKS (shown only when overdue is also visible, matching the mock)
- COMPLETED · N (hidden when IsShowingCompleted is false)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Reformat subtitle to "{Weekday}, {Month} {Day} · {open} open".
- Add right-aligned running/review status pill (kbd style).
- Add header icon toolbar: Sort, Eye (toggle completed), MoreHorizontal.
- Wire Eye to IsShowingCompleted [ObservableProperty] on the VM.
- Style add-task row as rounded Surface2 border with dashed Plus circle,
borderless TextBox, and ENTER kbd chip visible on focus.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>