Commit graph

1329 commits

Author SHA1 Message Date
Quorafind
bf36bf2ff8 fix: add async/await to habit operations and mark parameter to status config 2025-11-18 16:36:27 +08:00
Quorafind
7244d9188d feat(status): add multi-cycle status support with priority-based selection
- 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.
2025-11-18 14:56:57 +08:00
Quorafind
e7d85b027d chore(release): bump version to 9.10.3 2025-11-18 07:24:40 +08:00
Quorafind
0da19786b3 fix(editor): correct transaction filter execution order for status cycling
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.
2025-11-17 15:16:00 +08:00
Quorafind
ab9aff5d98 chore(release): bump version to 9.10.2 2025-11-14 14:21:38 +08:00
Quorafind
37606e0bcf refactor: improve error handling and status mark display
- 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
2025-11-14 14:09:43 +08:00
Quorafind
4a075ae35d chore(release): bump version to 9.10.1 2025-11-13 17:43:04 +08:00
Quorafind
88787d5382 fix(quick-capture): prevent duplicate tags when typing multi-level tags
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.
2025-11-13 17:14:24 +08:00
Quorafind
bb2e15550f chore(release): bump version to 9.10.0 2025-11-13 11:52:45 +08:00
Quorafind
2b7301b4d0 style: update group-by style issue 2025-11-13 11:49:05 +08:00
Quorafind
0878bf1fc3 refactor: improve code quality and use Obsidian API methods
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
2025-11-13 11:38:49 +08:00
Quorafind
2177d9ad31 feat(fluent): add custom button support to top navigation
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
2025-11-13 11:38:22 +08:00
Quorafind
bcd3f2bf95 feat(grouping): add task grouping system with multiple dimensions
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
2025-11-13 11:37:50 +08:00
Quorafind
84ad84e7ee chore(release): bump version to 9.9.9 2025-11-12 22:39:02 +08:00
Quorafind
586e8613db feat(mcp): add server logging system with modal viewer
- 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
2025-11-12 20:53:08 +08:00
Quorafind
1464780e2d chore(release): bump version to 9.9.8 2025-11-11 23:07:40 +08:00
Quorafind
79aae98e83 refactor(mcp): optimize server initialization and fix UTF-8 encoding
**MCP Server Improvements:**
- Implement async initialization pattern to avoid blocking constructor
- Reuse plugin's dataflowOrchestrator and writeAPI instances for better performance
- Add proper bridge readiness checks before serving requests
- Implement all previously unimplemented tool methods (update_task, create_task, etc.)
- Improve error handling throughout tool execution

**UTF-8 Encoding Fix:**
- Fix Chinese character corruption in MCP task creation
- Set proper UTF-8 encoding on HTTP request stream using req.setEncoding("utf8")
- Prevents multi-byte character splitting across TCP chunks

**Performance Benefits:**
- Avoid duplicate QueryAPI/WriteAPI initialization
- Share cache between plugin and MCP server
- Reduce memory footprint through instance reuse

[Test configuration →](obsidian://task-genius/settings?tab=mcp-integration)
2025-11-11 23:05:42 +08:00
Quorafind
447f637ec8 style(fluent): implement modern interface styles
- 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&section=interface-mode)
2025-11-11 21:59:26 +08:00
Quorafind
32bb832fed refactor(details): restructure task details DOM hierarchy
- 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
2025-11-11 20:35:04 +08:00
Quorafind
f74966edf3 feat(fluent): add modern/classic interface style option
- Add interfaceStyle setting to FluentViewSettings
- Add interface style dropdown in settings UI
- Implement getInterfaceStyle() method in FluentTaskView
- Apply fluent-modern or fluent-classic class to leaf container
- Import fluent-modern.css styles
2025-11-11 20:34:32 +08:00
Quorafind
0da1f199e1 fix(quick-capture): prevent double-adding # to tags
- Check if tag already starts with # before adding it
- Prevents tags like ##tag when tag already has the prefix
2025-11-11 19:35:28 +08:00
Quorafind
bd2a438471 style(fluent): format code and fix linting issues
- Add trailing commas for consistency
- Fix string formatting in console.log statements
- Improve code readability with consistent formatting
2025-11-11 19:35:09 +08:00
Quorafind
674548799c refactor(fluent): extract overdue task checking logic
- Extract isCompletedMark utility function for reusability
- Create isOverdueTask private method to centralize overdue logic
- Reduce code duplication in updateNotificationCount and showOverdueTasksMenu
- Improve abandoned task detection using isCompletedMark
2025-11-11 19:34:48 +08:00
Quorafind
617d9320f9 chore(release): bump version to 9.9.7 2025-11-09 23:06:42 +08:00
Quorafind
021dc1dd4a style(ui): refine colors and improve visual consistency
- Enhance sidebar sections with semantic class names
- Adjust kanban card backgrounds for better contrast
- Lighten task item borders (base-10 → base-20)
- Strengthen forecast section title font weight
- Clean up code formatting (trailing commas)
2025-11-09 22:33:46 +08:00
Quorafind
54e55f4ba1 style(ui): refactor CSS imports and modernize task item styling
- Centralize CSS imports in content.ts component
- Add modern.css with updated task item design
- Remove task item borders for cleaner appearance
- Clean up code formatting (trailing commas)
- Update README description text
2025-11-09 22:21:48 +08:00
Quorafind
2408e8f4b0 chore: update readme issue 2025-11-07 16:05:46 +08:00
Quorafind
b5665bf048 chore(release): bump version to 9.9.6 2025-11-06 23:00:54 +08:00
Quorafind
2d959e94d7 style: update bumped styles 2025-11-06 22:57:26 +08:00
Quorafind
82df80c52f style: update task indicator style 2025-11-06 22:56:03 +08:00
Quorafind
baa280ea18 perf: improve onboarding performance when open view with Obsidian onloading 2025-11-06 22:55:27 +08:00
Quorafind
c5677e6ba7 fix: calculate recurrence date shoudld work with due date rather than only with current date 2025-11-06 22:54:00 +08:00
Quorafind
d36026c4c4 feat: support indicator for better status handling 2025-11-06 21:58:30 +08:00
Quorafind
b1c0b8d72e chore(release): bump version to 9.9.5 2025-11-03 22:38:50 +08:00
Quorafind
befbd6d82b refactor(editor): improve date picker stability and architecture
- 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
2025-11-03 22:34:14 +08:00
Quorafind
7a324469d2 repo: update cla.json 2025-11-02 11:03:46 +08:00
Boninall
83b9168827
Merge pull request #497 from soar/patch-1
fix: Add key mapping for 'repeat' to 'recurrence'
2025-11-02 10:55:12 +08:00
Quorafind
7d24610212 chore: remove unused .cursor folder 2025-11-02 10:49:17 +08:00
Aleksey @soar Smyrnov
0da3bc1464
feat: Add key mapping for 'repeat' to 'recurrence' 2025-10-31 09:34:04 -07:00
Quorafind
516dc422f9 chore(release): bump version to 9.9.4 2025-10-30 15:31:32 +08:00
Quorafind
4f0dc243ed fix(file-source): remove project tag when deriving project from tags
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.
2025-10-30 15:26:38 +08:00
Quorafind
66e1f6ad88 fix: project tag is not recognized when index file tasks 2025-10-30 14:14:54 +08:00
Quorafind
4d04384b6e fix: tag input event issue 2025-10-30 14:08:02 +08:00
Quorafind
bc3a1d31d4 style: format code with prettier
Applied consistent code formatting across multiple components including
trailing commas, quote style normalization, and proper indentation.
No functional changes.

Files updated:
- FluentComponentManager: Consistent trailing commas
- KanbanComponent: Code formatting improvements
- MarkdownRenderer: Quote and comma consistency
- StatusCycler: Formatting cleanup
- FluentTaskView: Trailing comma fixes
- Calendar/Task components: Minor formatting
- CSS files: Formatting improvements
2025-10-29 15:54:22 +08:00
Quorafind
77f58747fd chore(debug): add logging for kanban status updates
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
2025-10-29 15:53:48 +08:00
Quorafind
20838fdb54 feat(rendering): use originalMarkdown for file-source tasks
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
2025-10-29 15:53:23 +08:00
Quorafind
d1132e1382 feat(file-source): add frontmatter update support in WriteAPI
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.)
2025-10-29 15:49:46 +08:00
Quorafind
dc74b9c9ae refactor(task-view): remove debouncing from task list rendering
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
2025-10-29 15:16:46 +08:00
Quorafind
f7456af12d feat(file-source): add metadata field mapping configuration
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
2025-10-28 12:46:12 +08:00
Quorafind
35e86c37a5 chore(release): bump version to 9.9.3 2025-10-26 17:27:13 +08:00