Commit graph

19 commits

Author SHA1 Message Date
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
7a324469d2 repo: update cla.json 2025-11-02 11:03:46 +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
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
7d41359c6e refactor: remove void keywords and standardize code formatting
- Remove unnecessary void keywords from async function calls
- Standardize code formatting with consistent trailing commas
- Add date operation utilities for task date management
- Add TextPromptModal component for user input
- Enhance FluentActionHandlers with improved task update handling
2025-10-20 16:46:55 +08:00
Quorafind
dee954193f feat(workspace): add color customization support
Add color picker to workspace creation and rename modals, allowing
users to assign custom colors to workspaces for better visual
distinction. Colors are displayed on workspace icons throughout
the interface.

Additional improvements:
- Improve async/await error handling in Orchestrator, FileSource,
  and IcsSource initialization
- Add ensureHiddenModulesInitialized method for safer module
  visibility configuration
- Optimize view mode changes to prevent unnecessary re-renders
  when clicking the same navigation tab
2025-10-18 13:54:44 +08:00
Boninall
8bed404489 feat(quick-capture): add comprehensive frontmatter generation for file mode
- Add all task metadata fields to frontmatter (dates, priority, project, context)
- Add option to write content tags to frontmatter.tags
- Show live preview of file content including frontmatter
- Map checkbox statuses to textual equivalents for frontmatter
- Simplify tag handling to only use content tags when enabled
2025-10-04 21:54:04 +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
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
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
77dd5f5da5 refactor(build): migrate to TypeScript path aliases and update esbuild to v0.25.9
Replace relative imports (../../../) with TypeScript path aliases (@/)
throughout the codebase for improved readability and maintainability.

- Configure path alias in tsconfig.json with @ mapping to src/
- Update esbuild from v0.13.12 to v0.25.9 for modern features
- Add alias configuration to esbuild.config.mjs for build support
- Refactor build configuration to use context API for watch mode
- Update all component and utility imports to use @/ prefix
- Fix incorrect CSS import paths in habit and settings components
- Maintain consistent import structure across 148 files

This change simplifies import statements, makes the codebase more
maintainable by avoiding deeply nested relative paths, and modernizes
the build toolchain.
2025-08-28 14:02:26 +08:00
Quorafind
9f671ab3d7 feat(filesource): add status mapping between checkboxes and file metadata
- Implement bidirectional status mapping in FileSourceConfig with auto-detection from task status settings
- Add sync button in FileSourceSettings to populate mapping from checkbox configuration
- Enhance WriteAPI to convert between task symbols and metadata values during updates
- Fix preferFrontmatterTitle logic to properly respect user preference across content sources
- Add comprehensive logging for status mapping operations
- Update FileTaskManager to handle status updates with proper symbol/metadata conversion
- Ensure status changes persist correctly in both frontmatter and inline formats

BREAKING CHANGE: FileSource status updates now require proper mapping configuration for non-standard status values
2025-08-25 20:30:18 +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
4c5f560c2b feat(filesource): enhance FileSource task handling and WriteAPI support
- Add FileSource task update capability in WriteAPI
- Improve file type detection and metadata mapping
- Add comprehensive FileSource tests for basic operations
- Update Repository to handle FileSource task operations
- Enhance FileSource with filter manager integration
2025-08-23 11:25:59 +08:00
Quorafind
5fc1ad0dba feat(file-source): add path-based task recognition strategy
Implements path-based recognition for FileSource, allowing users to
designate specific directories as task directories. Files within these
paths are automatically recognized as tasks.

Features:
- Three matching modes: prefix, glob, and regex patterns
- Configurable task paths via settings UI
- Dynamic examples based on selected matching mode
- Support for multiple path patterns

The glob mode supports standard patterns:
- * matches any chars except /
- ** matches any chars including /
- ? matches single char

This completes the Phase 2 path strategy implementation for FileSource.
2025-08-22 13:08:21 +08:00
Quorafind
d3a850b029 refactor(components): improve view management and ICS integration
- Optimize ViewComponentManager with better lifecycle management
- Improve calendar view rendering and layout optimization
- Fix task filter date range handling for better performance
- Clean up FileSource for better dataflow integration
- Enhance task details editor with optimized debouncing (800ms)
- Remove deprecated configurable-task-parser
- Improve IcsSource with retry mechanism for manager availability
- Add 30-second fallback timeout for ICS initialization
- Pass plugin instance to IcsManager for proper context access
- Update tests to match new IcsManager constructor signature

This improves overall component performance and reliability,
particularly for calendar views and ICS event synchronization.
2025-08-21 21:20:50 +08:00
Quorafind
172e5fc794 fix(dataflow): resolve data loss on restart and integrate FileSource
Implemented smart persistence batching in Repository to fix data loss issue that occurred
when Obsidian restarted. The Repository.updateFile() method now schedules persistence
operations with intelligent debouncing (1s delay, max 10 files, max 5s interval).

- Added persistence queue management with schedulePersist() and executePersist() methods
- Integrated FileSource into DataflowOrchestrator with conditional initialization
- Added FILE_TASK_UPDATED and FILE_TASK_REMOVED events to event system
- Extended Repository to support three data sources (regular tasks, ICS events, file tasks)
- Ensured cleanup properly persists pending data before shutdown
- Updated dataflow architecture documentation with FileSource details
- Added comprehensive FileSource architecture review document

The persistence fix ensures all task updates are properly saved to storage while
balancing performance through batching. FileSource integration allows files to be
recognized as tasks based on configurable strategies.
2025-08-21 07:12:36 +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