Commit graph

1110 commits

Author SHA1 Message Date
Quorafind
9bd0d53b67 feat(release): implement custom changelog generator for merged beta versions
- Create custom-changelog.mjs script to generate single consolidated changelog entry
- Disable conventional-changelog's built-in changelog generation (infile: false)
- Use custom script in after:bump hook to generate merged changelog
- Properly groups all commits from last stable version by category
- Filters out beta release commits automatically
- Supports breaking changes with detailed descriptions
2025-09-04 22:48:17 +08:00
Quorafind
af101fd6b0 fix(release): prevent multiple getLastStableTag calls causing infinite loop
- Move getLastStableTag() call outside of module exports
- Execute function only once and reuse the result
- Fix infinite loop issue during changelog generation
2025-09-04 16:52:56 +08:00
Quorafind
8f7b163aff fix(release): avoid modifying immutable commit objects in changelog transform
- Create a copy of commit object before modifying
- Prevent 'Cannot modify immutable object' error
- Safely add shortHash property to transformed commits
2025-09-04 16:50:34 +08:00
Quorafind
7d2a9f42c5 fix(release): add shortHash to commits for proper link display in changelog 2025-09-04 16:38:50 +08:00
Quorafind
9070f8f4a1 fix(release): set releaseCount to 1 for single version changelog entry 2025-09-04 15:07:17 +08:00
Quorafind
8c077f3310 fix(release): configure changelog to merge all beta versions into single entry
- Set releaseCount to 0 to generate single version entry
- Add finalizeContext to update compare URL with correct version range
- Ensure changelog shows commits from last stable version (9.7.6) to current
2025-09-04 15:05:51 +08:00
Quorafind
b3cbcbceec fix(release): remove unsupported git regexp-flags from changelog config
- Remove regexp-flags parameter that causes git-raw-commits error
- Enhance writerOpts.transform to filter beta-related commits more comprehensively
- Filter commits with patterns like 'beta', '-beta.', and version-beta formats
2025-09-04 15:04:51 +08:00
Quorafind
80a1d3bf68 chore(scripts): remove unused test files 2025-09-04 15:03:15 +08:00
Quorafind
0a5e6aaba2 feat(release): enhance changelog generation to merge beta versions
- Add custom changelog transformer script for merging beta releases
- Update release-it configuration to filter out beta release commits
- Create test script to validate merged changelog generation
- Configure writerOpts to exclude beta-related chore commits from changelog
- All intermediate beta versions now merged into single release entry with commits grouped by type
2025-09-04 15:01:02 +08:00
Quorafind
dee72cdc7a revert: rollback to 9.8.0-beta.15 and enhance release configuration
- Roll back version from 9.8.0 to 9.8.0-beta.15 across all manifests
- Remove 9.8.0 changelog entries to prepare for clean release
- Enhance release-it configuration with intelligent stable tag detection
  - Add getLastStableTag() function to exclude pre-release versions
  - Configure changelog to only include commits since last stable release
  - Improve release workflow for cleaner version management
2025-09-04 14:54:28 +08:00
Quorafind
d8ba377988 chore(release): v9.8.0
Release stable version 9.8.0 from beta 9.8.0-beta.15

Notable changes:
- Add progress bars and task counts to Projects view
- Add region-based organization with drag-and-drop sorting
- Add global search shortcut (Ctrl+K/Cmd+K)
- Fix habits selection and quick-capture tag duplication
- Improve filter performance and markdown rendering
- Refactor components to remove inline styles
2025-09-04 14:53:40 +08:00
Quorafind
9e595e7ae9 fix(settings): correct event reason from 'view-deleted' to 'view-updated'
The event triggered after editing a view configuration was incorrectly
labeled as 'view-deleted'. This changes it to the correct 'view-updated'
reason to properly reflect the action being performed.
2025-09-04 14:42: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
88f0d16e81 docs: add bug review and fix documentation
- Document 6 identified bugs and their fixes
- Include implementation details and testing criteria
- Track completion status of bug fixes
2025-09-04 10:55:01 +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
612a979f10 feat(settings): add global Ctrl+K/Cmd+K shortcut for search
- Implement keyboard shortcut handler for settings search
- Support both Windows/Linux (Ctrl+K) and macOS (Cmd+K)
- Auto-focus and select existing text when triggered
- Only active when settings panel is visible
2025-09-04 10:54:21 +08:00
Quorafind
28a061eff4 fix(habits): prevent all habits being checked when selecting one
- Add flag to prevent duplicate updates when toggling habits
- Fix state synchronization issue in habit manager
- Ensure only selected habit updates its state
2025-09-04 10:53:57 +08:00
Quorafind
99861bdb9a fix(task-view): resolve text display sync issues in markdown rendering
- Use requestAnimationFrame for proper DOM cleanup timing
- Fix text discrepancies when switching between edit and view modes
- Ensure markdown renderer properly updates on metadata changes
2025-09-04 10:53:18 +08:00
Quorafind
393fb48c01 feat(views): add region-based organization with drag-and-drop sorting
- Add region property to ViewConfig for top/bottom sidebar sections
- Implement drag-and-drop view management with sortablejs in settings
- Update sidebar to respect region-based view organization
- Add visual separation between top and bottom view sections
- Set default regions for habit, calendar, gantt, kanban views
2025-09-04 10:52:55 +08:00
Quorafind
8dd02bf00c fix(filter): improve filter input performance with increased debounce delays
- Increase filter debounce from 100ms to 400ms in TaskView
- Add 400ms delay for filter value inputs in ViewTaskFilter
- Add 300ms debounce for text filter in content view
- Reduce frequent re-renders during rapid typing
2025-09-04 10:52:30 +08:00
Quorafind
1848f3d492 feat(projects): add completed/total task counts to project badges
Display task completion progress in project count badges for both flat
list and tree views. Shows format like "3/10" when progress bar setting
is enabled, with visual feedback for completion status.

- Add completed task calculation for each project/node
- Show completed/total format in count badges
- Apply success colors for partially/fully completed projects
- Support both flat list and hierarchical tree views
- Respect all task status settings (useOnlyCountMarks, excludeTaskMarks, etc.)
- Add smooth transitions and theme-aware styling
2025-09-03 23:08:05 +08:00
Quorafind
cfdd40225e feat(projects): add progress bar to Projects view
Adds a configurable progress bar to the Projects view header that displays
task completion status for selected projects. The progress bar respects
all existing progress display settings and custom task status markers.

- Add `addProgressBarToProjectsView` setting with toggle in settings UI
- Implement progress calculation that properly respects task status settings
  including useOnlyCountMarks, excludeTaskMarks, and custom status markers
- Reuse existing progress bar CSS classes and rendering patterns for consistency
- Progress bar updates dynamically when projects are selected/deselected
- Supports all display modes: graphical, text, both, and none
2025-09-03 22:58:50 +08:00
Quorafind
27f4457bf4 style: apply prettier formatting to task view components
Applied consistent code formatting to content.ts and treeItem.ts files
including proper line breaks, indentation, and spacing for improved
readability.
2025-09-03 22:36:21 +08:00
Quorafind
05d9022384 fix(quick-capture): resolve tag duplication in autocomplete suggestions
Fixed an issue where typing hashtags in the quick capture panel would
append intermediate completions, resulting in duplicated tags like
'##t ##ta ##tag'. The autocomplete now properly tracks the full query
text after trigger characters and replaces the entire trigger + query
when a suggestion is selected.
2025-09-03 22:35:29 +08:00
Quorafind
7eb761e040 chore(release): bump version to 9.8.0-beta.15 [beta] 2025-09-03 22:23:40 +08:00
Quorafind
1cec2cce41 feat(tasks): add task deletion with cascade support
- Add delete task option to right-click context menu in TaskView
- Support cascade deletion for tasks with subtasks
- Show confirmation dialog with options when deleting parent tasks
- Emit TASK_DELETED event for dataflow synchronization
- Update Repository and TaskIndexer to handle task removal
- Extend WriteAPI and CanvasTaskUpdater for child task deletion
- Add i18n translations for delete-related messages

Implements complete task deletion workflow with parent-child relationship
handling, allowing users to delete individual tasks or entire task trees.
2025-09-03 22:16:52 +08:00
Quorafind
cbfb2fc872 feat(quick-capture): add start and scheduled date fields to electron quick capture
- Added start date and scheduled date input fields alongside existing due date
- Implemented separate date input toggles for each date field (picker/text mode)
- Refactored date handling to support multiple date types with consistent behavior
- Each date field has its own toggle button with appropriate emoji (🛫, 📅, )
- Enhanced natural language date parsing for all three date fields
- Updated task data structure to include startDate and scheduledDate properties
2025-09-03 20:39:06 +08:00
Quorafind
ae80f14fde feat(quick-capture): add electron-based quick capture window
Implement a new electron-based quick capture window for rapid task entry from system tray. Features include:
- Standalone capture window with optimized UI for fast task entry
- Smart task parsing with natural language support (tomorrow, next week, etc.)
- Project/context tag autocompletion from vault
- Keyboard shortcuts for priority setting and quick actions
- System tray menu integration with keyboard accelerator
- Automatic window management and proper cleanup on close

The quick capture window provides a distraction-free interface for capturing tasks
without needing to switch context to the main Obsidian window.
2025-09-03 16:41:07 +08:00
Quorafind
4a5ad5d96a chore(release): bump version to 9.8.0-beta.14 [beta] 2025-09-03 13:50:20 +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
fdde9b9195 chore(release): bump version to 9.8.0-beta.13 [beta] 2025-09-02 23:20:39 +08:00
Quorafind
6e20a7a879 feat(parser): add case-insensitive tag prefix matching
Implement case-insensitive matching for special tag prefixes (project, context, area) to improve user experience and consistency. Tags like #Project/foo and #project/foo now both correctly map to project metadata.

- Add lowercase key duplication in parser configuration
- Apply case-insensitive matching in both main and worker threads
- Merge configured prefixes with user-defined specialTagPrefixes
- Add debug logging for prefix resolution verification
2025-09-02 23:19:33 +08:00
Quorafind
77d21e4611 fix(dates): apply timezone handling to InlineEditor and TaskPropertyTwoColumnView
Extends the date display fix to remaining task view components to ensure
consistent date handling across the entire application.

- Update InlineEditor to use localDateStringToTimestamp for date storage
- Update TaskPropertyTwoColumnView to use timestampToLocalDateString for display
- Ensure all date inputs store dates at UTC noon for consistency

Part of the fix for timezone-related date display issues.
2025-09-02 12:46:09 +08:00
Quorafind
f1a3c10bcb fix(dates): correct timezone handling for date display in task views
Fixes incorrect date display when user's timezone differs from UTC. Dates stored
as UTC noon timestamps were showing off-by-one day in some timezones.

- Add date-display-helper utility to properly convert between UTC storage and local display
- Update TaskDetailsComponent to use new helper functions
- Update MetadataEditor to use consistent date conversion logic
- Add comprehensive tests for timezone edge cases

The fix ensures dates are consistently stored at UTC noon but displayed correctly
in the user's local timezone, preventing date shift issues.

Resolves: #419
2025-09-02 12:41:05 +08:00
Quorafind
059539456d chore(release): bump version to 9.8.0-beta.12 [beta] 2025-09-01 22:07:27 +08:00
Quorafind
26cd6028b8 fix: improve task regex to prevent matching nested brackets in status
Updated task regex pattern from [.] to [^\[\]]{1} to ensure only single
non-bracket characters are captured as task status. This prevents parsing
errors when task text contains square brackets.
2025-09-01 20:57:55 +08:00
Quorafind
d18267c095 fix(habits): improve habit sync and progress visualization
- Auto-refresh habit index when adding/editing/deleting habits in settings
- Integrate with dataflow TASK_CACHE_UPDATED event for better performance
- Fix count habit progress to show complete when meeting or exceeding goal
- Add fallback for legacy mode without dataflow enabled
2025-09-01 12:55:49 +08:00
Quorafind
40bb407f5d feat(habits): improve habit property handling and add reindex command
- Add slugify fallback for habit properties when not explicitly set
- Improve null/empty value checking with hasValue helper
- Add "Reindex habits" command for manual habit refresh
- Auto-refresh habits after dataflow rebuild
- Remove "Send Daily Summary" from tray menu and desktop integration
2025-09-01 09:57:35 +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
bd4623f409 refactor: rename DesktopIntegrationManager file to kebab-case and add multi-instance support
- Rename DesktopIntegrationManager.ts to desktop-integration-manager.ts for consistency
- Add app ID to tray singleton key to support multiple Obsidian instances
- Add @/ path alias to Jest configuration for cleaner imports
2025-08-31 10:22:39 +08:00
Quorafind
37b1ef04e4 chore(release): bump version to 9.8.0-beta.11 [beta] 2025-08-31 09:39:48 +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
57cbc1b66b chore(release): bump version to 9.8.0-beta.10 [beta] 2025-08-30 19:54:05 +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
1e20055903 feat(settings): improve heading filter UI and fix matching logic
- Replace comma-separated text fields with modal-based list editor for Focus/Ignore headings
- Add ListConfigModal component for managing string lists with add/delete functionality
- Fix heading matching by normalizing user input (removing # symbols) to match stored format
- Add proper handling for tasks without headings in filter logic
- Add visual feedback with item count display on configuration buttons
- Include keyboard shortcuts (Enter to add) in list editor
- Add notification to rebuild index after updating heading filters

The heading filters now correctly match tasks by comparing normalized heading text,
allowing users to input headings in natural markdown format (e.g., "## Project")
while the system properly matches against the parsed heading text.
2025-08-30 19:50:41 +08:00
Quorafind
ec92e2aed9 chore(release): bump version to 9.8.0-beta.9 [beta] 2025-08-30 10:18:09 +08:00
Quorafind
2d85f38750 fix: resolve memory leaks by adding proper cleanup handlers
- Add event listener cleanup in TaskRendererComponent to prevent memory leaks in Gantt view
- Improve tray lifecycle management with proper beforeunload handler cleanup
- Defer tray creation to avoid blocking plugin initialization
- Add performance timing for plugin load diagnostics
- Include console timing methods in production build purge list
2025-08-30 09:54:33 +08:00
Quorafind
29e000c334 fix(tray): add cleanup handler for hard reloads and improve electron API access
- Add beforeunload event listener to properly clean up tray on page reload
- Prefer electron remote API over renderer API for better cross-process support
- Apply consistent code formatting across WriteAPI and canvas-task-updater
- Prevent tray duplication issues during Obsidian hard reloads
2025-08-29 14:11:07 +08:00