Commit graph

350 commits

Author SHA1 Message Date
Quorafind
b709c90f6f feat(workspace): add custom icon selection for workspaces
- Add icon property to WorkspaceData type for custom workspace icons
- Extract workspace modals to separate module for better organization
- Implement icon selector in create/rename workspace dialogs
- Update workspace selector to display custom icons
- Add dedicated styles for workspace icon UI components
- Support icon inheritance when cloning workspaces
- Enhance workspace settings tab with icon display

This allows users to visually distinguish workspaces beyond names,
improving workspace identification and navigation experience.
2025-09-24 18:48:11 +08:00
Quorafind
5c3d19e95c chore(sytles): ignore styles css 2025-09-24 15:31:09 +08:00
Quorafind
ec09f34771 fix(ui): correct translation interpolation and button alignment
- Fix date interpolation in workspace settings translation
- Add tooltip for disabled delete button on default workspace
- Align v2 nav button items properly with center alignment
2025-09-24 14:03:59 +08:00
Quorafind
7721ac191c feat(fluent): add mobile drawer navigation and responsive design
- Implement mobile drawer with overlay and swipe gestures
- Add touch gesture support for drawer open/close
- Refactor sidebar rail mode for better collapsed state
- Add responsive breakpoints for mobile devices
- Optimize search and navigation UI for small screens
- Add mobile-specific CSS classes and styling
- Improve task details panel layout on mobile
2025-09-24 08:42:03 +08:00
Quorafind
e08aa647af perf(fluent): optimize view initialization and reduce unnecessary renders
- Add initialization flag to prevent multiple renders during startup
- Implement scheduled update system to batch multiple update requests
- Only hide currently visible component instead of all components
- Apply filters once during initialization instead of multiple times
- Defer initial data load in ReviewComponent to avoid duplicate calls
- Add requestAnimationFrame for smoother scheduled updates
- Track visible component separately from active component
- Reduce redundant switchView calls with smarter update logic

This significantly improves startup performance and eliminates render flashing
2025-09-23 17:48:05 +08:00
Quorafind
f3bee5e16d feat(projects): add tree view support and improve view mode system
- Add hierarchical tree view for projects with expand/collapse functionality
- Implement per-view mode configuration (list, tree, kanban, calendar)
- Add tree/list toggle button to sidebar project header
- Remove FluentFilterPanel component (consolidated elsewhere)
- Store tree expansion state and view preference in local storage
- Enhance ProjectList with tree node structure and level-based rendering
- Update styles for tree view indentation and expand indicators
- Configure available view modes per view type
- Improve FileSourceSettings with better organization

BREAKING CHANGE: FluentFilterPanel component removed - filter functionality moved to view header
2025-09-23 09:58:39 +08:00
Quorafind
9f008db1a0 feat(fluent): add project creation UI with sorting capabilities
- Add CustomProject interface for project persistence
- Implement ProjectPopover (desktop) and ProjectModal (mobile) for project creation
- Add color picker with 15 predefined colors for visual organization
- Replace add button with sort menu in sidebar
- Implement 6 sort options (name, tasks, created date) with localStorage persistence
- Use Intl.Collator for locale-sensitive string comparison
- Extend Obsidian Component class for proper lifecycle management
- Add comprehensive CSS styling for popover and modal interfaces
2025-09-22 11:55:06 +08:00
Quorafind
86f8d1719e feat(fluent): add collapsible sidebar and full task context menu
- Implement collapsible sidebar with rail mode for narrow layouts
- Add responsive auto-collapse on resize (<768px width)
- Add sidebar toggle button in view header
- Integrate TaskDetailsComponent for full task detail editing
- Implement comprehensive context menu with status switching
- Add task deletion with subtask handling
- Add edit in file functionality
- Refresh navigation badges when tasks update
- Improve clickable icon styling for view tabs
- Optimize task filtering to use pre-computed filtered tasks
- Add computeOtherItems method to dynamically generate other view items
2025-09-21 21:59:34 +08:00
Quorafind
6b779f84a5 feat(experimental): add Fluent interface foundation with settings infrastructure
- Add ExperimentalSettings interface with Fluent configuration options
- Implement FluentIntegration class for managing experimental features
- Add Fluent toggle and ribbon icon settings in Beta Test settings tab
- Create experimental folder structure for Fluent components
- Add settings migration for experimental features
- Register Fluent integration on plugin load
2025-09-20 22:06:59 +08:00
Quorafind
58a22af4e6 style(icons): enhance checkbox hover effects
- Add darker color on hover using brightness filter (75%)
- Remove background color on hover with media query
- Add smooth transition animation for hover state
- Fix TypeScript variable initialization in HabitChartModal
2025-09-19 10:49:33 +08:00
Quorafind
ab5b945ae2 feat(dataflow): enhance project configuration and metadata handling
- Add project configuration support to Augmentor and WorkerOrchestrator
- Implement enhanced metadata inheritance with project configs
- Add TgProject support for config-based project definitions
- Improve project metadata resolution and caching
- Add CSS styles for project info popover display
- Refactor ConfigurableTaskParser for better project handling
2025-09-15 17:27:32 +08:00
Quorafind
895444ce32 fix(file-filter): correct folder rule matching for nested paths
- Fix path matching logic in PathTrie to check all possible starting positions
- Add proper cache key scoping to prevent cross-scope cache pollution
- Apply inline file filter early in worker processing path
- Improve code formatting consistency across files
2025-09-11 16:17:28 +08:00
Quorafind
6c51119b36 fix(metadata): add reindexing prompts for inheritance settings and improve augmentor sync
- Add confirmation dialogs when file metadata inheritance settings change
- Sync inheritance settings to Augmentor on initialization and updates
- Fix formatting consistency across multiple modules
- Ensure immediate task index rebuild when inheritance behavior changes
2025-09-08 22:48:37 +08:00
Quorafind
b0f89126ad style(habit): add container for habit create button
Add flexbox container styling for the habit create button to ensure proper
alignment in the habit view interface.
2025-09-06 12:01:09 +08:00
Quorafind
937d7b7723 refactor(dataflow): improve file filtering and task indexing performance
- Add lightweight bookkeeping for filter-based task pruning/restoration
- Implement debounced restore handler for better performance
- Early initialization of FileFilterManager for proper inline filtering
- Add comprehensive logging for debugging filter operations
- Improve storage formatting and code consistency
- Optimize Repository indexer with better filter integration
- Clean up unused imports and redundant code
2025-09-05 21:44:21 +08:00
Quorafind
e26e6d54c6 perf: optimize view settings updates to avoid full refresh
- Add clickable-icon class to action buttons for better UX
- Replace full view refresh with targeted sidebar updates
- Implement granular view-config-changed event handling
- Preserve current view content when toggling visibility
- Only refresh view content when necessary (e.g., view type changes)
- Improve performance by avoiding unnecessary task re-filtering
2025-09-04 12:59:45 +08:00
Quorafind
cc9d1d5320 refactor: use Obsidian's setIcon instead of manual SVG creation
- Replaced custom createSpinnerSVG method with Obsidian's setIcon('loader-2')
- Updated CSS animations to work with Obsidian's icon
- Fixed import to use existing quadrant.css instead of creating duplicate file
- Added missing CSS classes for load-more indicator visibility

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-04 11:37:17 +08:00
Quorafind
48b3b8ecf9 refactor: remove inline styles and innerHTML from quadrant-column component
- Created dedicated quadrant-column.css with all styles
- Replaced innerHTML with proper DOM manipulation for SVG creation
- Removed inline style.display usage in favor of CSS classes
- Cleaned up unused variables (descriptionEl, showLoadingIndicator)
- Properly imported CSS file into the component

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-04 11:32:14 +08:00
Quorafind
e93c78bc2e refactor(styles): extract inline styles to CSS files
- Move view settings inline styles to view-setting-tab.css
- Import new CSS file in main styles.css
- Clean up unused onCompletion.css styles
- Improve code maintainability with separated concerns
2025-09-04 10:54:43 +08:00
Quorafind
527cb36243 fix(parser): respect custom project/context/area prefixes in task parsing
- Update ConfigurableTaskParser to properly map custom dataview fields using configured prefixes
- Fix specialTagPrefixes generation to avoid default fallbacks that conflict with custom settings
- Ensure case-insensitive matching for both tags and dataview metadata fields
- Pass tag prefix settings consistently through worker chains and orchestrator
- Add debug logging for dataview metadata extraction with configured prefixes

Fixes #422 where custom project prefixes and dataview properties were ignored
2025-09-03 13:48:21 +08:00
Quorafind
a6d94a5d7e refactor(settings): replace custom list UI with ListConfigModal and use native debounce
- Replace inline list management UI with reusable ListConfigModal component
- Migrate from setTimeout to Obsidian's native debounce utility
- Improve code formatting and indentation consistency
- Enhance settings search component with proper debouncing
- Simplify file source settings configuration interface
2025-08-31 21:41:04 +08:00
Quorafind
a5aedadf44 fix(tray): improve icon visibility and window focus behavior
- Use template images on macOS for automatic theme adaptation
- Apply neutral gray color for Windows/Linux tray icons for better visibility
- Add window focus functionality when opening tasks from tray menu
- Fix task opening to jump to correct line position
- Improve code formatting consistency (spaces to tabs)
2025-08-31 09:31:45 +08:00
Quorafind
fbb9417f63 style: fix indentation and improve configuration passing
- Fix indentation issues in DataflowOrchestrator
- Pass complete settings to TaskWorkerManager during initialization
- Add safety check to prevent overwriting tasks with empty preloaded data
- Include compiled CSS for list config modal styles

These changes improve code formatting consistency and ensure proper
settings propagation to worker managers.
2025-08-30 19:52:33 +08:00
Quorafind
d43186fef7 style: apply code formatting and linting updates
- Format DesktopIntegrationManager with consistent indentation
- Update setting.ts with proper line breaks
- Apply CSS formatting in setting-v2.css and styles.css
- Add nativeThemeHandler property for theme management
2025-08-29 11:50:56 +08:00
Quorafind
06b162a628 feat(notifications): add desktop notifications and tray menu integration
- Add NotificationManager for scheduling task reminders
- Implement tray/status bar icon with due task count
- Add settings UI for notification preferences
- Support daily summary and per-task reminders
- Integrate with existing task cache system
- Desktop-only feature with graceful fallback
2025-08-28 15:45:25 +08:00
Quorafind
bd56cd66f2 style(task-list): improve multi-line content layout flexibility
Remove fixed width constraint on multi-line task content to allow
better responsive behavior and prevent layout issues.
2025-08-28 10:26:31 +08:00
Quorafind
e2cfae3c03 chore(release): bump version to 9.8.0-beta.6 [beta] 2025-08-28 00:48:50 +08:00
Quorafind
5511203be7 feat(modal): add external link button to IframeModal header
Adds a button in the IframeModal title bar that allows users to open
the iframe content in their default external browser. The button uses
Obsidian's built-in external-link icon and includes proper hover
effects matching the native UI design.
2025-08-28 00:47:15 +08:00
Quorafind
b0431ce8a9 refactor(settings): restructure beta features into dedicated tabs
- Move Base View settings from Beta Features to new Bases Support tab
- Create dedicated TaskTimerSettingTab component for task timer settings
- Reorganize settings tabs to separate integration features from experimental ones
- Add API version check (1.9.10) for Bases Support tab visibility
- Comment out Beta Features and Experimental tabs temporarily
- Clean up BetaTestSettingsTab by removing migrated Base View settings
2025-08-28 00:22:05 +08:00
Quorafind
cfaa2ddbc8 refactor(bases): enhance Bases API compatibility and content handling
- Update to use native requireApiVersion from Obsidian API
- Handle new Bases data format with direct entry arrays
- Implement intelligent content update routing based on user preferences
- Support multiple content sources (title, filename, H1, custom field)
- Add dual property updates for date fields compatibility
- Improve entry-to-task conversion with better data extraction
- Add comprehensive logging for debugging Bases interactions
- Fix CSS vendor prefixes for better browser compatibility
2025-08-26 13:07:19 +08:00
Quorafind
52573bfcd0 refactor(canvas): consolidate Canvas parsing into core CanvasParser
Major refactoring to centralize Canvas parsing functionality and improve
timeline features:

- Consolidate Canvas parsing logic into CanvasParser class
- Remove separate CanvasEntry module (functionality moved to CanvasParser)
- Add static helper methods for Canvas JSON parsing and node operations
- Enhance timeline sidebar with duration badges for time ranges
- Fix timezone handling using local time instead of UTC for consistency
- Update Canvas task updater to use centralized parser
- Clean up settings UI removing obsolete indexing options
- Add comprehensive parser refactoring documentation

This improves code organization, reduces duplication, and enhances the
timeline view with better time range visualization including duration badges.
2025-08-24 22:46:16 +08:00
Quorafind
13bd8f3b05 refactor(dataflow): consolidate time parsing types and remove debug files
- Remove temporary debug files (debug-actual-parsing.js, debug-task-parsing.js, debug-time-parsing.js)
- Move time parsing type definitions from task.d.ts to dedicated time-parsing.ts
- Update all tests and services to import from new type location
- Simplify BaseTask interface by extracting time-related properties
- Minor CSS adjustments for timeline sidebar and main styles
2025-08-24 21:04:28 +08:00
Quorafind
dc364df963 feat(time-parsing): add enhanced time parsing with date inheritance and timeline improvements
- Implement comprehensive time component extraction and parsing
- Add date inheritance system for parent-child task relationships
- Enhance timeline sidebar with interactive features and visual improvements
- Add DateInheritanceService for managing task date hierarchies
- Implement TaskMigrationService for data structure updates
- Add TaskMetadataUtils for enhanced metadata handling
- Include extensive test coverage for all new features
- Add debug utilities for parsing validation
- Update settings UI with new time parsing configuration options
- Improve ConfigurableTaskParser with time-aware parsing capabilities
- Fix all TypeScript type errors and ensure proper type definitions

BREAKING CHANGE: Task metadata structure enhanced with timeComponents and enhancedDates fields
2025-08-24 21:00:30 +08:00
Quorafind
86b64b0996 feat(time-parsing): add enhanced time parsing with range and component extraction
- Implement TimeComponent extraction for precise time handling
- Add support for time ranges (12:00-13:00) with midnight crossing detection
- Support both 12-hour and 24-hour time formats with automatic conversion
- Extract and categorize time components (start, due, scheduled) based on context
- Add comprehensive tests for enhanced time parsing functionality
- Create dedicated time-parsing types for better type safety

Additional improvements:
- Enhance FileSource with improved task handling and notification support
- Update Repository with better error handling and cache management
- Add IframeModal component for embedded content display
- Refine dataflow architecture documentation and production readiness guide
- Update settings UI with improved search and configuration options
2025-08-24 10:26:54 +08:00
Quorafind
449348d4f6 docs: update architecture documentation and file specifications
- Update dataflow architecture documentation
- Refine file source specification
- Improve file type detector for better extension handling
- Minor style adjustments for UI consistency
2025-08-23 11:35:28 +08:00
Quorafind
96162afd9f refactor(settings): convert File Task configuration to dynamic add/remove components
- Replace static text inputs with dynamic list components for metadata fields, tags, and paths
- Add individual add/edit/delete controls for each configuration item
- Rename "FileSource" to user-friendly "File Task" throughout UI
- Consolidate duplicate configuration sections in IndexSettingsTab
- Move dynamic component styles to setting-v2.css to prevent override
- Fix TypeScript error in ics-manager.ts (optional plugin parameter)
- Improve user experience with auto-focus on new inputs and instant save

The configuration now matches the pattern used for custom date formats,
providing a more intuitive and flexible interface for managing File Task
recognition strategies.
2025-08-22 20:11:31 +08:00
quorafind
55fbc630ad refactor(dataflow): major architecture improvements and bug fixes
- Fix missing onTaskUpdate callback propagation in task tree items
- Restructure DataflowOrchestrator for better initialization and event handling
- Improve ObsidianSource event processing and workspace integration
- Add comprehensive TaskManager to Dataflow migration documentation
- Add cursor priority utility functions for editor extensions
- Enhance ConfigurableTaskParser with better error handling
- Update plugin initialization sequence for better stability
- Minor CSS adjustment for visual consistency

This refactoring improves the overall stability and performance of the
dataflow architecture while maintaining backward compatibility.
2025-08-21 23:41:20 +08:00
Quorafind
691952a6b3 feat(filesource): implement file-based task recognition system
Add comprehensive FileSource feature that enables files to serve as tasks
based on metadata properties, tags, templates, and path patterns. This
creates a unified task management experience where files can represent
both projects and actionable items.

Key features:
- Multiple recognition strategies (metadata, tags, templates, paths)
- Flexible task property extraction from file metadata
- Dual project-task file capabilities
- Settings UI with live preview and validation
- Integration with existing dataflow architecture
- Configurable task content sources (filename, title, custom fields)
- Support for custom status characters and priority levels

The implementation follows established patterns from ObsidianSource and
IcsSource, ensuring consistency with the existing codebase architecture.
2025-08-20 22:38:16 +08:00
Quorafind
deef893535 fix(dataflow): resolve blank TaskView and integrate ICS events
- Add IcsSource for calendar event integration into dataflow
- Fix infinite loop with sourceSeq tracking mechanism
- Resolve blank TaskView on quick startup with debounced events
- Add change detection to prevent unnecessary batch updates
- Implement render guards to prevent concurrent refreshes
- Update reindex commands to support dataflow architecture
- Persist ICS events separately in storage layer
- Update architecture documentation with current implementation

Fixes issues where:
- TaskView showed blank despite having loaded tasks
- Infinite "Batch update" loops occurred
- ICS calendar events disappeared when background sync disabled
- Rapid successive updates caused view resets before rendering
2025-08-20 10:34:02 +08:00
quorafind
feaa74a963 refactor(date-parsing): migrate to date-fns and add custom date format support
- Replace complex regex-based date parsing with date-fns library
- Add support for configurable custom date formats in settings
- Implement safe error handling to prevent parsing failures from throwing
- Support additional formats including timestamps (yyyyMMddHHmmss)
- Maintain backward compatibility with existing date parsing behavior
- Add UI for managing custom date formats in View Settings tab

The migration to date-fns simplifies the codebase by removing manual regex
patterns while providing more robust and standardized date parsing. Custom
formats can now be configured per-vault through the settings interface.
2025-08-16 14:16:38 +08:00
quorafind
ca3f7058db improve(mcp): add prompts support and Cursor one-click install
- Add getPrompts() method with 5 task management prompts (daily review, weekly planning, etc.)
- Implement prompts/list, prompts/get, resources/list, resources/read handlers
- Add buildPromptMessages() to generate prompt-specific message templates
- Add Cursor deeplink one-click install button in collapsible section
- Use official Cursor SVG install button for professional appearance
- Include copy install link as alternative installation method

Fixes 'no tools or prompts' error in Cursor MCP client
2025-08-16 12:54:08 +08:00
quorafind
4a325962b3 chore: remove conflict from styles.css 2025-08-16 00:40:39 +08:00
Quorafind
447f03ebcf feat(mcp): add MCP server integration for external tool connections
Implements Model Context Protocol (MCP) server to enable external AI tools
(Claude Desktop, Cursor, etc.) to interact with Task Genius tasks. The
server provides a standards-compliant HTTP transport with comprehensive
task management capabilities.

Key features:
- HTTP server with session management and authentication
- Full MCP 2025-06-18 protocol compliance with proper headers
- Origin validation for DNS rebinding protection
- Bearer token authentication with app ID validation
- Comprehensive task operations (CRUD, batch updates, queries)
- Settings UI with client configuration examples
- Support for both local and external network access

The implementation includes 20+ MCP tools for task operations including
create, update, delete, query, batch operations, and metadata management.
All tools are exposed through a secure HTTP endpoint with proper CORS
and authentication mechanisms.

Breaking changes: None - MCP integration is opt-in and disabled by default
2025-08-16 00:14:45 +08:00
quorafind
9a0ca17e79 refactor(editor): extend suggest system to quick capture panel
- Port QuickCaptureSuggest from MinimalQuickCaptureSuggest for consistency
- Add inline metadata editing with triggers (~, !, #, *, @) in editor panel
- Enhance editor quick capture with action buttons for date, priority, and tags
- Support auto-adding task prefix with configurable format
- Enable direct target file editing and location suggestions
- Add keyboard shortcuts (Alt+D, Alt+P, Alt+T) for quick actions
2025-08-14 17:33:22 +08:00
quorafind
b9ab12141a feat(settings): enhance settings search with DOM-based indexing
- Add DOM-based settings indexing for dynamic content discovery
- Support both static metadata and runtime DOM collection
- Add data attributes for improved search categorization
- Adjust highlight colors for better visibility
- Improve search accuracy with automatic ID generation
2025-08-12 17:43:03 +08:00
quorafind
0d859d8f2e fix(ui): resolve icon display issues for non-completed task states
- Fixed task status icons not displaying for planned/in-progress states
- Removed hardcoded padding and font sizing in project views
- Standardized padding to 8px in project tree items
- Corrected CSS generation logic to show icons without requiring :checked pseudo-class for non-completed states

This ensures that task status icons are always visible for all task states, not just completed ones.
2025-08-12 15:29:51 +08:00
quorafind
7a8b93d7de refactor(ui): improve projects sidebar header button layout
Group tree/list toggle and multi-select buttons together in a flexbox container for better visual organization and consistent spacing
2025-08-12 14:48:14 +08:00
quorafind
ec83ca8bc3 feat(projects): add hierarchical tree view for nested projects
Implement comprehensive tree view system for project organization with support for nested project paths (e.g., Project/SubProject). The new tree view allows users to visualize and navigate project hierarchies more intuitively.

Key features:
- Generic TreeComponent and TreeItemRenderer for reusable tree rendering
- Project-specific TreeComponent with task count display
- Support for nested project paths with configurable separator
- Tree/list view toggle in project sidebar
- Inclusive filtering (selecting parent includes all child tasks)
- State persistence to localStorage
- CSS variable-based indentation for user customization
- Expand/collapse functionality with animation
- Multi-select mode support
- ARIA attributes for accessibility

Components added:
- TreeComponent: Generic tree rendering component
- TreeItemRenderer: Individual tree node renderer
- ProjectTreeComponent: Project-specific tree implementation
- projectTreeBuilder: Tree construction utilities
- projectFilter: Hierarchical filtering logic

The tree view uses CSS variables (--tree-indent-size, --tree-level) for flexible indentation control, allowing users to customize the appearance through CSS overrides.
2025-08-12 12:58:58 +08:00
quorafind
733992d30e refactor(settings): migrate SettingsSearchComponent to inherit Component class
Refactored SettingsSearchComponent to extend Obsidian's Component class for improved lifecycle management.
This change provides automatic event cleanup and better performance when frequently toggling settings.

Changes:
- Inherit from Component class for automatic lifecycle management
- Use registerDomEvent() for all event listeners to ensure proper cleanup
- Add onunload() method to handle component destruction
- Store clearButton reference to avoid repeated DOM queries
- Improve timeout management with proper cleanup

Benefits:
- Automatic event listener cleanup when component is destroyed
- Better performance when repeatedly opening/closing settings
- Reduced memory leak risk from unregistered event listeners
- Cleaner code with standardized event management pattern
2025-08-11 12:04:18 +08:00
quorafind
c570263db8 chore(style): update input style in settings search container 2025-08-11 11:52:32 +08:00