Add fade-in animation to context menus and menu flyouts
Details
MenuFlyoutPresenter and ContextMenu now have a subtle 120ms open
animation: fade from opacity 0 to 1 with a -4px Y translate slide-in,
using CubicEaseOut easing. The animation runs each time the popup
enters the visual tree (i.e., each open).
Drop shadows were already defined (0 8 24 0 #40000000, 0 2 6 0
#28000000) — this adds the missing entrance transition.
Replace "Push to Wiki" text button with composite sync icon
Details
Swap the text-heavy "Push to Wiki" button for a compact icon-only
button that layers the GitHub octocat logo inside circular sync
arrows. Tooltip reads "Sync to GitHub Wiki". Matches the visual
language of the sync button in the Wiki Sources overlay.
Unify Tasks views: List (with sub-modes) | Board
Details
Consolidate from 4 top-level views (List/Board/GTD/Calendar) to 2 main
views (List | Board). The List view now has sub-mode toggle tabs
(Flat/GTD/Calendar) that change the grouping in the left pane of a
split layout, with the detail panel always visible on the right.
ViewModel changes:
- Add ListSubMode property ("flat"/"gtd"/"calendar") with computed
booleans IsFlatSubMode, IsGtdSubMode, IsCalendarSubMode
- Redefine IsTimelineView/IsCalendarView as internal aliases that
combine IsListView with the appropriate sub-mode check
- Remove IsTasksSidebarCollapsed, SidebarWidth, sidebar persistence
- Add SetListSubModeCommand and OnListSubModeChanged handler
View restructure (~1000 lines deleted):
- Replace 4-button view toggle with 2 buttons (List | Board)
- Remove PluginSidebar entirely
- Replace full-screen detail panel with split layout: task list pane
(left) + resize handle + TaskDetailPanel (right)
- Move stats, New Task, Prioritize buttons into list pane header
- Add sub-mode toggle bar (Flat | GTD | Calendar) below header
- GTD and Calendar item templates moved into left pane, controlled
by sub-mode visibility
- Delete standalone GTD Timeline View and Calendar Timeline View
sections (their content is now in the split layout)
Code-behind:
- Remove sidebar wiring from constructor
- Update GetResizeTargetBorder: add "list-detail", remove "gtd-detail"
and "calendar-detail"
Version: 1.26.0 → 1.27.0
Wiki sync: auto-push on save + delete from GitHub
Details
- Add DeletePageFromRemoteAsync to WikiSyncService: deletes the file
from the local clone and commits/pushes the removal to GitHub
- Wire into DeletePagePermanentlyAsync: when permanently deleting a
wiki page, remove it from GitHub first (non-fatal on failure)
- Update confirmation dialog for wiki pages to mention GitHub removal
- Auto-push wiki pages on save: after SaveCurrentPageAsync succeeds,
fire-and-forget PushPageAsync in background (non-fatal on failure)
- Keep manual "Push to Wiki" button as fallback for failed auto-pushes
Remove "Create Note from Task" feature — violates SDK boundary
Details
Tasks plugin must not be aware of Notes. The TaskToNoteService was
sending SDK messages directly to privstack.notes with hardcoded page
structure knowledge, and the context menus exposed "Create Note" items
in both the list view and detail panel.
Removed:
- TaskToNoteService.cs (entire file)
- ConvertToNoteAsync / ConvertToNoteByItemAsync relay commands
- "Create Note" menu item from list view context menu (TasksView.axaml)
- AI context menu from detail panel (TaskDetailPanel.axaml.cs)
- TaskToNoteService field and multi-param SetAiService wiring
Preserved: all other AI features (description rewrite, title generation,
Q&A description builder) which operate within the Tasks plugin boundary.
Get notified about new releases