Indexer
Task Genius uses the modern Dataflow Architecture to efficiently index and manage tasks from multiple sources. This event-driven system provides real-time updates, smart caching, and exceptional performance.
Quick Configuration
If the link doesn't work: Obsidian → Settings → Community Plugins → Task Genius
How it Works
The Dataflow architecture orchestrates multiple components for optimal performance:
Core Components
- Orchestrator: Central coordinator managing all data sources and events
- Data Sources:
- ObsidianSource: Monitors file changes in your vault
- IcsSource: Integrates external calendar events
- FileSource: Recognizes entire files as tasks
- Repository: Maintains the task index and handles queries
- Storage: Multi-tier caching system for instant startup
- Workers: Background processing for large operations
Processing Flow
- File Monitoring: ObsidianSource watches for changes (create, modify, delete)
- Smart Caching: Repository checks cache validity using content hashing
- Parallel Processing:
- WorkerOrchestrator distributes parsing to Web Workers
- Multiple files processed simultaneously
- Automatic fallback to main thread if needed
- Event Broadcasting: Changes trigger
task-genius:task-cache-updated
events - View Synchronization: All views update automatically via event subscription
Performance Features
- Snapshot Loading: ~100ms startup for 1000+ tasks
- Incremental Updates: Only changed files reprocessed
- Content Hashing: Detect actual changes vs. metadata updates
- Loop Prevention: Sequence-based event tracking prevents infinite updates
Data Sources
The system integrates multiple data sources seamlessly:
- File Tasks: Regular tasks from Markdown and Canvas files
- ICS Events: External calendar events displayed as tasks
- File-level Tasks: Entire files treated as tasks based on metadata
Troubleshooting
If the index seems outdated:
- Run
Task Genius: Force reindex all tasks
to rebuild completely - Use
Task Genius: Refresh task index
for a quick refresh - Check console for any error messages
Managing the Indexer
Disabling
Disable indexing in Settings → Task Genius → Index → "Enable Indexing"
Performance Tuning
- Worker Count: Adjust based on vault size (Settings → Index)
- Cache Duration: Configure persistence time
- Batch Size: Control processing chunks
Configuration
Customize indexing behavior to match your workflow:
Metadata Format
Choose how to parse task metadata:
- Tasks: Emoji format (
🛫 2025-01-01
,⏫
,🔁 every week
) - Dataview: Inline fields (
[due:: 2025-01-01]
,[priority:: high]
)
The system automatically falls back to the other format when needed.
Daily Notes Integration
Automatically assign dates to tasks in daily notes:
- Enable: Extract dates from daily note file paths
- Path: Daily notes folder (e.g.,
dailies
,journal/daily
) - Format: Date pattern in filenames (
yyyy-MM-dd
,dd-MM-yyyy
) - Assign As: Target field for extracted date (
due
,start
,scheduled
)
Heading Filters
Control which tasks are indexed based on their headings:
- Ignore Under: Exclude tasks under specific headings (
## Archive
,## Done
) - Focus On: Only index tasks under specified headings (
## Project
,## Inbox
)
Enter headings separated by commas. Focus takes priority over ignore.