Commit graph

1243 commits

Author SHA1 Message Date
Quorafind
8fca37040a fix(changelog): improve cache serialization and require app parameter
- Ensure proper JSON serialization when saving cache to localStorage
- Handle string values in sanitizeCachePayload with JSON parsing
- Make app parameter required for all cache operations
- Add debug logging for troubleshooting cache issues
2025-10-12 17:27:16 +08:00
Quorafind
59a2d42f9f refactor(workflow): improve code quality and type safety
- Remove debug console.log statements from workflow handlers
- Add proper TypeScript type definitions (WorkflowInfo, ResolvedWorkflowInfo)
- Extract regex patterns and magic strings as constants
- Create helper functions for cleaner code (getIndentation, getEditorFromView)
- Improve error handling with bounds checking
- Enhance time parsing service with better fallback logic
- Add fallback property names for date fields in file task manager
- Fix test import paths for relocated modules
- Consolidate duplicate code in workflow stage transitions
- Improve indentation handling in parent task updater

Breaking changes: None
2025-10-12 14:25:20 +08:00
Quorafind
0b0d4af0fe feat(views): enhance view copy with intelligent two-column preset detection
- Add support for copying views with source identifier
- Implement automatic two-column preset detection when copying from specific view types
- Auto-configure task property and column titles based on source view name
- Support property key inference from view names (tags, projects, review, etc.)
- Improve view copy modal to handle both view object and identifier
- Update sidebar and settings tab to pass view identifiers for copy operations

This enhancement makes it easier to create properly configured two-column views
by automatically detecting the appropriate task property and column configuration
based on the source view being copied.
2025-10-11 23:03:54 +08:00
Quorafind
8a7cc8fa9a chore(experimental): remove unfinished v2 implementation and clean docs
- Remove experimental TaskViewV2 and related CSS
- Fix DEVELOPMENT.md formatting and remove outdated license reference
- Clean up accidentally committed experimental code
2025-10-10 17:23:24 +08:00
Quorafind
1b9768f5af feat(onboarding): refactor onboarding flow with new placement configuration
- Add new PlacementStep for configuring Fluent layout placement
- Consolidate onboarding steps into unified step-based architecture
- Remove obsolete components (ConfigPreview, FluentPlacement, OnboardingComplete, UserLevelSelector)
- Enhance step navigation with improved back/skip logic
- Add internationalization support to changelog view
- Update changelog branding (icon, URL to taskgenius.md)
- Add experimental TaskViewV2 with enhanced Fluent interface
- Improve onboarding UI with better visual hierarchy and styling
- Update translations across en, zh-cn, zh-tw locales
2025-10-10 17:21:07 +08:00
Quorafind
2323767b32 feat(changelog): add in-app changelog viewer with auto-display on updates
- Add ChangelogView component for displaying release notes
- Implement ChangelogManager to handle version tracking and display logic
- Add changelog cache utility for offline access
- Integrate changelog settings in About tab (toggle to enable/disable)
- Support loading changelog from GitHub releases
- Auto-show changelog on plugin updates (configurable)
- Add dedicated CSS styling for changelog presentation
2025-10-10 11:18:59 +08:00
Quorafind
39c5cf329c feat(quick-capture): add template folder support and content merging
- Add templateFolder setting for organizing Quick Capture templates
- Implement content merging with {{CONTENT}} placeholder support
- Refactor frontmatter building into dedicated methods for better maintainability
- Add dropdown template selector when template folder is configured
- Improve template error handling with user-friendly notifications
- Ensure minimal frontmatter when using templates
- Support automatic template content merging at end if no placeholder found
2025-10-10 09:16:22 +08:00
Quorafind
ab8af59b34 refactor(quick-capture): migrate to QuickCaptureModalWithSwitch and improve UI
- Update all imports from QuickCaptureModal to QuickCaptureModalWithSwitch
- Conditionally show clear button only when both file and inline modes are available
- Hide tab container when only one mode is available (aria-hidden attribute)
- Adjust modal height from 750px to 700px for better viewport fit
- Add CSS rule to hide modal title when containing hidden elements
- Clean up formatting and spacing consistency
2025-10-10 09:12:34 +08:00
Quorafind
0ae3957144 feat(settings): enhance index settings with tabbed source configuration
- Add tabbed interface for Checkbox Tasks and File Tasks configuration
- Introduce FileFilterScopeControls to manage inline vs file task sources
- Create ViewComponent base class for unified view component behaviors
- Improve settings UI with clearer separation of task source types
- Add scope controls to FileFilterManager for granular source management
- Update calendar component formatting and add configOverride support
- Enhance CSS styling for tabbed settings interface
2025-10-09 21:23:51 +08:00
Quorafind
af31b39f30 feat(settings): add dedicated Interface settings tab with Fluent/Legacy mode selection
- Create new InterfaceSettingsTab with visual mode selection using SelectableCard component
- Move Fluent interface settings from Beta tab to new Interface tab
- Remove deprecated ribbon icon setting
- Conditionally show Fluent-specific settings based on selected mode
- Add Interface tab to Core Settings category in main settings
2025-10-09 16:59:21 +08:00
Quorafind
75162619d6 style: improve CSS formatting and remove redundant type annotations
- Fix CSS indentation in fluent-main.css for better readability
- Add .bases-view selector for kanban filters hiding
- Remove explicit boolean type annotations in ProjectList
- Update compiled styles.css

These are non-functional formatting improvements and style consistency
updates that improve code readability without changing behavior.
2025-10-09 14:14:41 +08:00
Quorafind
11a8d5a071 feat(gantt): add config override support for Bases integration
- Add setConfigOverride method to GanttComponent
- Add getEffectiveGanttConfig to merge base config with overrides
- Add applyEffectiveConfig to update internal config object
- Apply effective config in onload and when override changes
- Support showTaskLabels and useMarkdownRenderer overrides

This completes config override support across all view components
(calendar, forecast, kanban, quadrant, and gantt), enabling Bases
plugin to customize view-specific settings independently.
2025-10-09 13:52:05 +08:00
Quorafind
227f85d793 feat(views): add config override support for Bases integration
- Add setConfigOverride method to QuadrantComponent
- Add setConfigOverride method to ForecastComponent
- Add config override support to CalendarComponent and views
- Pass effective config to MonthView, WeekView, and YearView
- Minor formatting improvements in KanbanComponent
- Register quadrant as new Bases view type in registerBasesViews

This enables Bases plugin to override view-specific configurations
(firstDayOfWeek, hideWeekends, urgentTag, etc.) on a per-view basis,
allowing users to customize view behavior independently in different
Bases views while maintaining default plugin settings.
2025-10-09 11:19:54 +08:00
Quorafind
0cba1f3e67 feat(bases): add quadrant view integration to TaskBasesView
- Add QuadrantComponent import and initialization
- Add quadrant-specific configuration interface and loading
- Implement quadrant view case in switchView method
- Add comprehensive quadrant view options (tags, thresholds, priorities)
- Refactor config override logic to support all special views
- Fix kanban config key to use 'tg_groupBy' prefix
- Remove debug console.log statements

The quadrant view is now fully supported in Bases integration with
configurable urgent/important tags, threshold days, and priority-based
classification options.
2025-10-08 23:35:05 +08:00
Quorafind
5583f4678c refactor(bases): simplify view registration and upgrade to Obsidian 1.10
- Replace complex ViewManager with streamlined registration approach
- Consolidate multiple specialized view classes into unified TaskBasesView
- Upgrade Obsidian API from 1.8.7 to 1.10.0 for latest features
- Add kanban config override support for Bases view integration
- Update file task property mappings to align with dataview standards
- Remove deprecated Bases API version checking from VersionManager
2025-10-08 21:12:17 +08:00
Quorafind
791f2cd9a9 refactor(fluent): extract fluent settings and reorganize file structure
- Add dedicated FluentViewSettings interface separated from experimental
- Move FileTaskView to bases/ directory for better organization
- Update all fluent integration to use fluentView settings
- Add DEVELOPMENT.md with project development guidelines
- Migrate settings with backward compatibility

BREAKING CHANGE: Settings structure changed from experimental.enableFluent
to fluentView.enableFluent (migration handled automatically)
2025-10-08 01:34:46 +08:00
Quorafind
b9213964d0 feat(quick-capture): enhance minimal modal with editable target and resolved paths
- Add FileSuggest to checkbox mode for editable target file selection
- Display resolved file paths in file mode (process date templates)
- Keep quick action buttons visible in both checkbox and file modes
- Update minimal modal styling for improved UX
2025-10-08 01:30:40 +08:00
Quorafind
aaa4ff43eb refactor(fluent): migrate experimental v2 to production fluent structure
- Move all experimental v2 components to src/components/features/fluent/
- Relocate views from experimental to src/pages/
- Organize base views into src/pages/bases/ subdirectory
- Rename all V2 references to Fluent (classes, CSS, settings)
- Update import paths throughout the codebase
- Consolidate styles into src/styles/fluent/ directory
- Remove experimental backup files

This completes the graduation of the experimental Fluent UI features
into the main codebase structure for better maintainability and
organization.
2025-10-07 21:54:43 +08:00
Quorafind
e17caaff8f feat(onboarding): enhance setup with modal-driven file filter editing
Refactor onboarding system with improved component lifecycle and enhanced
file filter management. Replace prompt-based interactions with modal dialogs
and add comprehensive autocomplete support.

Key changes:
- Add OnboardingStepComponent base class for consistent lifecycle management
- Introduce FileFilterRuleEditorModal for interactive rule editing
- Replace prompts with modal-based file/folder selection with autocomplete
- Add per-rule scope configuration and inline editing capabilities
- Update view title from "Onboarding" to "Setup" with custom icon
- Extend OnboardingLayout to Component class for better resource management
- Improve UI polish with toggleVisibility and enhanced styling
2025-10-07 20:39:46 +08:00
Boninall
22865d135c feat(quick-capture): add mode persistence and file capture to minimal modal
- Store last used mode in localStorage instead of plugin settings
- Add file mode with frontmatter generation to MinimalQuickCaptureModal
- Include tab switching UI for checkbox/file modes
- Extract tags from content for frontmatter when in file mode
- Persist mode selection across app sessions using localStorage key
2025-10-07 07:46:39 +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
Boninall
1a09c398d9 style(onboarding): improve component preview layout
- Add dedicated styles for sidebar preview component
- Change preview container layout from column to row direction
- Add horizontal scrolling support for wider preview content
- Set fixed width for sidebar preview to maintain proportions
2025-10-03 23:00:03 +08:00
Boninall
1814877969 refactor(onboarding): decompose fluent onboarding into progressive steps
Breaking down the Fluent UI onboarding process into smaller, focused steps
for better user guidance and comprehension:

- Split monolithic Fluent components step into 6 progressive steps
- Add individual step components for each UI section (Overview, Workspace
  Selector, Main Navigation, Projects, Other Views, Top Navigation)
- Enhance preview components with interactive selection and focus/dim modes
- Improve visual hierarchy with targeted highlighting for each step
- Add keyboard support and accessibility attributes to preview components
- Fix transition timing to show config check only at appropriate steps

This change provides a more guided and digestible onboarding experience
by presenting UI concepts progressively rather than all at once.
2025-10-03 22:58:28 +08:00
Boninall
962623b3e8 chore: clean up documentation and refine onboarding UI
- Remove 25 outdated documentation files from completed refactoring efforts
- Reorder placement options to prioritize inline mode in onboarding
- Fix task item CSS class naming for consistency
- Remove unused content area showcase from fluent components
- Correct sideleaves configuration logic in placement step
- Update onboarding component styles for better visual hierarchy

These changes streamline the codebase by removing completed migration
documentation and improve the onboarding experience with better defaults
and cleaner UI presentation.
2025-10-03 22:02:54 +08:00
Boninall
055ba03772 refactor(onboarding): integrate mode selection into intro step
- Merge mode selection UI directly into intro step after typing animation
- Update navigation flow to skip standalone MODE_SELECT step
- Improve component previews with accurate V2 UI structure
- Fix transition logic for fluent vs legacy mode paths
- Add documentation for onboarding flow improvements
2025-10-03 21:24:18 +08:00
Quorafind
6307b018ca feat(onboarding): add file filter and fluent components configuration steps
- Add FileFilterStep for configuring which files to track tasks in
- Add FluentComponentsStep for selecting UI components to enable
- Create ComponentPreviewFactory for generating dynamic component previews
- Extract dedicated CSS for onboarding components styling
- Improve step separation by removing inline mode selection from intro
- Enhance modularity with clear step boundaries and responsibilities
2025-10-03 18:56:24 +08:00
Quorafind
8f5daebd86 refactor(onboarding): decompose monolithic modal into component architecture
- Replace single OnboardingModal with modular MVC-style design
  - OnboardingController: centralized state and navigation logic
  - OnboardingLayout: reusable header/content/footer structure
  - Step components: isolated, single-responsibility modules

- Extract 8 step components from monolithic modal:
  - IntroStep, ModeSelectionStep, PlacementStep, UserLevelStep
  - ConfigPreviewStep, TaskGuideStep, CompleteStep, SettingsCheckStep

- Create reusable UI components library (5 components):
  - Alert, Badge, FeatureList, ProgressDots, SelectableCard

- Add sub-components for complex steps:
  - Intro: TypingAnimation, ConfigCheckTransition, TransitionMessage
  - Guide: FormatExamples, QuickCaptureDemo
  - Preview: ChangesPreview, ConfigSummary, SettingsList, ViewsGrid

- Transform OnboardingView to use new controller-driven architecture
- Add layout-placement.css for placement step styling
- Update AboutSettingsTab to integrate with refactored system

Benefits:
- Improved maintainability through separation of concerns
- Easier to test individual components in isolation
- Cleaner code organization with focused, single-purpose modules
- Reusable UI components across onboarding flow
2025-10-01 22:41:48 +08:00
Quorafind
a1b12c94dc feat(onboarding): improve layout flexibility and refine copy
- Update subtitle text for better conversational flow
- Remove fixed height from mode-card-preview for flexible content
- Make intro-typing-wrapper responsive with max(900px, 70%)
2025-10-01 20:18:46 +08:00
Quorafind
17545ed33c feat(onboarding): add theme-aware preview images for mode selection
Replace emoji placeholders with actual preview images for fluent and
legacy modes. Images are loaded from GitHub repository with automatic
theme detection (dark/light variants). Also fix CSS specificity for
mode card styling to ensure proper scoping.
2025-10-01 17:17:38 +08:00
Quorafind
141b092f47 feat(onboarding): add noise texture and enhance UI polish
- Add noise texture layer system for visual depth
- Modernize footer with glass morphism and ripple effects
- Improve layout stability during intro animation
- Add mode selection preview images
- Standardize box-shadows to CSS variables across all styles
- Enhance mobile responsiveness and dark theme support
2025-10-01 15:00:42 +08:00
Quorafind
491e2a6189 feat(onboarding): enhance intro animation and fix mode selection UI
- Add fade-out animation for intro typing lines with configurable delays
- Integrate mode selection directly into intro typing flow
- Fix grid layout and responsive design for mode/placement selection cards
- Remove tg-v2-card dependency in favor of dedicated onboarding styles
- Add visual previews for Fluent and Legacy modes with icons
- Translate UI text from Chinese to English for consistency
- Improve card selection states with proper event handling
- Add flex layouts to ensure proper vertical stacking in cards
2025-10-01 09:29:32 +08:00
Quorafind
3fcf2f9705 feat(onboarding): add fluent/legacy mode selection flow
Expand onboarding wizard with new interactive steps to guide users
through UI architecture selection:

- Add animated typing intro component with AI-style streaming effect
- Add UI mode selection step (Fluent vs Legacy interface styles)
- Add Fluent placement configuration (Sideleaves vs Inline layout)
- Refactor onboarding flow from 5 to 7 steps with conditional branching
- Apply selected architecture preferences to plugin settings
- Add visual mode classes and enhanced styling support

The new flow allows users to customize their Task Genius experience
during initial setup while maintaining backward compatibility with
existing configurations.
2025-09-30 16:09:25 +08:00
Quorafind
68247f03be refactor(v2): decompose TaskViewV2 into stateless manager classes
Split monolithic TaskViewV2 (3207 lines) into 6 focused managers:
- FluentDataManager: data loading and filtering
- FluentLayoutManager: layout, sidebar, details panel, action buttons
- FluentComponentManager: view component orchestration
- FluentActionHandlers: user action handling
- FluentGestureManager: mobile gesture support
- FluentWorkspaceStateManager: state persistence

Key fixes:
- Restore missing DOM layers (tg-v2-main-container, tg-v2-content-wrapper)
- Add action buttons (Details, Capture, Filter, Reset Filter) to header
- Fix project selection to update filter state and trigger events
- Add filter-changed event listener for cross-view filtering
- Prevent double rendering by centralizing updateView calls

Architecture:
- TaskViewV2 is now single source of truth for all state
- Managers are stateless executors that communicate via callbacks
- State flows: Manager executes → Callback → TaskViewV2 updates state
2025-09-30 11:21:31 +08:00
Quorafind
148f1633a8 chore(styles): resolve conflict in styles.css 2025-09-29 20:52:36 +08:00
Quorafind
84e7aa2971 chore(styles): resolve conflict in styles.css 2025-09-29 20:52:12 +08:00
Quorafind
5b5a92d95b chore(styles): resolve conflict in styles.css 2025-09-29 20:51:31 +08:00
Quorafind
498b6dc918 refactor(plugin): simplify deferred workspace leaves loading
Combine separate forEach loops into a single iteration using spread operator.
Remove redundant length check as forEach safely handles empty arrays.
Also includes minor code formatting improvements for consistency.
2025-09-29 20:50:51 +08:00
Quorafind
09a2e0f2ea feat(quick-capture): add multi-mode capture with file creation support
- Introduce BaseQuickCaptureModal as foundation for modal variants
- Add mode switching between checkbox and file creation strategies
- Implement MinimalQuickCaptureModalWithSwitch and QuickCaptureModalWithSwitch
- Add FileNameInput component for custom file naming
- Enhance settings with mode persistence and file creation options
- Add configuration for keeping modal open after capture
- Support file name templates and default folder locations
- Update UI with improved styling and mode toggle controls

BREAKING CHANGE: Modal instantiation API has changed to support new mode parameter
2025-09-29 20:16:56 +08:00
Boninall
e18ea53b35
Merge pull request #463 from haron-IV/fix/cancel-date-goes-before-task-content
fix: cancel date goes before task content
2025-09-27 09:23:08 +08:00
Boninall
8b098bad38
Merge branch 'master' into fix/cancel-date-goes-before-task-content 2025-09-27 09:21:40 +08:00
Quorafind
1675c1789d chore(release): bump version to 9.9.0-beta.6 [beta] 2025-09-27 09:16:06 +08:00
Quorafind
27c426c474 feat(settings): add workspace selector component
Add a new workspace selector component to the settings tab that allows
users to switch between different workspace configurations. The selector
displays the current workspace icon and name, and provides a dropdown
menu to switch between available workspaces.

- Create WorkspaceSettingsSelector component with workspace switching
- Add styling for the workspace selector UI
- Support workspace icon display and hover effects
- Integrate with existing workspace manager
2025-09-27 09:15:35 +08:00
Quorafind
41f1d95576 feat: improve date positioning logic for task metadata
- Enhanced content parsing to properly handle wiki links, nested brackets, and special characters
- Fixed cancelled date positioning to respect content boundaries
- Added comprehensive test coverage for edge cases
- Cancelled dates now correctly place after task content but before metadata (tags, dataview fields)
- Start dates continue to be placed after content before other metadata
- Properly handles URLs with hashtags without confusing them with tags

This builds on PR #463 to provide a more robust solution for date positioning in tasks.
2025-09-27 09:15:35 +08:00
Quorafind
dab3ecb5d7 fix(editor): improve date positioning in task content
- Fix cancelled date insertion to appear after task content
- Improve content boundary detection for dates and metadata
- Handle wiki links and special characters in task content correctly
- Ensure dates are positioned before tags and dataview fields
2025-09-27 09:15:35 +08:00
haron-IV
8b48e6a25b fix: cancel date goes before task content 2025-09-27 09:15:35 +08:00
Quorafind
9109c07d28 chore(release): bump version to 9.9.0-beta.5 [beta] 2025-09-26 17:33:25 +08:00
Quorafind
8abd736e84 chore(version): fix version issue before 2025-09-26 17:32:16 +08:00
Quorafind
ef0834c65a chore(release): bump version to 9.9.0-beta.5 [beta] 2025-09-26 17:16:00 +08:00
Quorafind
f20c5ebee3 fix(task-mover): prevent archive markers on non-task lines and preserve folded content
- Skip non-task lines (empty lines, regular text) when processing selections
- Detect and move indented content (notes, tags) with parent tasks
- Ensure indented content below tasks moves together as a unit
- Fix child task collection to start after folded content to avoid duplicates
2025-09-26 16:56:50 +08:00
Quorafind
f282bffbf8 fix(setting): manage workspace setting should jump to workspace setting tab 2025-09-25 22:13:39 +08:00