- Update to use native requireApiVersion from Obsidian API
- Handle new Bases data format with direct entry arrays
- Implement intelligent content update routing based on user preferences
- Support multiple content sources (title, filename, H1, custom field)
- Add dual property updates for date fields compatibility
- Improve entry-to-task conversion with better data extraction
- Add comprehensive logging for debugging Bases interactions
- Fix CSS vendor prefixes for better browser compatibility
Major refactoring to centralize Canvas parsing functionality and improve
timeline features:
- Consolidate Canvas parsing logic into CanvasParser class
- Remove separate CanvasEntry module (functionality moved to CanvasParser)
- Add static helper methods for Canvas JSON parsing and node operations
- Enhance timeline sidebar with duration badges for time ranges
- Fix timezone handling using local time instead of UTC for consistency
- Update Canvas task updater to use centralized parser
- Clean up settings UI removing obsolete indexing options
- Add comprehensive parser refactoring documentation
This improves code organization, reduces duplication, and enhances the
timeline view with better time range visualization including duration badges.
- Remove temporary debug files (debug-actual-parsing.js, debug-task-parsing.js, debug-time-parsing.js)
- Move time parsing type definitions from task.d.ts to dedicated time-parsing.ts
- Update all tests and services to import from new type location
- Simplify BaseTask interface by extracting time-related properties
- Minor CSS adjustments for timeline sidebar and main styles
- Implement comprehensive time component extraction and parsing
- Add date inheritance system for parent-child task relationships
- Enhance timeline sidebar with interactive features and visual improvements
- Add DateInheritanceService for managing task date hierarchies
- Implement TaskMigrationService for data structure updates
- Add TaskMetadataUtils for enhanced metadata handling
- Include extensive test coverage for all new features
- Add debug utilities for parsing validation
- Update settings UI with new time parsing configuration options
- Improve ConfigurableTaskParser with time-aware parsing capabilities
- Fix all TypeScript type errors and ensure proper type definitions
BREAKING CHANGE: Task metadata structure enhanced with timeComponents and enhancedDates fields
- Implement TimeComponent extraction for precise time handling
- Add support for time ranges (12:00-13:00) with midnight crossing detection
- Support both 12-hour and 24-hour time formats with automatic conversion
- Extract and categorize time components (start, due, scheduled) based on context
- Add comprehensive tests for enhanced time parsing functionality
- Create dedicated time-parsing types for better type safety
Additional improvements:
- Enhance FileSource with improved task handling and notification support
- Update Repository with better error handling and cache management
- Add IframeModal component for embedded content display
- Refine dataflow architecture documentation and production readiness guide
- Update settings UI with improved search and configuration options
- Replace static text inputs with dynamic list components for metadata fields, tags, and paths
- Add individual add/edit/delete controls for each configuration item
- Rename "FileSource" to user-friendly "File Task" throughout UI
- Consolidate duplicate configuration sections in IndexSettingsTab
- Move dynamic component styles to setting-v2.css to prevent override
- Fix TypeScript error in ics-manager.ts (optional plugin parameter)
- Improve user experience with auto-focus on new inputs and instant save
The configuration now matches the pattern used for custom date formats,
providing a more intuitive and flexible interface for managing File Task
recognition strategies.
- Fix missing onTaskUpdate callback propagation in task tree items
- Restructure DataflowOrchestrator for better initialization and event handling
- Improve ObsidianSource event processing and workspace integration
- Add comprehensive TaskManager to Dataflow migration documentation
- Add cursor priority utility functions for editor extensions
- Enhance ConfigurableTaskParser with better error handling
- Update plugin initialization sequence for better stability
- Minor CSS adjustment for visual consistency
This refactoring improves the overall stability and performance of the
dataflow architecture while maintaining backward compatibility.
Add comprehensive FileSource feature that enables files to serve as tasks
based on metadata properties, tags, templates, and path patterns. This
creates a unified task management experience where files can represent
both projects and actionable items.
Key features:
- Multiple recognition strategies (metadata, tags, templates, paths)
- Flexible task property extraction from file metadata
- Dual project-task file capabilities
- Settings UI with live preview and validation
- Integration with existing dataflow architecture
- Configurable task content sources (filename, title, custom fields)
- Support for custom status characters and priority levels
The implementation follows established patterns from ObsidianSource and
IcsSource, ensuring consistency with the existing codebase architecture.
- Replace complex regex-based date parsing with date-fns library
- Add support for configurable custom date formats in settings
- Implement safe error handling to prevent parsing failures from throwing
- Support additional formats including timestamps (yyyyMMddHHmmss)
- Maintain backward compatibility with existing date parsing behavior
- Add UI for managing custom date formats in View Settings tab
The migration to date-fns simplifies the codebase by removing manual regex
patterns while providing more robust and standardized date parsing. Custom
formats can now be configured per-vault through the settings interface.
Implements Model Context Protocol (MCP) server to enable external AI tools
(Claude Desktop, Cursor, etc.) to interact with Task Genius tasks. The
server provides a standards-compliant HTTP transport with comprehensive
task management capabilities.
Key features:
- HTTP server with session management and authentication
- Full MCP 2025-06-18 protocol compliance with proper headers
- Origin validation for DNS rebinding protection
- Bearer token authentication with app ID validation
- Comprehensive task operations (CRUD, batch updates, queries)
- Settings UI with client configuration examples
- Support for both local and external network access
The implementation includes 20+ MCP tools for task operations including
create, update, delete, query, batch operations, and metadata management.
All tools are exposed through a secure HTTP endpoint with proper CORS
and authentication mechanisms.
Breaking changes: None - MCP integration is opt-in and disabled by default
- Port QuickCaptureSuggest from MinimalQuickCaptureSuggest for consistency
- Add inline metadata editing with triggers (~, !, #, *, @) in editor panel
- Enhance editor quick capture with action buttons for date, priority, and tags
- Support auto-adding task prefix with configurable format
- Enable direct target file editing and location suggestions
- Add keyboard shortcuts (Alt+D, Alt+P, Alt+T) for quick actions
- Add DOM-based settings indexing for dynamic content discovery
- Support both static metadata and runtime DOM collection
- Add data attributes for improved search categorization
- Adjust highlight colors for better visibility
- Improve search accuracy with automatic ID generation
- Fixed task status icons not displaying for planned/in-progress states
- Removed hardcoded padding and font sizing in project views
- Standardized padding to 8px in project tree items
- Corrected CSS generation logic to show icons without requiring :checked pseudo-class for non-completed states
This ensures that task status icons are always visible for all task states, not just completed ones.
Implement comprehensive tree view system for project organization with support for nested project paths (e.g., Project/SubProject). The new tree view allows users to visualize and navigate project hierarchies more intuitively.
Key features:
- Generic TreeComponent and TreeItemRenderer for reusable tree rendering
- Project-specific TreeComponent with task count display
- Support for nested project paths with configurable separator
- Tree/list view toggle in project sidebar
- Inclusive filtering (selecting parent includes all child tasks)
- State persistence to localStorage
- CSS variable-based indentation for user customization
- Expand/collapse functionality with animation
- Multi-select mode support
- ARIA attributes for accessibility
Components added:
- TreeComponent: Generic tree rendering component
- TreeItemRenderer: Individual tree node renderer
- ProjectTreeComponent: Project-specific tree implementation
- projectTreeBuilder: Tree construction utilities
- projectFilter: Hierarchical filtering logic
The tree view uses CSS variables (--tree-indent-size, --tree-level) for flexible indentation control, allowing users to customize the appearance through CSS overrides.
Refactored SettingsSearchComponent to extend Obsidian's Component class for improved lifecycle management.
This change provides automatic event cleanup and better performance when frequently toggling settings.
Changes:
- Inherit from Component class for automatic lifecycle management
- Use registerDomEvent() for all event listeners to ensure proper cleanup
- Add onunload() method to handle component destruction
- Store clearButton reference to avoid repeated DOM queries
- Improve timeout management with proper cleanup
Benefits:
- Automatic event listener cleanup when component is destroyed
- Better performance when repeatedly opening/closing settings
- Reduced memory leak risk from unregistered event listeners
- Cleaner code with standardized event management pattern
Replace global variable configuration with CodeMirror 6's recommended Facet pattern
for passing configuration to StateField. This provides better type safety,
reactive updates, and follows CodeMirror architecture best practices.
Changes:
- Replace globalTimerConfig with taskTimerConfigFacet
- Update all config access to use state.facet() pattern
- Return array of [facet, statefield] from extension function
- Maintain compatibility with existing functionality
- Fix timer not starting after block ID insertion
- Improve parent task detection to find all subtasks, not just immediate next line
- Add proper state updates to refresh widget after block ID creation
- Fix TypeScript errors with generateBlockId visibility and elapsed property
- Ensure timer controls update correctly after inserting block reference
Implement comprehensive settings search feature with:
- Real-time fuzzy search using Obsidian's prepareFuzzySearch API
- Intelligent navigation to specific settings with scroll and highlight
- High-performance indexing of 100+ settings with lazy loading
- Keyboard navigation support (arrow keys, enter, escape)
- Minimal design following Obsidian UI principles
- Multi-language search support with translation integration
Components added:
- SettingsSearchComponent: Main search interface with dropdown results
- SettingsIndexer: High-performance search indexing with <5ms build time
- Static metadata for all settings with keywords and categories
- CSS styling for search interface with responsive design
The search appears at the top of settings page and allows users to
quickly find and jump to any setting across all tabs and categories.
- Bump version from 9.1.4 to 9.1.5 in manifest.json and versions.json
- Update package.json version
- Fix onboarding CSS selector specificity issues
- Improve code formatting in ConfigPreview component
- Adjust checkbox icon sizing in TaskGeniusIconManager
- Replace OnboardingModal with OnboardingView (ItemView-based)
- Add SettingsChangeDetector service for intelligent onboarding triggers
- Implement settings check step with user confirmation
- Enhance configuration safety with smart view merging
- Update CSS to support both modal and leaf view layouts
- Add "Open Task Genius Setup" command for manual access
- Preserve all existing onboarding functionality
- Improve UX by preventing unnecessary interruptions for configured users
BREAKING CHANGE: Onboarding now opens as a leaf view instead of modal