# TaskNotes 3.22.0

## Major Features

### Modular Properties System

- Added modular properties system allowing users to control visibility of task properties (due date, scheduled date, priority, projects, contexts, tags, custom fields, and total tracked time) both globally and per saved view. Properties can be configured through a new Properties dropdown in the filter bar, with settings automatically saved per view. Includes performance optimizations to render properties only when visible. *Thanks to @renatomen for the initial implementation of this feature*

- Task cards now dynamically render properties based on visibility settings with improved error handling and type safety. System supports both core properties and user-defined custom fields with proper fallback to default configurations for new users.

- Added total tracked time as a configurable property in the modular system, calculated from time entries and displayed consistently across all views when enabled.

### Bases-style Filter Bar Redesign

- Complete filter bar redesign matching Obsidian's bases plugin styling with improved layout, spacing, and button appearance. Added text labels and chevron icons to all filter buttons (Sort, Filters, Properties, New) for better discoverability.
- Replaced dropdown menus with native Obsidian context menus featuring section headers and improved reliability. Sort/Group functionality now uses unified context menu system with better organization.
- Implemented intelligent filter popup positioning using boundary detection to prevent popups from hiding under adjacent panes. Increased default popup width from 300px to 500px for better usability.
- Moved expand/collapse controls from separate containers directly into filter headings across all views (TaskListView, AgendaView, subtask widget) for cleaner interface and consistent user experience.
- Added dedicated "+ New" task creation button to filter bar with neutral styling and proper view context awareness.

### Statistics view

- Implement a new view to track statistics about projects and time tracking. 

## UX

### Task Interaction Improvements

- Changed "This Week" grouping label to "Next seven days" for clearer, more specific language about the 7-day time period while maintaining identical underlying functionality. *Fixes issue #516 reported by @anareaty*

### External Contributions

- Type-aware input fields in task modals now provide appropriate UI components based on field type (text/list with autosuggest, date with picker icon, boolean with toggle). Project autosuggest during task creation now supports multi-word project names without interrupting suggestions on spaces. *Contributed by @renatomen*
- Fixed subtask right-click context menus that were incorrectly showing parent task options instead of subtask-specific options. Enhanced inline task overlay cursor behavior with configurable timing settings (0-500ms) for predictable overlay hiding when cursor approaches link boundaries. *Contributed by @renatomen* 
- Fixed project names containing commas (e.g., `[[Money, Org & Adm]]`) being incorrectly split, breaking selection and display across task modals, settings, and instant conversion. Now uses proper wikilink parsing to preserve comma-containing project names as single entities. *Contributed by @renatomen*
- Fixed date parsing errors caused by hardcoded field mapping not respecting user's custom field configurations. Plugin now properly uses field mapper for note date extraction with fallback to hardcoded fields for backward compatibility. *Contributed by @renatomen*
- Fixed User Fields column order in settings to match Field mapping configuration for consistency. *Contributed by @renatomen*

## Bug Fixes

### Timezone and Date Handling

- Fixed timezone-dependent "Today" identification issues across multiple views including MiniCalendarView tooltips, PomodoroService session categorization, PomodoroStatsView statistics, and StatsView date calculations. All date-sensitive components now use UTC-anchored dates for timezone-independent behavior. *Fixes issue #452 reported by @MinchinWeb*


### User Interface Fixes

- Redesigned group counters with clean appearance (removed background, border, padding), positioned to far right of headers using muted text color for subtle display while maintaining left-aligned headings.
- Improved contrast for INTERRUPTED status badge in pomodoro statistics for better readability. *Fixes issue #529 reported by @motusira*
- Removed title length limits that were causing text truncation, allowing full title display. *Fixes issue #378 reported by @nsstrickland*
- Added all-day slot toggle to calendar view for better event organization. *Fixes issue #242 requested by @Crunchnuggetz*
- Added calendar locale configuration for international calendar support with proper localization. *Contributed by @pixeler*
- Fixed task states not refreshing when date changes at midnight, ensuring accurate daily task status updates. *Fixes issue #527 reported by @jordandrako*
- Fixed inline task overlay title wrapping using `white-space: break-spaces` for proper text display. *Fixes issue #517 reported by @cathywu*

### New Capabilities

- Added weekday display and increment options to date picker with integration into task context menus for improved date selection experience. *Fixes issue #238 requested by @girisumit*
- Added tags to available sorting and grouping options for more flexible task organization. *Fixes issue #169 requested by @bce283c*
- Added create inline task command for quick task creation within notes with NLP project support for automatic project assignment based on context. *Fixes issue #299 requested by @0dfa1bc*
- Added filename template variables to folder templates including support for additional customization options. *Fixes issue #473 requested by @oliverlalan*
- Implemented status auto-suggestion with NLP integration for intelligent status recommendations during task creation and editing.

## Infrastructure Improvements

### Development and Testing

- Updated multiple npm dependencies including ical.js (1.5.0 → 2.2.1) and Jest (29.7.0 → 30.1.1) with compatibility fixes. Resolved all npm security vulnerabilities and updated ICS subscription service for ical.js v2.x compatibility.
- Fixed all test suite failures and infrastructure issues including Jest 30 compatibility, RRule mocking, TypeScript configuration, and CI environment setup. Removed coverage thresholds that were causing CI failures while maintaining test quality.
- Improved code quality throughout modular properties system with proper TypeScript compliance, error handling, performance optimizations, and memory cleanup functions. Replaced 'any' types with proper type guards and added comprehensive interface definitions.

## Contributors

Special recognition goes to **@renatomen** for multiple substantial contributions including type-aware custom field inputs, enhanced task interaction fixes, project name handling improvements, date parsing fixes, and settings alignment.

Thanks to the following community members for their bug reports and feature requests:

- **@anareaty** - Reported grouping label confusion with clear examples
- **@MinchinWeb** - Identified timezone handling inconsistencies across multiple views
- **@motusira** - Reported contrast issues with INTERRUPTED status badge
- **@nsstrickland** - Identified title truncation problems
- **@Crunchnuggetz** - Requested all-day slot toggle for calendar views
- **@jordandrako** - Reported task state refresh issues at midnight
- **@cathywu** - Identified text wrapping problems in overlays  
- **@girisumit** - Requested enhanced date picker functionality
- **@oliverlalan** - Requested template variable enhancements