Tasks filter bar: replace buttons with dropdown ComboBoxes, adopt theme radius tokens (1.17.1)
Details
Remove wide-layout WrapPanel filter buttons, making the compact dropdown layout (SmartFilter + Status ComboBoxes) the only layout. Remove IsCompactFilters property and width-based toggle logic since dropdowns are now always shown. Add rounded corners (ThemeRadiusMd) and margin to the filter bar border for card-style consistency. Replace ~100 hardcoded CornerRadius values (3, 4, 6, 8, 12) with DynamicResource theme radius tokens (ThemeRadiusXs, ThemeRadiusSm, ThemeRadiusMd, ThemeRadiusLg) throughout TasksView.axaml, leaving only compound corners and circle/pill indicators as hardcoded values.
GitHub sync: markdown rendering, comments, timeline, Projects v2 (1.17.0)
Details
Add full markdown rendering for GitHub issue descriptions using a self-contained
MarkdownRenderer control (headings, code fences, lists, blockquotes, tables,
inline bold/italic/code/links). Import GitHub issue comments as TaskNotes with
author attribution and dedup by comment ID. Sync issue timeline events (labeled,
assigned, closed, reopened, milestoned, renamed, cross-referenced) into a new
ActivityLog on tasks, displayed in the detail panel. Add GitHub Projects v2
integration via GraphQL API — sync project boards as PrivStack projects and
link project items to matching synced tasks by source_ref. Extend models with
TaskActivityEvent, GitHubProjectSource, comment/timeline DTOs, and source
tracking fields on ProjectItem. Add project source management to the GitHub
sync overlay with picker, sync, and remove controls.
Tasks + Notes plugins implement IConnectionConsumer for GitHub
Details
Both plugins now declare GitHub as a required OAuth connection provider
via IConnectionConsumer, ensuring the GitHub section appears in Settings
Connections when either plugin is active.
Tasks: 1.16.0 -> 1.16.1
Notes: 1.50.0 -> 1.50.1
Email plugin implements IConnectionConsumer (1.27.1)
Details
Declares Google and Microsoft as required OAuth connection providers so the Settings Connections panel shows those sections when the Email plugin is active.
Migrate Email plugin OAuth to shell-level connections
Details
Delete plugin-owned OAuth infrastructure (OAuthBrowserFlow, EmailOAuthService,
OAuthProviderConfig) — OAuth is now managed at the shell level via Settings →
Connections. Update EmailCredentials to use ConnectionId referencing shell
connections instead of storing tokens directly. Update ImapSyncService and
SmtpSendService to retrieve access tokens via IConnectionService.GetAccessTokenByIdAsync
instead of EmailOAuthService.EnsureValidTokenAsync. Update AccountSetupViewModel
to query existing shell connections rather than launching its own OAuth flow —
users must connect Google/Microsoft in Settings first. Add automatic migration
in EmailPlugin.OnInitializeAsync that detects legacy OAuth accounts (with
RefreshToken but no ConnectionId) and imports them into shell connections via
IConnectionService.ImportConnectionAsync. Remove EmailOAuthService dependency
from all ViewModels. Plugin version bumped to 1.27.0.
Get notified about new releases