Changelog
All notable changes to Obsidian Project Planner will be documented on this page. The format is based on Keep a Changelog.
Versions
- 0.8.0 — 2026-03-06
- 0.7.1 — 2026-02-28
- 0.7.0 — 2026-02-22
- 0.6.13 — 2026-02-10
- 0.6.12 — 2026-02-04
- 0.6.11 — 2026-02-02
- 0.6.10 — 2026-02-01
- 0.6.9 — 2026-01-31
- 0.6.7 — 2026-01-28
- 0.6.6 — 2026-01-25
- 0.6.5 — 2026-01-22
- 0.6.4 — 2026-01-20
- 0.6.3 — 2026-01-14
- 0.6.2 — 2026-01-13
- 0.6.1 — 2026-01-07
- 0.6.0 — 2026-01-07
- 0.5.0 — Previous Release
[0.8.0] — 2026-03-06
[0.7.1] - 2026-02-28
Fixed
Board View Settings Persistence
- Stale Settings Cache: Fixed a bug where Board view changes (e.g., newly created buckets) were lost between sessions
- The saveTasks() method wrote tasks using a cached copy of data.json that could hold outdated settings, silently overwriting newer bucket definitions on the next save
- Fix ensures raw.settings is always synced from the authoritative in-memory settings object before writing to disk
[0.7.0] — 2026-02-22
Added
Task Effort Tracking
- Microsoft Planner-Style Effort System: Full effort tracking with Completed, Remaining, and Total hours
- Effort Completed: Hours of work done on a task (editable in Grid View and Task Detail)
- Effort Remaining: Hours of work left (auto-adjusts when completed changes)
- Effort Total: Read-only sum of Completed + Remaining
- Duration: Auto-calculated days between Start Date and Due Date
- % Complete: Auto-derived from effort values using
round(completed / total × 100)
Smart Effort Auto-Sync (Microsoft Planner Behavior)
- Auto-Deduct Remaining: Entering completed hours automatically reduces remaining from the established total
- Example: 10h total, enter 4h completed → remaining auto-adjusts to 6h
- Status ↔ Effort Sync: Marking a task "Completed" moves all remaining hours into completed; % Complete at 100% auto-sets status to "Completed"; dropping below 100% from Completed resets to "In Progress"
- Bidirectional View Sync: Effort changes in Grid View instantly reflect in Task Detail View and vice versa
Effort in All Views
- Grid View: 5 new columns — % Complete, Effort Done, Effort Left, Effort Total, Duration
- Effort Done and Effort Left are inline-editable number inputs
- % Complete, Effort Total, and Duration are read-only calculated cells
- All new columns support drag-and-drop reordering and show/hide toggles
- Task Detail View: New Effort section with Duration row, % Complete display (with "calculated from effort" hint), and Completed/Remaining/Total grid
- Dashboard View: Effort Summary section with progress bar and KPI cards (Total Effort, Completed, Remaining, Avg % Complete) — appears only when tasks have effort data
Markdown Sync for Effort Fields
- Bidirectional Sync:
effortCompleted,effortRemaining, andpercentCompletenow sync to/from YAML frontmatter in task markdown files- Written to frontmatter when values are > 0
- Parsed back with safe
Number()coercion on markdown → JSON sync - Duration not synced (derived from
startDate/dueDatewhich are already synced)
Dependency-Driven Auto-Scheduling (MS Project / GanttProject Style)
- Automatic Date Cascading: When a predecessor task's dates change, all dependent tasks automatically shift their dates
- Finish-to-Start (FS): Dependent starts the day after predecessor finishes
- Start-to-Start (SS): Dependent starts when predecessor starts
- Finish-to-Finish (FF): Dependent finishes when predecessor finishes
- Start-to-Finish (SF): Dependent finishes when predecessor starts
- Duration Preservation: Task duration (days between start and due) is maintained when shifting
- Forward-Only Scheduling: Tasks are only pushed later, never pulled earlier — prevents unexpected schedule compression
- Recursive Cascade: Changes propagate through the entire dependency chain (A → B → C all shift)
- Circular Dependency Guard: Visited-set prevents infinite loops in circular dependency graphs
- Markdown Sync: Cascaded date changes automatically sync to markdown files
- New Setting: "Auto-schedule dependent tasks" toggle under Dependency Scheduling section (enabled by default)
- Grid View Indicator: Dependency cells show 📐 icon with "(auto-scheduled)" tooltip when scheduling is active; falls back to 🔗 when disabled
Timeline/Gantt Dependency Arrows (MS Project Style)
- Visual Dependency Connectors: SVG overlay draws right-angle connector arrows between linked task bars
- Finish-to-Start (FS): Arrow from predecessor's right edge to successor's left edge
- Start-to-Start (SS): Arrow from predecessor's left edge to successor's left edge
- Finish-to-Finish (FF): Arrow from predecessor's right edge to successor's right edge
- Start-to-Finish (SF): Arrow from predecessor's left edge to successor's right edge
- Smart Routing: L-shaped orthogonal paths (horizontal → vertical → horizontal) with automatic detour routing when bars overlap horizontally
- Accent-Colored Lines: Arrows use theme accent color with arrowhead markers for clear directionality
- Toggle Button: Toolbar button to show/hide dependency arrows (enabled by default)
- Active state uses accent color styling; toggles with single click
- Arrows re-render on every view update to stay in sync with task changes
Parent Task Roll-Up (MS Project Style)
- Automatic Parent Field Calculation: Parent tasks automatically derive their values from subtasks, matching MS Project behavior
- Date Roll-Up: Parent
Start Date= earliest child start; parentDue Date= latest child due - Effort Roll-Up: Parent
Effort Completed= sum of children; parentEffort Remaining= sum of children - % Complete Roll-Up: Duration-weighted average —
Σ(childDuration × child%) / Σ(childDuration)— tasks without dates use equal weight (1 day) - Status Sync: 100% complete auto-sets parent to "Completed"; dropping below 100% from Completed resets to "In Progress"
- Upward Cascade: Changes propagate up the hierarchy — grandparent updates when child changes
- Trigger Points: Roll-up fires on task update, task delete, make-subtask, and promote-subtask operations
- Markdown Sync: Rolled-up parent values automatically sync to markdown files
- Date Roll-Up: Parent
- Read-Only Parent Fields: Rolled-up fields are non-editable in both Grid View and Task Detail View
- Grid: Cells show italic text with Σ indicator and "Rolled up from subtasks" tooltip
- Task Detail: Effort inputs replaced with read-only display; date fields shown as static text
- % Complete hint changes from "(calculated from effort)" to "(rolled up from subtasks)"
- New Setting: "Auto-calculate parent task fields from subtasks" toggle under Parent Task Roll-Up section (enabled by default)
Fixed
Grid View Column Drag-and-Drop
- Column Order Sync: New columns added after initial setup are now properly included in the drag-and-drop order array
- Previously, columns not in the saved
gridViewColumnOrdercausedindexOf()to return-1, silently breaking drag-and-drop for those columns - Fix applied in both
loadGridViewSettings()(appends missing columns on load) andondrophandler (syncs missing columns before reorder)
- Previously, columns not in the saved
Grid View Cell Rendering Architecture
- Dynamic Column Rendering: Refactored
renderTaskRowfrom hardcoded if-blocks to acellRenderersmap iterated ingetColumnDefinitions()order- Headers and cells now guaranteed to render in the same order regardless of column reordering
- Row drag logic extracted to dedicated
handleRowDragStart()method - Eliminates header/cell mismatch bugs when columns are reordered
Grid View Inline Edit Sync
- Timing Fix:
isEditingInlineflag now set tofalseBEFOREupdateTask()call instead of after- Previously, the subscriber re-render was skipped during the update because the flag hadn't been cleared yet
- Ensures Grid View reflects changes immediately when editing effort or other fields inline
Scroll Position Preservation Across All Views
- Board View: Horizontal board scroll and per-column vertical scroll positions are now preserved across re-renders
- Saves
.planner-board-containerhorizontal scroll and each bucket column's vertical scroll
- Saves
- Task Detail View: Scroll position of the detail panel is preserved when task data updates (e.g., status change, effort edit)
- Dashboard View: Scroll position of the dashboard wrapper is preserved on data-driven re-renders
- Gantt/Timeline View: All 3 scroll axes preserved — left column vertical, right timeline vertical, and right timeline horizontal
- Cross-sync suppressed during restore to prevent scroll listener interference
- Previously, any TaskStore change caused a full
container.empty()+ rebuild, losing the user's scroll position in all views except Grid View
[0.6.13] — 2026-02-10
Added
Grid View Column Reordering
- Drag-and-Drop Column Headers: Reorder columns in Grid View with Microsoft Planner-style interactions
- Reorderable Columns: All hideable columns (Title, Status, Priority, Bucket, Tags, Dependencies, Dates) can be reordered
- Locked Columns: Drag handle, Row number, and Checkbox remain fixed in position
- Visual Feedback: Dragged column fades to 40% opacity, drop target shows accent outline
- Cursor States: Grab cursor on hover, grabbing cursor during drag
- Order Persistence: Column arrangement saved to
gridViewColumnOrdersetting and preserved across sessions - Smart Ordering: Automatically handles new columns not in saved order by appending them
- Consistent behavior with Board View bucket reordering for intuitive UX
Header View Switcher Icons
- Icon-Based Navigation: View switcher buttons now use Obsidian icons instead of text labels
- Dashboard:
layout-dashboardicon - Grid:
tableicon - Board:
layout-listicon - Timeline:
calendar-rangeicon - Graph:
git-forkicon - Tooltips show view names on hover for clarity
- Cleaner, more compact header design matching Obsidian's interface patterns
Fixed
DailyNoteTaskScanner Deduplication System
- Critical Fix: Task Duplication Prevention — Comprehensive overhaul to prevent duplicate tasks with Obsidian Sync
- Persisted Location Tracking: Task location map now saved to plugin settings (
dailyNoteTaskLocations). Survives plugin reloads and syncs across devices. Previously: in-memory only, lost on every restart → duplicates on reload - Content-Based Stable IDs: Replaced random UUIDs with deterministic content hashing. Hash formula:
file path + normalized task content. Same task content = same ID across all devices. Prevents sync conflict duplicates between devices - Duplicate Detection: Added
findDuplicateTaskByContent()to catch existing tasks before import. Checks title match +daily-task-*ID pattern. Updates existing task instead of creating duplicate - File Operation Tracking: File rename watcher updates location map keys automatically. File deletion watcher cleans up orphaned location entries. Tasks preserve IDs when daily notes are reorganized
- Enhanced Metadata: Task descriptions now include source line number. Format:
Imported from: [[filename]]\nLine: 42
Documentation
- DAILY_NOTE_SCANNER_AUDIT.md: Comprehensive security audit documenting all duplication issues and fixes
- Identified 5 critical/medium severity duplication vectors
- Documented cross-device sync protection mechanisms
- Testing checklist for Obsidian Sync scenarios
- Impact analysis: ~100% duplication rate → near zero with fixes
[0.6.12] — 2026-02-04
Added
Comprehensive Test Suite
- 313 Automated Tests (98.4% passing): Complete test coverage for all core functionality
- Unit Tests (214): TaskStore, TaskSync, UUID, DailyNoteTaskScanner, Main Plugin, ProjectPlannerSettingTab
- Integration Tests (13): End-to-end task workflows across components
- Utility Tests (99): Date formatting, settings utilities, helper functions
- Compliance Tests (32): Obsidian plugin manifest and lifecycle validation
Test Organization
- TaskStore Tests (37): Core operations, hierarchy, multi-project support, state management, legacy migration
- TaskSync Tests (41): Bidirectional markdown sync, file operations, error handling, sync lock prevention
- DailyNoteTaskScanner Tests (61): Tag extraction, task parsing, priority/due date detection, file scanning
- ProjectPlannerSettingTab Tests (37): Settings UI validation, project management, sync configuration
- Main Plugin Tests (30): Plugin lifecycle, view management, URI protocol, settings persistence
- UUID Tests (8): Generation, validation, uniqueness (100% coverage)
- Compliance Tests (32): Manifest validation, lifecycle methods, data safety, performance benchmarks
Test Infrastructure
- Jest Framework: TypeScript support with ts-jest, JSDOM environment for browser API simulation
- Obsidian API Mocks: Complete mock suite in
tests/__mocks__/obsidian.ts - Custom DOM Helpers: Extended HTMLElement methods (
createDiv,createEl,empty) for UI testing - Test Documentation: Comprehensive TESTING.md guide with examples and best practices
- ESLint Rules:
.eslintrc.obsidian.jsonwith Obsidian-specific patterns and security rules
Fixed
DailyNoteTaskScanner Project Name Parsing
- Multi-Word Projects: Fixed regex to properly handle project names with hyphens
- Before:
([^#\\n\\r]+?)(?=\\s|$|#)— stopped at first space - After:
([^\\s#]+)— correctly captures hyphenated names - Convention: Multi-word projects use hyphens in tags (e.g.,
#planner/Work-Project) - Added 13 edge case tests for project name extraction
Improved
Code Quality & Reliability
- Bug Prevention: Automated tests catch regressions before they reach users
- Documentation: Tests serve as executable examples of how code should behave
- Contributor Confidence: Easy onboarding with comprehensive test suite
- CI/CD Ready: GitHub Actions can run
npm testfor automated validation
Compliance Validation
- Manifest Checks: Validates all required fields, version format, ID conventions
- Lifecycle Checks: Ensures proper onload/onunload, resource cleanup, error handling
- Performance Checks: Validates plugin loads within 1 second
- Data Safety: Tests prevent settings data loss, validate error recovery
[0.6.11] — 2026-02-02
Added
Board View Card Reordering
- Drag-and-Drop Within Buckets: Enabled precise card reordering within the same bucket
- Visual Drop Indicators: Blue line appears above or below cards showing exact drop position
- Smart Position Detection: Automatically detects top half (before) or bottom half (after) based on cursor
- Task Order Persistence: Reordered cards maintain their position through TaskStore order updates
- Cross-Bucket Support: Seamlessly handles both reordering within bucket and moving between buckets
- Smooth Animations: Drop indicator has subtle glow effect for clear visual feedback
- Preserves all existing drag-to-bucket-column functionality
Improved
Task Details Panel Layout
- Reorganized Field Order: Improved task details layout for better workflow
- Description Promoted: Moved Description to appear directly after Task Title (before Status)
- Checklist Repositioned: Moved Checklist between Tags and Card Preview for easier access
- New order: Title → Description → Status → Priority → Tags → Checklist → Card Preview → Bucket → Dates → Dependencies → Links
- More logical grouping of related fields for faster task management
[0.6.10] — 2026-02-01
Fixed
Date Display Timezone Issue
- Board View: Fixed due dates displaying as one day earlier than set
- Corrected date parsing to avoid UTC timezone conversion issues
- Dates now parse correctly by splitting "YYYY-MM-DD" string and creating Date with explicit values
- Ensures dates display consistently across all timezones
- Gantt/Timeline View: Fixed start and due dates displaying incorrectly due to timezone conversion
- Timeline bars now position correctly based on actual date values
Improved
Grid View Inline Edit Polish
- MS Planner-Level Smoothness: Refined task title editing with optimistic updates and seamless transitions
- No Disappearing Tasks: Implemented optimistic UI updates — title changes appear instantly without flicker
- Smooth Fade Transitions: Input field fades out (150ms) as updated text fades in simultaneously
- Instant Feedback: New value displays immediately before background save completes
- Scroll Preservation: Viewport position maintained during title edits
- Escape key smooth fade back to original value; Enter key clean save
- Background sync happens after UI transition for perceived instant response
Grid View Add New Task Polish
- Smooth Row Appearance: New tasks slide in and fade in with cubic-bezier easing (300ms animation)
- Coordinated Focus Timing: Editor activation precisely timed to coordinate with row animation (150ms delay)
- Inline Editor Fade-In: Input field smoothly fades in when activated (150ms opacity transition)
- Auto-Selection: Task title automatically selected for immediate editing
- From task creation → row animation → editor activation → text selection happens in one fluid motion
Grid View Drag-and-Drop Polish
- Smooth Animations: Ghost element fades in on drag start and fades out on drop (100ms transitions)
- Drop Indicator Transitions: Line indicator smoothly animates position and opacity changes
- Performance Optimization: Throttled drop zone calculations to 60fps while keeping ghost movement instant
- Auto-Scroll: Viewport automatically scrolls when dragging near top/bottom edges (80px threshold)
- All transitions use consistent easing curves for unified feel
Fixed
Grid View Date Formatting
- Start Date Neutral Styling: Removed conditional formatting from Start Date column
- Conditional formatting (red for overdue, blue for today) only applies to Due Date column
Grid View Column Resizing
- Expandable Table: Fixed column resizing constraints on smaller viewports
- Changed table from fixed
width: 100%tomin-width: 100%withwidth: max-content - Horizontal scrolling activates automatically when table exceeds viewport
[0.6.9] — 2026-01-31
Fixed
Grid View Scroll Preservation
- Smooth Interactions: Fixed page jumping to top after drag-and-drop operations
- Scroll position is now automatically preserved during all TaskStore operations
- Eliminated jitter when checking/unchecking tasks
- Implemented automatic scroll restoration after subscription-based re-renders
Grid View Task Creation
- New Task Visibility: Fixed newly created tasks sometimes disappearing or flickering when pressing Enter
- Eliminated all redundant
render()calls after TaskStore operations (30+ instances removed) - TaskStore's subscription pattern now exclusively handles re-rendering
- Prevented race conditions between manual renders and subscription-based renders
Markdown Sync Improvements
- Task Rename Handling: Fixed duplicate markdown notes being created when renaming tasks
- Old task file is now properly deleted when task title changes
- Bidirectional Title Sync: Fixed task title changes in markdown files not syncing back to plugin
- Markdown file is automatically renamed to match new title
Grid View Enhancements
- Show Completed Tasks Toggle: Fixed toggle in settings not actually filtering tasks
- Horizontal Scrolling: Enabled horizontal scrolling for Grid View
- Subtask Drag-and-Drop: Fixed subtasks being pushed out of parent when reordering
[0.6.7] — 2026-01-28
Added
Board View Enhancements
- Bucket Menu Button: Hover over any bucket header to reveal a "..." menu button for quick bucket actions (rename, change color, add bucket, delete)
- Inline Bucket Editing: Double-click bucket names to edit them inline. Press Enter to save, Escape to cancel
- Works for both regular buckets and the Unassigned bucket
Enhanced Context Menu Functionality
- Cut, Copy, Paste Operations: Task context menu now supports clipboard operations
- Copy Link to Task: Generate
obsidian://URI deep links to tasks. Automatically copies to clipboard - Open Markdown Task Note: Quick access to task markdown files. Auto-creates note if it doesn't exist
- Available in Grid View and Timeline/Gantt View
Ribbon Icon Customization
- Configurable Ribbon Icons: Users can now choose which ribbon icons to display in settings
- Toggle visibility for Grid, Dashboard, Board, Dependency Graph, and Daily Note scan icons
- Reduces sidebar clutter by hiding unused view shortcuts
Fixed
Code Quality & Plugin Compliance
- Memory Leak Prevention: Fixed memory leak in Dependency Graph View with proper cleanup of event listeners and animation frames
- Type Safety Improvements: Removed all
(plugin as any)unsafe assertions - Data Persistence: Gantt view column width now uses plugin settings instead of localStorage
- Error Handling: Added proper error handling for vault operations
- External Links: Updated changelog link to GitHub releases page
Timeline View Improvements
- Synchronized Scrolling: Task list and timeline now scroll together vertically
- Proper Height Constraints: Timeline view now respects viewport height
- Improved Scrollbar Styling: Consistent thin scrollbars across both columns
Technical Improvements
- Obsidian API Compliance: All file operations use proper Obsidian vault API
- TypeScript Strict Mode: Full compliance with TypeScript strict type checking
- Resource Cleanup: Proper cleanup of event listeners and animation frames
- Build Verification: All code compiles without errors or warnings
[0.6.6] — 2026-01-25
Added
Settings
- Projects Base Path Setting: New setting to control where project folders are created
- Defaults to "Project Planner"
- Allows organizing all projects under a common parent folder
Fixed
Dashboard View
- Completed Task Filtering: Fixed completed tasks appearing in non-Completed cards (Critical Priority, High Priority, Overdue, Due Today, Due This Week)
- All Projects Display: Fixed "Show All Projects" toggle not displaying tasks. Added
getAllForProject()method to TaskStore - Bottom Stats Cards: Converted static stats to clickable KPI cards (High Priority, Has Dependencies, Not Started)
- Task Status Updates: Added status badges to task modals with real-time updates
Grid View
- Subtask Indentation: Fixed inconsistent indentation for subtasks. Consistent at 8px base + 20px per level
Markdown Sync
- Auto-Create Task Notes: Fixed task notes not being created automatically. Added sync call to
updateTask()method - Folder Creation: Fixed ENOENT errors — plugin now automatically creates parent folders
- Bidirectional Sync: File watchers now use
projectsBasePathsetting for proper sync - Template Cleanup: Removed duplicate newline before footer separator
[0.6.5] — 2026-01-22
Added
Task Timestamps
- Created Date Field: Tasks now track when they were created (auto-set on creation)
- Last Modified Date Field: Tasks track when they were last updated
- Smart Date Defaults: New tasks automatically set start date to today
Grid View Columns
- Created Column: Shows task creation date (hideable, read-only)
- Modified Column: Shows last modification date (hideable, read-only)
- Both columns use monospace font and muted color for easy scanning
Changed
Date Format Improvements
- Simplified Date Storage: Changed from ISO format (
2026-01-15T00:00:00.000Z) to simpleYYYY-MM-DDformat - Cleaner data files, easier to read and edit manually
- Maintains backward compatibility with old ISO format
- Sync on Startup Default: Now defaults to
false(wastrue) to prevent duplicate tasks with Obsidian Sync
Fixed
Plugin Startup Behavior
- Removed Auto-Open on Startup: Plugin no longer automatically opens a tab when Obsidian starts
- Views still restore from workspace state if previously open
Obsidian Sync Duplicate Prevention
- Initial Sync Throttling: Added 5-minute cooldown between initial syncs
- Increased Sync Lock Timeouts: Extended from 200ms to 1000ms for better Obsidian Sync handling
- Batched File Processing: Initial sync now processes files with 100ms delays
- Timestamp Preservation: Fixed
lastModifiedDatebeing overwritten during sync - Sync on Startup Warning: Added clear warning in settings about Obsidian Sync
- Better Duplicate Detection: Improved task ID matching to prevent re-imports
Technical
- Added
lastSyncTimestamptoPlannerProjectinterface for sync throttling - Enhanced
TaskSyncwith better logging for debugging sync issues - Modified
addTaskFromObjectto preserve incoming timestamps - Added
getTodayDate()helper function for consistent YYYY-MM-DD formatting - Updated
TaskDetailViewdate input to handle both ISO and YYYY-MM-DD formats - Updated
TaskSyncYAML frontmatter to includecreatedDateandlastModifiedDate
[0.6.4] — 2026-01-20
Added
Card Preview Options
- Card Preview Setting: New per-task setting in Task Details to control board card content
- Hide: Default mode — no extra content on card
- Show Checklist: Display inline checklist with interactive checkboxes directly on card
- Show Description: Display task description with full Markdown rendering on card
- Real-time synchronization between card and Task Details panel
Improved
Board View UI Enhancements (Microsoft Planner Style)
- "Add Task" Button Positioning: Moved to top of bucket columns (matches MS Planner)
- Tags now display at the very top of cards
- Checkbox aligned on same row as task title
- Cards align to top of bucket columns
Fixed
Code Quality & CSS Improvements
- CSS Custom Properties: Added CSS variables for priority colors, status colors, and accent colors
- Removed duplicate padding declarations and replaced 14 hardcoded color values with CSS variables
- Removed 3 unnecessary
!importantdeclarations
Technical
- Enhanced
PlannerTasktype withcardPreviewproperty ("none" | "checklist" | "description") - Added
MarkdownRendererintegration to BoardView for description rendering - Converted multiple BoardView rendering methods to async for Markdown rendering support
[0.6.3] — 2026-01-14
Added
Daily Note Task Tagging
- Automatic Task Import from Daily Notes: Scan any markdown note for tagged tasks and import them into projects
- Tag tasks with
#plannerto add to default project - Tag tasks with
#planner/ProjectNameto add to specific project - Real-time file watching detects new tasks as you create them
- Smart Task Parsing: Automatically extracts priority (
!!!,!!,!), due dates (📅 2026-01-20,due: 2026-01-20,@2026-01-20), tags, and completion status - New Settings Panel: "Daily Note Task Tagging" section with enable toggle, tag pattern, scan folders, default project, and manual scan button
- Content-based unique IDs to prevent duplicates; re-importing updates existing tasks
Technical
- DailyNoteTaskScanner: New utility class (
src/utils/DailyNoteTaskScanner.ts) managing file watching, regex-based task detection, and duplicate prevention - TaskStore Enhancement: New
addTaskToProject()method for adding tasks to specific projects - Four new settings:
enableDailyNoteSync,dailyNoteTagPattern,dailyNoteScanFolders,dailyNoteDefaultProject
Documentation
- daily_notes_tagging.md: Quick start, advanced usage, configuration, troubleshooting, and daily note template
Fixed
- Improved project name matching to support both spaces and hyphens consistently
- Added validation and error messages when default project is not configured
[0.6.2] — 2026-01-13
Added
Bidirectional Markdown Sync
- Full Bidirectional Sync: Complete two-way synchronization between plugin JSON data and vault markdown notes
- Tasks sync to individual markdown files in
{ProjectName}/Tasks/folders - YAML frontmatter contains all task metadata; markdown body includes description, subtasks, and links
- Real-time automatic sync using metadata cache and vault event watchers
- Markdown Content Parsing: Full parsing including descriptions, subtask checkbox lists, and wiki/external links
- Sync Settings:
enableMarkdownSync,autoCreateTaskNotes,syncOnStartup - Manual "Sync All Tasks Now" button in settings
Project Metadata Tracking
- Created/Updated Timestamps: Projects now track creation and last updated dates
- Dashboard shows project metadata with timestamps and task counts
- Clickable project cards navigate to Grid view
UI Improvements
- Filter Label Visibility: Active filters now show clear labels in Grid view header
- Improved dashboard project card layout and metadata display
Fixed
- Symmetric Sync: Markdown-to-plugin sync now captures all content (previously only YAML was synced back)
- Live Sync: Watchers trigger automatically without requiring manual sync button clicks
- Sync Loop Prevention: Set-based tracking prevents infinite sync loops
Technical
- TaskSync Utility: New
src/utils/TaskSync.tsclass managing all sync operations - Primary event listener using
metadataCache.on('changed')for reliable YAML detection - Backup watchers for file create, modify, and delete operations
syncInProgressSet with 200ms timeout to prevent circular updates
Documentation
- MARKDOWN_SYNC.md: Complete guide to bidirectional sync, YAML format, and troubleshooting
- Updated documentation with high-level descriptions of all six views
[0.6.1] — 2026-01-07
Added
- View Tab Opening Behavior: New
openViewsInNewTabsetting — when disabled (default), views replace the active tab; when enabled, each view creates a new tab - Bucket Selection in Task Details: Dropdown selector to assign tasks to buckets from the task details panel
- Bucket Column in Grid View: New hideable "Bucket" column for quick bucket assignment
Fixed
- Workspace Initialization: Fixed plugin initialization error by waiting for workspace layout to be ready
- Tab Reuse Logic: Corrected
openViewsInNewTabsetting behavior
[0.6.0] — 2026-01-07
Added
New Views
- Dashboard View: New dashboard with KPI metrics and project overview (foundation for v0.7.0 KPI expansion)
- Dependency Graph View: Visual representation of task dependencies with interactive graph visualization
- Header Component: Reusable header component for consistent UI across views
Task Management
- Bucket Selection in Task Details: Dropdown selector to assign tasks to buckets
- Bucket Column in Grid View: New hideable column for quick bucket assignment
- Project Hub Manager: New utility for creating and managing project hub notes
Settings & Configuration
- View Tab Opening Behavior: New
openViewsInNewTabsetting
Infrastructure
- GitHub Actions Release Workflow: Automated build and release process. Triggers on version tags, builds plugin, uploads artifacts for BRAT installation
Fixed
- Workspace Initialization: Fixed plugin initialization error by waiting for workspace layout to be ready
- Tab Reuse Logic: Corrected
openViewsInNewTabsetting behavior - Plugin Release Distribution: Added proper GitHub Actions workflow for BRAT compatibility
Changed
- Grid View column system enhanced with new bucket column alongside existing columns
- Task Detail Panel expanded with bucket selection interface
Technical
- Enhanced TypeScript type definitions and interfaces
- Better integration with Obsidian workspace APIs for view management
- Improved build configuration with proper manifest handling
[0.5.0] — Previous Release
See the GitHub repository for previous changelog entries.
Upcoming Roadmap
- v0.7.0: Dashboard KPI expansion and enhancements
- v0.8.0: Core Obsidian plugin integrations
- v0.9.0: UX/UI refinements and plugin settings
- v1.0.0: Official release with stability improvements