Obsidian plugin · 4.12.3

TaskNotes 4.12.0

[!info] TaskNotes v5 beta

[!info] TaskNotes v5 beta

TaskNotes v5 is available as an opt-in beta alongside TaskNotes 4.12. TaskNotes 4.12 remains the recommended stable release.

The major change in v5 is support for portable TaskNotes collections. These collections can be used in both Obsidian and the TaskNotes app, which is also available in beta, so the same tasks can be managed through either interface.

TaskNotes collections are built on mdbase, a Markdown-native collection format. mdbase Connect provides the permissioned bridge that makes those collections available to the TaskNotes app. Your tasks remain ordinary Markdown files in your vault; mdbase adds a shared structure that compatible tools can understand.

TaskNotes v5, mdbase Connect, and the TaskNotes app are all under active development. Please use a backed-up vault, expect some rough edges, and report any problems you encounter.

Security#

  • Calendar OAuth credentials and account tokens are now stored in Obsidian Secret Storage instead of TaskNotes' data.json, with automatic migration for existing connections. See Calendar Integration.
    • Thanks to @mcuste for the contribution
  • Updated bundled HTTP, address parsing, and schema validation dependencies to versions containing their current security fixes.

Added#

  • Added portable task attachment references. Attachments now round-trip as an ordered attachments link list in task frontmatter and are exposed through the TaskNotes model and runtime API. These are collection-file references only; attachment bytes and binary metadata remain owned by the host.
  • (#2142) MCP tasknotes_create_task and tasknotes_update_task now accept customProperties for configured TaskNotes user fields. Thanks to @phillipadsmith for suggesting this.
  • (#2126, #2134) Added optional filename templates for materialized recurring occurrence notes, with explicit date, ISO week, month, year, and month-name variables plus per-parent overrides. Existing naming remains unchanged until a template is configured. See Recurring Tasks. Thanks to @raphaelfaouakhiri for reporting and implementing this.
  • (#2105) Added {{projectFolder}} and {{projectFolders}} folder template variables for storing tasks alongside linked project notes. See Template Variables. Thanks to @carypruitt for this contribution.

Changed#

  • Generated TaskNotes type contracts now include configured natural-language capture triggers, allowing compatible clients to offer the same field suggestions.
  • Rebuilt the TaskNotes documentation with reorganized navigation, full-text search, mobile and accessibility improvements, and references generated from the current commands, settings, compatibility metadata, HTTP routes, and default Bases. Added practical guides for adopting TaskNotes in an existing vault, mobile use, custom Bases, and backup and recovery. See the TaskNotes documentation.
  • (#2088) Convert current note to task now uses your default scheduled date when the note does not already have scheduled frontmatter, while the None default still leaves converted notes unscheduled. See Task Properties. Thanks to @e-zz for suggesting this.

Fixed#

  • Plugin settings now recover when Obsidian briefly returns no data while reloading an externally changed settings file, preventing a post-reload error without overwriting the existing settings.
  • (#2194) Pomodoro task selection suggestions now keep rich task cards at the menu width, preventing task titles from wrapping one letter per line. Thanks to @Evilgenee for reporting this.
  • (#2196) Drag-to-reorder now works for Task List Bases embedded in Live Preview notes, matching the behavior of directly opened Bases and Reading mode embeds. Thanks to @jimbo108108 for reporting this.
  • (#2198) Agenda Bases can now show overdue scheduled or due tasks on today's row with showOverdueOnToday, and regenerated default Agenda files enable that behavior by default. Thanks to @vicrdguez for reporting this.
  • (#2182) Checklist progress on task cards now excludes cancelled markdown checklist items such as [-] from the completed/total count. Thanks to @ctrl-q for reporting this.
  • (#2180) Inline task cards in Live Preview now keep their click and context menu handlers active on Obsidian 1.13, so clicking a rendered task link opens the edit modal instead of revealing the raw wikilink. Thanks to @npondel for the detailed diagnosis and @minchinweb for confirming the issue.
  • (#2171) Stopped recurring notification and status-bar scans from reading unindexed notes directly from disk while preserving the fallback for direct task lookups. Thanks to @tgrosinger for identifying and diagnosing the excessive vault reads.
  • (#2174) Open or create occurrence note from Quick Actions now uses the recurring task's scheduled occurrence date, preventing duplicate occurrence notes keyed to the day the action was run. Thanks to @chmac for reporting this.
  • (#2169) Regenerated default Base views now include tasks whose identifying property is stored as a list containing the configured task value. Thanks to @GlebYavorski for reporting this.
  • (#2166) Fixed Task List views configured to start collapsed so the first chevron click expands only the selected group instead of expanding every other group. Thanks to @renatomen for reporting and fixing this.
  • (#2165) Convert current note to task now reads configured field mappings, including list-valued title fields such as aliases, and preserves an existing aliases list when the title is unchanged. Thanks to @jkuball for reporting this.
  • (#2164) Flat Kanban boards now clear stale swimlane layout state when they rerender, preventing columns from occasionally stacking into one vertical strip after switching tabs. Thanks to @brienna for reporting this.
  • (#2160, #2161) Generated Kanban Bases now use the correct TaskNotes status property and configuration block. Rich Bases status values render as their configured labels, while pinned columns and saved column order are honored. Thanks to @kevin-4c for the detailed reports and diagnosis.
  • (#2111, #2159) Recurring task instances now remain visible through the final day of Calendar and Agenda ranges in positive-offset time zones, regardless of the configured first day of the week. Thanks to @Arachnidai and @odxn0803 for reporting this.
  • (#2155) Regenerated default Calendar Bases now inherit the app-level time slot duration instead of hardcoding 30 minutes. Existing per-Base time settings remain intentional overrides. Thanks to @SZZ504232 for reporting this.
  • (#2154) Timed ICS events without a TZID now preserve their floating wall time in the user's local timezone instead of being interpreted as UTC. Thanks to @cloesophia for the reproducible calendar sample.
  • (#2152) Fixed paginated Google Calendar refreshes for calendars with many events so secondary calendars do not disappear after Google returns a second page. Thanks to @wobafett for reporting and diagnosing this.
  • (#2141) Fixed Task List groups for tasks without scheduled or due dates showing a raw Bases icon object instead of None. Thanks to @ks-studio-net for reporting this.
  • (#2140) The edit task modal now shows saved task-identification tags when hiding identification tags is disabled. Thanks to @3zra47 for reporting this.
  • (#2148) Empty list-like frontmatter values no longer become literal "null" entries when tasks are edited. Thanks to @minchinweb for reporting this.
  • (#2120, #2135) Long all-day event titles in Calendar week and day views now truncate instead of stretching the all-day row. Thanks to @same774 and @ks-studio-net for reporting this.
  • (#2124) Fixed a Kanban crash when opening or closing the edit modal immediately after moving a task between list-valued swimlanes such as contexts. Thanks to @Decia-C for reporting this.
  • (#2114) Completing a rescheduled occurrence for a scheduled-anchored recurring task now advances the parent from the moved occurrence date instead of an earlier original occurrence date. Thanks to @chrabia for reporting this.
  • (#2113) Failed Google Calendar manual refreshes no longer make the next immediate refresh show a misleading success notice. Thanks to @JohWQ for reporting this.
  • (#2109) TaskNotes no longer injects instant-conversion controls into embedded or detached Markdown editors, preventing checkbox notes opened from unrelated Bases from freezing Obsidian on mobile. Thanks to @jmartinmcfly for the clear reproduction and recording.
  • (#2107, #2108) Creating tasks with Store title in filename enabled now handles duplicate or case-variant titles without failing or replacing the task title with a suffixed filename. Thanks to @AdmiralClackington for reporting and diagnosing this.
  • (#2106) Regenerated default Calendar Base files now use your configured first day of the week instead of forcing Sunday. Thanks to @atos2212-blip, @cweekly, @idontcode34, and @hikatamika for reporting this.
  • (#2100) Tags added while creating a task now keep the same frontmatter order as tags added later from the task context menu. Thanks to @mgrecar for reporting this.
  • (#2092) New non-recurring tasks created directly in a completed status now get a completed date, so completed-date views can find them immediately. Thanks to @Crell for reporting this.
  • (#2096) Fixed TaskNotes Kanban swimlanes falling back to None when the swimlane used a Bases formula that was not already cached by Bases. Thanks to @ddevaal for reporting this.
  • (#2093) TaskNotes now retries custom Bases view registration when the Bases core plugin is enabled after TaskNotes, preventing default views from showing Unknown view type until TaskNotes is reloaded. Thanks to @yaye-work for reporting this.
  • (#2084) The Relationships widget no longer prevents editor text selection from autoscrolling when dragging below the bottom edge of a task note. Thanks to @lostwildland for reporting this.
  • (#2081, #2103) Kept task card and relationships widgets visible in reading mode when Obsidian scroll or preview updates remove their DOM, and refreshed visible widgets promptly after metadata changes. Thanks to @mukhozhuk for reporting and debugging this and @martin-forge for fixing it.
  • (#2064, #2066) Recurring tasks now advance correctly after their next scheduled date is manually adjusted, preserving due-date offsets and times without jumping back to an earlier occurrence. Thanks to @chmac for reporting and fixing this.
  • (#2018) Fixed Hide empty columns in Kanban views with swimlanes so columns with no visible tasks are hidden while pinned columns remain. Thanks to @scottTomaszewski for reporting and fixing this.
  • Fixed recurring all-day ICS subscription events keeping the original end date on later instances, which could cause calendar list views to show events under the wrong day. Thanks to @abbiefalls90.
  • (#2033) Fixed the project folder badge on task cards so, when expandable subtasks are enabled, it expands or collapses inline subtasks instead of showing an unavailable-action notice. Thanks to @abbiefalls90 for the fix and @scottkodai for the follow-up feedback.
  • (#2040, #2041) Stopped newly created tasks from filling the Google Calendar retry queue when calendar export is disabled. Thanks to @chmac for reporting and fixing this.
  • (#2046, #2051) The date and time picker now focuses the natural-language input when it is enabled, making keyboard-driven quick actions ready for immediate typing. Thanks to @DevOps-Toast for reporting this and @ther12k for fixing it.
  • (#2125, #2129) Materialized recurring occurrence notes now record the date they were actually completed, while the parent recurring task continues to track the occurrence date. Thanks to @raphaelfaouakhiri for reporting and fixing this.
  • (#2173, #2175) Completion-anchored recurring tasks with materialized occurrence notes now schedule the next occurrence from the day the occurrence was actually completed. Thanks to @chmac for reporting and fixing this.
  • (#1982) Preserved the Task List's own scroll position during Bases refreshes so long mobile lists do not jump back to the top after task updates. Thanks to @3zra47 for the follow-up report.
  • (#1863) Microsoft Calendar event updates now accept opaque Exchange calendar IDs instead of failing local validation before contacting Microsoft Graph. Thanks to @fmacondray for reporting this and providing the follow-up stack trace.