github callumalpass/tasknotes 4.0.0-beta.3

pre-release14 hours ago

TaskNotes 4.0.0-beta.3

Beta Release

You may encounter issues. Report problems on GitHub Issues.

Added

  • Updated task card styling

    • Increased status dot size from 16px to 18px
    • Added subtle shadows and transitions to card hover states
    • Updated hover effects on status and priority dots with scaling and removed glow
    • Modified metadata pills with backdrop blur and adjusted spacing
    • Added box shadows to interactive elements (dates, projects, tags) on hover
    • Updated animations to use cubic-bezier easing
    • Added gradient accents to subtask and blocking task borders
    • Fixed subtasks appearing behind parent card hover backgrounds
    • Fixed subtask click and context menu events bubbling to parent cards
    • Fixed subtasks inheriting parent priority and status colors
  • (#361) Added completion-based recurrence support with recurrence_anchor field

    • Tasks can now recur based on completion date instead of scheduled date
    • Set recurrence_anchor: completion in task frontmatter to enable this behavior
    • When completing a recurring task, the next occurrence will be scheduled relative to the completion date
    • The DTSTART in the RRULE automatically updates to the completion date, ensuring calendar views show future occurrences at the correct dates
    • Defaults to scheduled (original behavior) if not specified
    • Useful for tasks like "Exercise weekly" where you want the next occurrence 7 days after you actually complete it, not 7 days after it was scheduled
    • Example: Complete a weekly task 2 days late, and the next occurrence will be 7 days from the completion date (not the original scheduled date)
    • Thanks to @luciolebrillante for the original feature request, and @jhedlund, @nschenone, @BryanWall, @realJohnDoe, and @kazerniel for additional input and interest
  • (#416) Added support for skipped recurrence instances with skipped_instances field

    • Recurring tasks can now have individual instances marked as "skipped" without completing them
    • Skipped instances are stored in the skipped_instances frontmatter array (e.g., ["2025-11-15", "2025-11-22"])
    • Right-click on a recurring task instance in calendar views to skip/unskip it
    • Visual styling differentiates skipped instances:
      • Calendar views: Gray background with muted appearance
      • Task cards: Strike-through text with gray styling
    • Skipped instances don't affect the recurrence pattern - future instances continue as scheduled
    • Useful for holidays, vacations, or other planned exceptions to recurring tasks
    • Thanks to @mdbraber for the suggestion to use an array similar to complete_instances, and @jerzy-dudzic for reporting the issue

Fixed

  • (#893) Fixed yearly recurring tasks not always updating scheduled date to next occurrence when completed

    • Increased look-ahead period for yearly recurrence from 365 days to 800 days (~2.2 years)
    • Also optimized look-ahead periods for other frequencies: daily (30 days), weekly (90 days), monthly (400 days)
    • Ensures the next occurrence is always found when completing recurring task instances
    • Thanks to @VenturaNotes for reporting
  • (#951) Fixed yearly recurring tasks not showing up in calendar's weekly, 3-day, or day views

    • Extended the look-ahead period for yearly recurring tasks when generating calendar instances
    • Calendar views now look ahead ~2.2 years for yearly tasks to ensure occurrences appear even in short date ranges
    • Only displays instances that fall within the actual visible calendar range
    • Weekly recurring tasks were unaffected and continued to work correctly
    • Thanks to @bespokecomp for reporting
  • (#889) Fixed git merge conflicts in calendar subscription metadata

    • Calendar subscription lastFetched and lastError fields are now stored in memory instead of being saved to disk
    • Prevents git conflicts when syncing vaults across multiple computers that independently fetch calendar subscriptions
    • The "last synced" timestamp in settings will reset on plugin reload, but subscriptions will re-fetch automatically
    • Thanks to @karlfrohlich for reporting
  • Fixed recurrence modal not loading DTSTART date/time when editing existing recurrence rules

    • The custom recurrence modal now correctly parses and displays the start date and time fields
    • Fixed parser that was splitting on = instead of : for DTSTART values
  • (#1097) Fixed custom properties and formulas not displaying in Bases views

    • Updated TaskCard to use Bases API's getValue() method for formulas and custom note properties
    • Formulas now work correctly using formula.NAME syntax
    • Custom note properties now work correctly using note.PROPERTY syntax
    • Thanks to @cathywu for reporting
  • (#1099) Fixed issues with default Bases file creation

    • Fixed double-prefix bug in relationships template that generated invalid filter expressions like note.note.projects
    • Fixed race condition where files created during plugin load wouldn't appear in file explorer
    • Default Bases files now generate with correct property paths and appear reliably in the file explorer
    • Thanks to @kmaustral for reporting
  • (#1110) Fixed open recurring tasks appearing crossed out in Tasks view

    • Removed stale selectedDate property that was never updated in v4
    • Tasks view now uses fresh UTC-anchored "today" for correct recurring task completion status
    • Fixes issue where tasks completed yesterday would appear crossed out today for users in positive UTC offset timezones
    • Also fixed KanbanView to use UTC-anchored dates for consistency
    • Thanks to @kmaustral for reporting
  • (#1118) Fixed user-defined fields not working in inline task conversion

    • User-defined fields like >customfield value now properly convert to frontmatter when using the "TaskNote: Convert task to TaskNote" command
    • Fixed fields appearing with internal IDs (e.g., field_1761435101864) instead of configured frontmatter key names
    • Array values are now properly joined with commas
    • Added userFields property to ParsedTaskData interface to support custom fields throughout the conversion flow
    • Thanks to @guncav for reporting
  • Fixed kanban column width CSS constraints not matching settings

    • Updated CSS min-width from 280px to 200px and max-width from 350px to 500px to match slider range
    • Column width slider now works correctly across the full 200-500px range
  • Kanban view now shows empty columns for all user-defined statuses when grouping by status

    • Empty columns appear for custom statuses defined in settings, even when no tasks have that status
    • Allows users to drag tasks into empty status columns
    • Works in both flat kanban view and swimlane mode
    • Respects the existing "Hide empty columns" setting
    • Thanks to @williamcheuk03 for reporting this issue

Don't miss a new tasknotes release

NewReleases is sending notifications on new releases.