- Add CLA section to DEVELOPMENT.md with contributor guidelines
- Update README.md with license information and version badge
- Add reference to FSL-1.1-ALv2 license
- Clarify component reusability for developers
- Add Functional Source License 1.1 with Apache License 2.0 future grant
- Add Contributor License Agreement (CLA) for contributors
- License allows free use while protecting against competing commercial uses
- CLA grants necessary rights for dual licensing model
- Fix async handling in hidden modules toggle with proper error recovery
- Add type imports for SidebarComponentType and FeatureComponentType
- Refactor module visibility toggle to use workspace manager API methods
- Add try-catch-finally structure to FluentTaskView initialization
- Enhance error handling and logging in view initialization
- Add DEBUG_MODE configuration for conditional logging
- Improve state refresh after module visibility changes
- Add hidden modules configuration UI for views, sidebar components, and features
- Refactor WorkspaceSelector to prevent unnecessary re-renders using updateActiveWorkspaceView
- Add module visibility API methods to WorkspaceManager (isViewHidden, isFeatureHidden, etc.)
- Improve workspace state synchronization with new syncFilterState method and FilterSyncHandlers
- Add DEBUG_MODE toggle to FluentTaskView for better debugging control
- Update gitignore to exclude .codex directory
Breaking changes: None
- Add dropdown component for quick template selection in file name input
- Implement template management with name/template pairs
- Add configuration UI for managing file name templates
- Support both legacy string arrays and new template definitions
- Enhance settings tab with better template configuration
- Add proper type definitions for QuickCaptureTemplateDefinition
- Improve data migration from legacy template format
- Add validation and normalization for template data
- Update translations for new template features
- Add CSS styles for template dropdown UI
- 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
- 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.
- 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
- 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
- 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
- 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
- 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
- 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.
- 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.
- 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.
- 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.
- 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
- 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)
- 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.
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
- 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
- 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
- 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
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.
- 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.
- 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
- 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%)
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.
- 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
- 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
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.
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
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.
- 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
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
- 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.
- 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