- Refactor calendar component to use @taskgenius/calendar for month/week/day views
- Add working hours configuration (showWorkingHoursOnly, workingHoursStart/End)
- Fix drag-and-drop date handling for all-day and timed events
- Add handleTGEventResize for event resizing support
- Improve event callback signatures to match library API
- Add NormalizedDateFnsAdapter for date-fns v4 compatibility
- Add multi-cycle status support in ReadModeTextMark with getNextStatusPrimary
- Integrate getAllMarks in status-cycler for multi-cycle mark validation
- Update status-switcher to use multi-cycle configuration with fallback
- Maintain backward compatibility with legacy single-cycle mode
- Ensure consistent status cycling behavior across reading and editing views
- Add public getElement() method to KanbanColumnComponent
- Mark Other column with data attribute to identify it
- Configure Sortable to disallow dropping tasks into Other column (put: false)
- Refactor to use Obsidian's createEl API (ProjectPopover, PlacementStep)
- Improve object literal formatting consistency
- Add cycle selector button in kanban controls to filter by specific status cycle
- Display 'Other' column for tasks not in selected cycle
- Prevent status updates when dragging to Other column (returns null)
- Save cycle selection to localStorage per view
- Add getUnmatchedTasks() to collect tasks outside current cycle
- Update getTasksForStatus() to respect cycle selection
- Add getStatusMarkForColumn() to handle Other column drag prevention
- Add translations for cycle selector UI (en, zh-cn)
- Update kanban styles for cycle selector button
- Update Fluent UI components and styles
- Update status switcher and task grouping logic
- Update read mode text mark handling
- Introduce StatusCycle interface for defining multiple independent task status cycles
- Add priority-based cycle selection (lower number = higher priority)
- Implement status-cycle-resolver utilities for finding applicable cycles and next states
- Add settings migration from legacy single-cycle to multi-cycle format
- Update task cycling commands to support multi-cycle with fallback to legacy mode
- Enhance status switching UI in FluentActionHandlers with cycle-aware menu
- Maintain backward compatibility with existing taskStatusCycle settings
- Add validation and repair utilities for status cycle configurations
- Deprecate taskStatusCycle, taskStatusMarks, and excludeMarksFromCycle settings
The new multi-cycle system allows users to define multiple status workflows
with different priorities, enabling context-specific task state management
while preserving compatibility with existing single-cycle configurations.
Fixed status modification failure caused by incorrect editor plugin
registration sequence. Transaction filters execute in reverse order,
so cycleCompleteStatus must be registered last to execute first,
followed by autoDateManager.
Also improved position mapping in date-manager using tr.changes.mapPos
instead of inverse.mapPos for correct change composition.
- Add ErrorContext type for structured error information with view ID,
component name, operation, and file path details
- Enhance FluentComponentManager error rendering with collapsible
technical details and context display
- Add status mark to display name mapping with comprehensive defaults
and user configuration support
- Improve FileSource status mapping with textual-to-symbol conversion
- Clean up code formatting and trailing commas in ConfigurableTaskParser
Replace tag accumulation logic with replacement to avoid duplicates during
incremental parsing. Previously, typing #tags/test would create intermediate
tags (#tags, #tags/, etc.) that accumulated in the metadata.
Replace manual style.display manipulation with Obsidian's built-in
element visibility methods (.show(), .hide(), .toggle()) and improve
code formatting consistency across components. Changes include:
- Use .hide()/.show() instead of style.display = "none"/""
- Use .toggle() for visibility toggling
- Use .toggleVisibility() for visibility property
- Improve code formatting and indentation
- Clean up trailing commas and spacing
Affected components: KanbanColumn, FilterDropdown, TableHeader,
TableView, ReadModeTextMark, DragManager, BulkDateOffsetModal,
McpLogModal
Extend FluentTopNavigation to support dynamic custom buttons that can
be registered by views or components. Features include:
- CustomNavButton interface for button configuration
- Custom buttons container in navigation bar
- Register/unregister methods for button management
- Integration with FluentComponentManager
- Styling for custom button container
Add comprehensive task grouping functionality with support for multiple
grouping dimensions including file path, due date, priority, project,
tags, and status. Features include:
- New grouping utility functions with nested group support
- Storage layer for persisting group configuration and state
- UI components for group selection and display
- Collapsible group sections with expand/collapse state
- Visual styling with priority/due date indicators
- Integration with task view content component
- 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