- Add comprehensive logging for all MCP tool calls with timestamps,
duration, arguments, results, and session tracking
- Implement McpLogModal component for viewing logs in settings UI
- Add log truncation for large responses (max 500 chars preview)
- Add getServer() method to McpServerManager for log access
- Fix metadata type safety by checking string type before trim()
- Normalize project names to handle arrays and non-string values
- Add fluent-modern.css with comprehensive modern styling
- Implement modern background color system with theme support
- Style sidebar, navigation, content areas for modern interface
- Update fluent-main.css with transition improvements
- Refactor modern.css to remove duplicates
- Add modern interface styles to compiled styles.css
- Support responsive design for mobile devices
[Configure interface style →](obsidian://task-genius/settings?tab=interface§ion=interface-mode)
- Add task-details-container wrapper element
- Separate contentContainerEl from containerEl for better styling control
- Update all CSS selectors to use new .task-details-container class
- Maintain existing functionality while improving structure
- Extract date matching utilities to separate file for better maintainability
- Replace MatchDecorator with custom widget registry system for more precise position tracking
- Implement incremental update mechanism with position mapping to prevent widget repositioning errors
- Improve cursor overlap detection to reduce widget flickering during editing
- Add comprehensive date validation and task line detection using syntax tree
- Remove debug console.log statements
When project metadata is derived from tags like #project/Alpha, the tag
is now removed from the final tags array to prevent duplication. This
only applies when the project comes from tag extraction, not from
frontmatter properties.
Also optimizes import to use type-only import for plugin reference.
Added detailed console logging in FluentActionHandlers to track
kanban status update flow and help diagnose task update issues.
Changes:
- Log when kanban status update is triggered
- Log status change details (from -> to)
- Log handleTaskUpdate completion
- Log when no status change is needed
Updated calendar and kanban components to render the full originalMarkdown
content for file-source tasks instead of just the title. This ensures
file-based tasks display their complete markdown content consistently
across different view types.
Changes:
- CalendarEventComponent: Check source type before rendering
- KanbanCardComponent: Use originalMarkdown for file-source tasks
Implemented frontmatter write operations for file-source tasks, enabling
updates to task metadata via file properties. Supports custom metadata
field mappings and status symbol-to-value conversions.
Features:
- Automatic frontmatter updates for status, priority, and dates
- Custom field mapping support (e.g., "proj" -> "project")
- Status symbol to metadata value conversion
- Handles all standard task metadata fields (dueDate, startDate, etc.)
Removed debounced rendering in TaskListRendererComponent and TaskListItemComponent
to provide more responsive UI updates. Task changes now reflect immediately in
the view instead of waiting for debounce delays.
Changes:
- TaskList.ts: Removed debounceUpdateTasks wrapper, calls renderTaskItem directly
- listItem.ts: Removed debounceUpdateTaskItem, updates display immediately
- Added debug logging for priority field inspection
Add new metadata mappings feature that allows users to map custom
metadata field names to standard task properties. This enables support
for different metadata naming conventions (e.g., mapping "proj" to
"project", "ctx" to "context").
- Add metadata mappings configuration UI with add/remove/toggle controls
- Include field validation to prevent duplicate target mappings
- Add MetadataMappingConfig type definition
- Update default settings and tests to include metadataMappings
- Integrate mapping support throughout FileSource system
- Add handleTaskEditInFile method to FluentActionHandlers
- Improve settings tab organization with better visual structure
- Fix navigation not re-rendering when transitioning from empty to non-empty modes
- Make projects view mode availability dynamic based on project selection
- Ensure filtered tasks are recomputed when navigating between views
- Clean up trailing commas for code consistency
Integrate sorting functionality into FluentDataManager:
- Apply global and view-specific sort criteria to filtered tasks
- Add event listeners for view config and settings changes to trigger resort
- Ensure sorting updates occur on configuration modifications
Also update task dependency badge styling to use neutral colors instead of error colors for better visual clarity.
Fix three critical issues in FluentTaskView filtering system:
1. Filter button state loading: Remove incorrect onLayoutReady wrapper
that only fired once during initial layout. Now uses direct setTimeout
to load filter state every time popover is opened.
2. Flickering during filtering: Add 150ms debounced handleFilterChanged
method to prevent rapid re-renders. Previously filter changes triggered
2-3 consecutive updates, now consolidated to single update.
3. Projects view filtering: Fix dual-mode filtering where project list
should show all projects (left sidebar) while task list respects
global filter (right panel). Modified ProjectsComponent.setTasks to
accept both tasks and filteredTasks parameters.
Affected files:
- FluentLayoutManager.ts: Fix popover state loading timing
- FluentTaskView.ts: Add debounced filter handler
- FluentComponentManager.ts: Pass both parameters to Projects view
- projects.ts: Support external filtered tasks
Replace unreliable taskStore access with standardized getCachedData() to properly fetch available projects from dataflow API, settings, and path mappings. Also improve ConfirmModal UX by adjusting button order (Cancel left, Confirm right) and removing CTA style from cancel button.
Only auto-collapse sidebar when width ≤ 600px to prevent
unwanted automatic expansion. Also update view icon to use
task-genius icon instead of layout-dashboard.
Replace console.log with Notice API when no filter categories are
available, providing better user feedback. Remove unused
showTagSelectorAtCursor method from quick capture modal and apply
code formatting improvements across filter and quick-capture
components.
Replace direct localStorage calls with app.saveLocalStorage() and
app.loadLocalStorage() across components for better integration with
Obsidian's data management system. This affects workspace state
management, timer storage, project view preferences, and tree component
state persistence.
Also enhanced fluent navigation to include scheduledDate in overdue
detection and added ability to navigate directly to task files when
clicking overdue notifications.