Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 7 of 95 Next →
February 28, 2026
patch TasksTasks.Headless

Wire GitHub system fields into sync pipeline

Details

Add CustomFieldService dependency to GitHubIssueSyncService and

GitHubProjectSyncService. Both call EnsureGitHubSystemFieldsAsync()

at the start of SyncAsync to create field definitions before processing.

TasksPlugin also triggers system field creation on init if any GitHub

issue sources exist, so fields are available immediately after startup.

Add ProjectId to GitHubIssueSource so synced issues can be assigned

to a specific project. New tasks created from issues inherit the

source's ProjectId.

patch Tasks.Headless

Add per-project custom fields + GitHub system field definitions

Details

Add ProjectId, IsSystem, and SourceType properties to CustomFieldDefinition

to support project-scoped fields and auto-created system fields.

Restructure CustomFieldService cache from key-based to ID-based lookups

since project-scoped fields from different projects can share keys.

Add GetFieldsForProject() for project-aware field resolution, and

EnsureGitHubSystemFieldsAsync() for idempotent creation of GitHub

metadata field definitions (author, assignees, comments, project status).

Create GitHubSystemFields static class defining canonical field definitions

and internal keys that remain hidden from the UI.

patch Tasks.Headless

Fix GitHubIssueSource deserialization error for project-synced tasks

Details

Tasks created by GitHub Projects sync have SourceId pointing to a

github_project_source entity. When these tasks are updated locally,

PushTaskAsync tried to read the SourceId through GitHubIssueSourceService

(entity type github_issue_source), causing the Rust backend to return

the wrong entity type and triggering a JsonException on the required

repo_owner/repo_name fields.

Fix: Add ResolveIssueSourceAsync that detects project-sourced tasks

(SourceId == GitHubProjectSourceId custom field) and finds a matching

issue source by parsing the repo from SourceRef instead. This avoids

the entity type mismatch and also enables push for project-synced

tasks when a bidirectional issue source covers the same repo.

patch Tasks

Add GitHub assignee editing in task detail panel

Details

Adds inline assignee management directly in the GitHub Issue metadata

section of the task detail panel. Users can add/remove GitHub usernames

which immediately pushes to GitHub via the existing OnTaskUpdated

auto-push callback — no need to navigate through menus or manually sync.

Changes:

  • New TasksViewModel.GitHubAssignees.cs partial: ObservableCollection

for assignees, add/remove commands that update custom_fields and call

UpdateTask (triggering auto-push)

  • TaskDetailPanel.axaml: assignee input + chip list in GitHub section
  • TasksViewModel.cs: hook RefreshGitHubAssignees into OnSelectedTaskChanged
patch Tasks.Headless

Push assignees and labels to GitHub on task update

Details

MapTaskToIssueRequest previously only pushed title, body, and state.

Assignee and label changes made locally were silently ignored, requiring

users to manually sync or edit on GitHub directly.

Now extracts github_assignees from custom_fields and reconstructs the

labels list from tags + priority field, so any local change to a

bidirectional GitHub-linked task immediately propagates assignees and

labels back to the issue.

Safety: assignees return null (omitted from PATCH) when no github_assignees

field exists. Labels return null when the task hasn't been pulled from

GitHub yet (no github_number in custom_fields), preventing accidental

label clearing on tasks that haven't been synced.

← Prev Page 7 of 95 Next →

Get notified about new releases