Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 8 of 53 Next →
February 24, 2026
minor Tasks

Tasks v1.24.0: board rules automation engine (Phase 4)

Tasks 1.23.0 → 1.24.0 | 0bd34d0d
Details

Add rule-based automation that triggers on task mutations.

BoardRule entities define trigger (status_changed, field_changed,

task_created, due_date_approaching), AND/OR condition groups,

and actions (set_status, set_priority, set_field, add_tag,

remove_tag, set_due_date, move_to_project, add_checklist_item).

RuleEngine evaluates matching rules after task state changes with

infinite loop protection (max 3 recursion levels). RuleService

provides CRUD with in-memory cache. Rule evaluation is integrated

at all status movement commands, task creation, and toggle

completion points via fire-and-forget async helper.

minor Tasks

Tasks v1.23.0: configurable board columns (Phase 3)

Tasks 1.22.0 → 1.23.0 | 9993afb7
Details

Add per-project board configuration with dynamic column rendering.

BoardConfiguration entities define columns with status key assignments,

WIP limits, colors, and collapse state. BoardConfigService provides

CRUD with a default 3-column board seed and per-project lookup with

global fallback. BoardColumnViewModel exposes dynamic columns to the

UI alongside legacy TodoTasks/InProgressTasks/DoneTasks collections

for backward compatibility. Tasks are distributed to columns based

on status-to-column mapping, with drag-drop support via

MoveTaskToColumnAtIndex.

minor Tasks

Add custom field definitions with entity-backed CustomFieldService

Tasks 1.21.0 → 1.22.0 | e8f7dd17
Details

Introduce global workspace-scoped custom fields that can be added to any task.

Field values are stored in the existing TaskItem.CustomFields dictionary using

a "cf_" key prefix to avoid collision with internal keys.

Key additions:

  • CustomFieldDefinition model with 13 field types (text, number, date,

single_select, multi_select, checkbox, url, email, phone, currency,

rating, person, formula)

  • CustomFieldValue record with type-safe accessors (GetString, GetNumber,

GetBool, GetStringList) and formatted display output

  • CustomFieldService with CRUD via SDK (entity type: task_custom_field),

in-memory cache, and field value read/write helpers

  • Entity schema for task_custom_field in TasksPlugin
  • ViewModel exposes CustomFieldDefinitions and SelectedTaskCustomFields
  • Version bump to 1.22.0
minor Tasks

Add custom status definitions with entity-backed StatusService

Tasks 1.20.0 → 1.21.0 | 87ecfd54
Details

Replace hardcoded task status strings with dynamic StatusDefinition entities

managed by a StatusService CRUD layer. Status definitions are stored via SDK

as "task_status" entities with name, key, color, icon, category, and sort order.

Eight default statuses are seeded on first use: todo, in_progress, done, waiting,

blocked, review, deferred, cancelled — each assigned to a semantic category

(not_started, active, done, cancelled).

Key changes:

  • StatusDefinition model with 4 category types and 8 built-in defaults
  • StatusService with in-memory cache, CRUD, and EnsureDefaultStatusesAsync
  • TaskItem.ResolvedStatus transient property drives StatusColor/DisplayStatus
  • Board column assignment uses category-based mapping via GetBoardColumnForStatus
  • Status filters and smart filters use category-based matching
  • Statistics (todo/active/done/cancelled counts) use StatusService lookups
  • Command palette and status display use StatusService.GetDisplayName
  • Removed CustomStatus property and CustomStatuses collection (superseded)
  • Version bump to 1.21.0
minor Tasks

Add tasks.update_task and tasks.add_link intents

Tasks 1.19.0 → 1.20.0 | af66fce1
Details

Adds two new intent descriptors and execution handlers to the Tasks plugin:

  • tasks.update_task: Updates any combination of title, description, status,

priority, due_date, start_date, tags (with +prefix add mode), contexts,

project assignment, and checklist items. Resolves tasks by ID (from

wiki-link or conversation context) or by title search fallback. Tracks

changed fields and returns a descriptive summary.

  • tasks.add_link: Links a task to any cross-plugin entity (page, contact,

event, etc.) with a configurable relationship type (linked_to, depends_on,

blocked_by, blocks, child_of, parent_of). Resolves target entities via

ILinkableItemProvider search when only a title is provided.

Shared ResolveTaskAsync helper extracts task resolution logic (by ID or

title search) for reuse across both handlers. Bumps Tasks plugin to 1.20.0.

← Prev Page 8 of 53 Next →

Get notified about new releases