Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 17 of 32 Next →
February 21, 2026
minor Notes

Add IQuickActionProvider to Notes plugin (v1.51.0)

Notes 1.50.7 → 1.51.0 | f5651810
Details

Implements IQuickActionProvider on NotesPlugin, registering a "New Sticky

Note" global quick action. The action shows a modal overlay with a

QuickStickyNoteForm control (title, content, color picker) that creates a

sticky note via StickyNoteService from any plugin tab. The form is built

programmatically as a self-contained ContentControl to keep the quick action

lightweight and independent of the Notes view state.

February 20, 2026
minor Tasks

GitHub sync: markdown rendering, comments, timeline, Projects v2 (1.17.0)

Tasks 1.16.1 → 1.17.0 | 2bdf51d0
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.

minor Email

Migrate Email plugin OAuth to shell-level connections

Email 1.26.4 → 1.27.0 | 7fdd3550
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.

minor Tasks

Add GitHub Issues sync for Tasks plugin

Tasks 1.15.1 → 1.16.0 | b1aa4c36
Details

Implements bidirectional sync between GitHub issues and PrivStack tasks.

Users can add GitHub repositories as issue sources, configure per-repo

filters (assignee, labels, milestone), and choose between bidirectional

or pull-only sync modes.

New files:

  • Models: GitHubIssueSource (source config), GitHubIssueModels (API DTOs)
  • Services: GitHubIssueApiClient (REST API), GitHubIssueSourceService (CRUD),

GitHubIssueFieldMapper (status/priority mapping), GitHubIssueSyncService

(pull/push orchestration with last-write-wins conflict resolution)

  • Controls: ModalOverlay (reusable overlay pattern for Tasks plugin)
  • ViewModels: GitHubIssueSourcesViewModel (3-state overlay: source list,

repo picker, filter config)

  • Views: GitHubIssueSourcesOverlay (AXAML overlay UI)

Modified files:

  • TaskItem.cs: Added source_type, source_id, source_ref, source_etag fields

with IsGitHubIssue and GitHubUrl computed properties

  • TasksPlugin.cs: Added github_issue_source entity schema, source tracking

indexed fields, service initialization with IConnectionService guard

  • TasksViewModel.cs: Added GitHub service properties, lazy-init overlay VM,

OpenGitHubIssueSources command

  • TasksView.axaml: GitHub button in toolbar, GitHub badge on synced tasks,

overlay placement

  • TaskDetailPanel.axaml: GitHub Issue metadata card with issue ref and link

Version: 1.15.1 -> 1.16.0

minor Tasks

Replace CalendarDatePicker with MiniCalendarPicker in Tasks

Tasks 1.14.0 → 1.15.0 | 73d29c18
Details

Swaps out Avalonia's default CalendarDatePicker for the new

MiniCalendarPicker from UI.Adaptive in both TasksView (due date)

and TaskDetailPanel (due date, start date, reminder). The new

picker shows a compact mini-calendar popup matching the Calendar

plugin's sidebar style. Binds directly to DateTimeOffset? properties

instead of the DateTime? wrapper properties. Bumps to v1.15.0.

← Prev Page 17 of 32 Next →

Get notified about new releases