# TaskNotes 3.20.0

## New Features

### Task Organization and Filtering

**Folder-Based Task Filtering** - Added task filtering by folder location with dropdown selection of vault folder paths, special handling for root-level tasks, and support for contains/empty operators. *Addresses issue #369 reported by kmaustral*

**Dynamic Task Folder Organization** - Added template variable support for default task folder setting with task variables (`{{context}}`, `{{project}}`, `{{priority}}`, `{{status}}`, `{{title}}`) and date variables (`{{year}}`, `{{month}}`, `{{day}}`, `{{date}}`). Supports automatic folder creation and title sanitization. *Addresses feature request #376 by Mara-Li*

**Archive Task Organization** - Added optional bidirectional task movement between archive folder and default tasks folder. Disabled by default with settings in Task defaults → Task organization (`moveArchivedTasks`, `archiveFolder`). *Addresses feature request #402 by anareaty*

### Enhanced UI and Controls

**Enhanced Filter Bar** - Improved filter bar with instant badge updates, right-click clear functionality, "Clear All Filters" button, and better UI synchronization across main and subtask views. *Contributed by renatomen*

**Collapsible Groups** - Added collapsible groups with persisted state, chevron indicators, and keyboard navigation. Works with all grouping options while preserving wikilink functionality. Extended to subtask widget with consistent behavior. *Contributed by renatomen*

**Expand/Collapse All Controls** - Added "Expand All" and "Collapse All" buttons to task list toolbar that appear when grouping is active. *Contributed by renatomen*

**Configurable UI Elements** - Added settings for subtask chevron position (right/left) and saved views button positioning in task view toolbar. *Contributed by renatomen*

### Advanced API Architecture and Webhook System

Refactored HTTP API from monolithic design to controller/service pattern, reducing HTTPAPIService from 1,061 to 231 lines (78% reduction). Added dedicated controllers for tasks, time tracking, Pomodoro, system, and webhooks with 100% backward compatibility.

**Webhook System** - Added complete webhook infrastructure with signature verification, automatic retries with exponential backoff, 10-second delivery timeout, and auto-disable after repeated failures. Supports all task lifecycle events (created, updated, deleted, completed, archived, unarchived), time tracking events, Pomodoro sessions, recurring task instances, and reminders.

**Webhook Testing and Development** - Included standalone webhook testing server (`test-webhook.js`) with real-time payload inspection, signature verification testing, and comprehensive event logging for development and debugging.

## Improvements

### UI and Visual Enhancements

**TaskNotes Icons** - Added TaskNotes icons throughout interface and edit task modal headers with new SVG assets.

**Task Card Polish** - Improved status and priority dot alignment and reordered context menu ("Copy task title" moved to top). *Addresses alignment issue #410 reported by kmaustral*

**Button Styling** - Fixed agenda view and filter popup button backgrounds with improved styling consistency.

### Technical Improvements

**Settings Architecture** - Decomposed monolithic settings.ts into focused modules: defaults, settings management, type definitions, and utilities for better maintainability.

**Documentation** - Added extensive webhook documentation in `docs/examples/webhook-transforms/` with ready-to-use transform examples for Discord (rich embeds with colors), Slack (compatible attachments), Microsoft Teams (MessageCard format), and generic JSON templates. Expanded API documentation with complete endpoint reference, examples, error handling, authentication, and OpenAPI specification.

**Webhook Integration Services** - Enhanced core services (TaskService, PomodoroService) with webhook notifications integrated into task lifecycle events, ensuring all user actions trigger appropriate webhook deliveries for external automation and monitoring.

## Bug Fixes

**Mobile Modal Close Button** - Fixed close button (X) touch event handling in task edit modals on mobile devices, particularly Android. *Addresses issue #404 reported by anareaty*

**Test Suite Stabilization** - Resolved test failures and linting errors

**HTTP API Field Consistency** - Updated API examples to use correct 'details' field instead of deprecated 'notes' field. *Addresses issue #393 reported by @nightroman*

**Missing Webhook Trigger** - Added webhook trigger for recurring task completion events.

## Documentation Updates

- Task defaults documentation with template variables
- Miscellaneous settings documentation  
- Webhook transform documentation and examples
- Demo GIFs for new features

Thanks @renatomen!

## Contributors

Special thanks to the following contributors:

- **@Mara-Li** - Feature request for template variables in task folders
- **@kmaustral** - Feature requests for folder filtering and UI alignment improvements
- **@anareaty** - Bug report for mobile modal close button issue
- **@nightroman** - Reported mislead API documentation

A really big thanks to @renatomen whose very polished contributions form the bulk of this update!


