- Add snapshot-based filter state capture to prevent state corruption
- Implement immediate save for critical workspace operations
- Add recursive save protection with isSaving flag
- Introduce WORKSPACE_ONLY_KEYS for keys that never merge globally
- Add component visibility controls for sidebar sections
- Improve cache management with targeted invalidation
- Add activeViewId tracking for better view restoration
- Enhance error handling with user-facing notices
- Add backward compatibility for legacy sidebar component IDs
- 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
Add support for two distinct projects view modes:
- Projects overview: displays all projects with ProjectsComponent, disables
ProjectList to prevent conflicting navigation
- Single project: shows filtered tasks for selected project using
ContentComponent, keeps ProjectList enabled
When navigating to projects view from Other Views menu, project selection
and filters are cleared to enable overview mode. ProjectList interaction
is controlled via CSS class and visual feedback.
Changes:
- FluentSidebar: remove projects exclusion, add setProjectListEnabled()
- ProjectList: add setEnabled() method for controlling interaction state
- FluentTaskView: clear selection on projects navigation, control list state
- FluentComponentManager: switch components based on project selection
- fluent-main.css: add disabled project list styles
- Switch all imports to use QuickCaptureModalWithSwitch consistently
- Make timeParsingService public in QuickCaptureModalWithSwitch for test access
- Apply consistent code formatting (Prettier)
- Fix add project button placement in ProjectList (move from scrollArea to containerEl)
- Improve UI element creation in FluentSidebar using text parameter
- Add per-view view mode persistence to remember mode for each navigation item
- Make workspace side leaves optional with default disabled
- Improve project filtering with normalized comparison logic
- Expose dataflow orchestrator early for event subscription
- Enhance type safety across fluent components
- Add missing event listeners for cache updates in ProjectList
- Add BATCH_OPERATION_START/COMPLETE events
- Pause view updates during batch operations
- Refresh view once after batch operation completes
- Add payload type definitions for type safety
Comprehensive refactoring to improve naming consistency and code quality:
- Rename all "V2" references to "fluent" across codebase
- Update CHANGELOG-BETA.md to use "fluent" scope consistently
- Update comments and documentation from "V2" to "fluent"
- Improve FluentTopNavigation notification count updates:
- Add async notification count loading to prevent UI blocking
- Add event listeners for CACHE_READY and TASK_CACHE_UPDATED
- Improve error handling for notification updates
- Fix ProjectDataCache to use ProjectConfigManager settings
- Improve type safety with explicit imports and type annotations
- Code formatting and cleanup across fluent components
- Remove unnecessary type casts and improve type definitions
This refactoring improves code readability and maintainability while
preserving all existing functionality.
Add comprehensive task selection and bulk operation capabilities:
- Add TaskSelectionManager for managing task selection state
- Add LongPressDetector for mobile gesture support
- Add BulkOperationsMenu with operations for selected tasks
- Support shift-click and ctrl-click for multi-selection
- Support long-press on mobile to enter selection mode
- Add visual feedback for selected tasks with highlighting
- Add floating badge showing selected task count
- Add write queue in WriteAPI to prevent concurrent writes
- Add updateTasksSequentially API for batch task updates
- Integrate selection manager into task list and tree views
Bulk operations supported:
- Set due date (absolute or relative offset)
- Set start date
- Set priority
- Add/remove tags
- Set status
- Archive tasks
- Delete tasks
New files:
- src/components/features/task/selection/TaskSelectionManager.ts
- src/components/features/task/selection/LongPressDetector.ts
- src/components/features/task/view/BulkOperationsMenu.ts
- src/styles/task-selection.css
- src/types/selection.d.ts
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
- Add PR template with standardized sections for contributions
- Include CLA acknowledgment checkbox in PR checklist
- Add type of change and related issues sections
- 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