Commit graph

1345 commits

Author SHA1 Message Date
Quorafind
694898644c chore(deps): update calendar submodule to v0.15.0 2025-11-29 21:11:01 +08:00
Quorafind
428d3af3fc style(calendar): improve theming and add allday section styles 2025-11-29 21:10:32 +08:00
Quorafind
47a6565155 refactor(api): use formatDateSmart for frontmatter date fields 2025-11-29 21:10:04 +08:00
Quorafind
359ea6dc15 feat(quick-capture): add datetime-local support for task dates 2025-11-29 21:09:07 +08:00
Quorafind
e89e3e59db fix(calendar): preserve allDay property and fix context menu task lookup 2025-11-29 21:08:39 +08:00
Quorafind
e8c1dd1ec4 feat(calendar): add custom calendar views with configurable options 2025-11-29 16:17:01 +08:00
Quorafind
6987fdd2ba refactor(calendar): update calendar component integration and styles
- Add TaskCalendarAdapter for task-to-calendar event conversion
- Update calendar component with improved view container styling
- Refresh calendar styles from @taskgenius/calendar package
2025-11-26 10:31:15 +08:00
Quorafind
5b6e488be9 style: apply code formatting and trailing comma fixes
- Standardize trailing comma style across codebase
- Fix quote style in smart-beta-release.mjs
- Apply consistent formatting to editor extensions
2025-11-26 10:30:44 +08:00
Quorafind
568dcbefa6 feat(date): add time component support for task dates
- Extend regex patterns to support HH:mm time format in date fields
- Add date-utils with isDateOnly() and formatDateSmart() helpers
- Enhance time-parsing-service to normalize parsed dates with time
- Update WriteAPI and executors to handle date-time patterns
2025-11-26 10:30:06 +08:00
Quorafind
42b466a826 ci: add GitHub workflows for CI and release
- Add ci.yml for build and test on push/PR
- Add release.yml for automated release process
2025-11-26 10:29:22 +08:00
Quorafind
06f0e89638 chore: setup pnpm workspace monorepo structure
- Add pnpm-workspace.yaml for monorepo configuration
- Move esbuild-plugin-inline-worker to workspace package
- Update package.json to use workspace:* references
- Add workspace-related entries to .gitignore
2025-11-26 10:28:57 +08:00
Quorafind
8ffd5cee0e fix(calendar): integrate @taskgenius/calendar and fix date handling
- 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
2025-11-25 10:42:26 +08:00
Quorafind
cee8349ba9 chore(release): bump version to 9.11.0 2025-11-20 01:02:01 +08:00
Quorafind
689419538b feat(status): extend multi-cycle support to all task switching contexts
- 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
2025-11-19 12:48:30 +08:00
Quorafind
c82155815e feat(kanban): prevent dragging tasks into Other column
- 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
2025-11-18 22:26:50 +08:00
Quorafind
36d834091a feat(kanban): add cycle selector and Other column for unmatched tasks
- 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
2025-11-18 22:11:13 +08:00
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