Commit graph

1313 commits

Author SHA1 Message Date
callumalpass
ee894d99e0 docs: update unreleased.md with issue #766 fix
Add entry documenting the fix for tag parsing false positives where tags
containing "task" (like "pkm-task") were incorrectly identifying notes as
task notes.
2025-09-29 19:14:56 +10:00
callumalpass
17b75715ea chore: fix all linting errors and improve code quality
- Fix lexical declaration errors by adding proper block scopes to case statements
- Remove unused variables, parameters, and imports across the codebase
- Replace innerHTML usage with safe DOM manipulation methods for security
- Fix unnecessary escape characters in regex patterns
- Resolve invalid 'this' usage in arrow functions
- Fix NodeJS timer type declarations
- Remove unused functions and dead code
- Fix TypeScript @ts-expect-error directive issues

Reduces lint issues from 92 total (41 errors + 51 warnings) to 51 warnings only.
All remaining issues are style preferences rather than actual code problems.
2025-09-29 19:14:38 +10:00
callumalpass
c2863154d1 fix: prevent false positive task identification for tags containing "task"
Resolves #766 where tags like "pkm-task" were incorrectly identified as
task tags due to substring matching fallback in tag parsing.

- Add FilterUtils.matchesHierarchicalTagExact() for precise task identification
- Update MinimalNativeCache to use exact matching instead of substring fallback
- Preserve substring matching for filter bar functionality where it's desired
- Only exact matches or hierarchical children (like "task/work") now identify tasks

This prevents notes with tags like "pkm-task", "important-task", etc. from
being incorrectly treated as task notes while maintaining proper hierarchical
tag support.
2025-09-29 19:14:00 +10:00
callumalpass
3effc4b551
Merge pull request #770 from callumalpass/issue768
Fix: Prevent calendar crashes from invalid time configuration values
2025-09-29 18:49:06 +10:00
callumalpass
e056e89a9a docs: update unreleased.md format and add attribution
- Add changelog format comments for consistency
- Simplify section structure to match changelog conventions
- Add thanks to @kmaustral for issue #768 report
- Improve formatting with bullet points for sub-items
2025-09-29 18:48:28 +10:00
callumalpass
fe92f7696b docs: replace CHANGELOG.md with docs/releases/unreleased.md
- Remove CHANGELOG.md in favor of existing release notes format
- Add unreleased.md to track changes between releases
- Maintains consistency with established docs/releases/ pattern
- Includes #768 calendar fix in unreleased changes
2025-09-29 18:45:14 +10:00
callumalpass
7bba8b6985 docs: add CHANGELOG.md with issue #768 entry
Track resolved issues between releases following Keep a Changelog format
2025-09-29 18:42:11 +10:00
callumalpass
f181d90c03 fix: prevent calendar crashes from invalid time configuration values
- Add robust time validation in settings UI with debouncing
- Add runtime sanitization in calendar view with safe defaults
- Prevent "Cannot read properties of null (reading 'years')" error
- Fixes issue #768 where calendar view appears empty

Time settings now fallback to safe defaults (00:00:00, 24:00:00, 08:00:00)
when invalid values like "-:00" are detected, ensuring calendar always loads.
2025-09-29 18:17:58 +10:00
callumalpass
6c56d02ba2 release 3.24.1 2025-09-28 20:22:15 +10:00
callumalpass
c48ca51fb0 fix: task card widget now only appears on actual task notes
The task card widget was appearing on all notes instead of just task notes.
Fixed by using getCachedTaskInfoSync which includes the isTaskFile check,
ensuring the widget only displays for files identified as tasks.
2025-09-28 20:20:43 +10:00
callumalpass
bb5d617c3a
Update README.md 2025-09-28 20:11:49 +10:00
callumalpass
22a420c05d release 3.24.0 2025-09-28 20:08:21 +10:00
callumalpass
65b0ff390c
Merge pull request #761 from callumalpass/update-translations-3.24
feat: complete missing translations and add features tab descriptions
2025-09-28 19:54:18 +10:00
callumalpass
fbfe757771
Merge pull request #760 from callumalpass/issue584
feat: add hierarchical tag support with exclusion patterns
2025-09-28 19:52:52 +10:00
callumalpass
0d871c870a feat: complete missing translations for all languages
- German (de): 99% complete - added ~70 missing translation keys
- Spanish (es): 99% complete - added ~70 missing translation keys
- French (fr): 98% complete - added ~45 missing translation keys
- Japanese (ja): 95% complete - significant progress on missing keys
- Russian (ru): 97% complete - added missing feature descriptions
- Chinese (zh): 95% complete - substantial translation additions

Key additions across all languages:
- UI elements for task dependencies (blockedBy, blocking)
- Task organization features (projects, subtasks)
- Advanced calendar timeblocking functionality
- Settings descriptions for all major feature sections
- Context menu translations for task management
- Modal dialog text for task creation and editing

Fixed syntax errors in German and Spanish files caused by quote conflicts.
Updated i18n manifest and state files to reflect translation progress.
2025-09-28 19:50:11 +10:00
callumalpass
9a6aaeca2f feat: add missing english translations for features tab descriptions
- Add descriptions for dataStorage, notifications, performance, timeTrackingSection, and recurringSection
- Add timeblocking description with Shift+click usage instructions
- Add timeblocking usage text with detailed interaction guide
- Update i18n manifest and state files for proper translation tracking
2025-09-28 19:19:10 +10:00
callumalpass
2ebb52c5e6
Merge pull request #757 from callumalpass/issue557
feat: add separate overdue section to Agenda view
2025-09-28 19:06:51 +10:00
callumalpass
75d4c133e1 feat: add hierarchical tag support with exclusion patterns
Implements hierarchical tag matching for Obsidian nested tags where
searching for 't/ef' matches 't/ef/project', 't/ef/task', etc.

Features:
- Hierarchical matching: 't/ef' matches child tags like 't/ef/project'
- Exclusion patterns: '-t/ef/bug' excludes specific tags and children
- Backward compatibility: substring matching preserved for existing filters

Changes:
- Enhanced FilterUtils with hierarchical tag matching logic
- Updated FilterBar tag filtering to support new matching rules
- Enhanced project autosuggester tag filtering
- Improved task identification by tags with hierarchical support

Fixes #584
2025-09-28 19:04:35 +10:00
callumalpass
d33cebf9f5 chore: update i18n manifest and state files for overdue section translations 2025-09-28 18:28:08 +10:00
callumalpass
62729e45e0 fix: anchor overdue agenda tasks to real dates 2025-09-28 18:24:08 +10:00
callumalpass
eae6e3e678 feat: include overdue recurring tasks in overdue section
- Include recurring tasks in overdue section when their scheduled date is past
- For recurring tasks, only check the scheduled date (current instance date)
- Scheduled date updates automatically when recurring task is completed
- Maintains existing behavior for non-recurring tasks (check both due & scheduled)

This addresses the core issue in #557 where overdue recurring tasks were
not appearing in the agenda view at all.
2025-09-28 18:03:34 +10:00
callumalpass
f6ff8af6ab feat: add separate overdue section to Agenda view
- Add new FilterService methods for handling overdue tasks separately
- Create dedicated overdue section that appears above regular agenda days
- Change view option label from "Show overdue on today" to "Show overdue section"
- Maintain backward compatibility with existing settings
- Add collapsible overdue section with task completion statistics
- Support both grouped and flat agenda view modes
- Add i18n translations for overdue section

Addresses issue #557 - overdue tasks now have their own section instead
of being mixed into today's section, making the agenda view cleaner.
2025-09-28 18:00:51 +10:00
callumalpass
106c7103d1
Merge pull request #756 from callumalpass/issue430
feat: Add completed date as grouping option
2025-09-28 17:48:57 +10:00
callumalpass
8eed98865d fix: add completedDate to second group options definition in FilterBar
Fixes issue where completedDate was visible in subgroup dropdown but not
in main group dropdown due to missing entry in second builtInGroupOptions.
2025-09-28 17:46:33 +10:00
callumalpass
4bcee2654b feat: add full grouping and sorting support for completed date
- Add completedDate to TaskSortKey type for sorting support
- Implement getCompletedDateGroup method for proper grouping logic
- Add compareStatuses method for status sorting (from issue #633)
- Add completedDate case to main grouping switch statement
- Add completedDate case to group sorting with chronological order
- Add completedDate sorting case to handle date comparisons

Now users can both group AND sort by completed date, with proper
chronological ordering (newest first) and "Not completed" items
placed at the end.
2025-09-28 17:41:15 +10:00
callumalpass
f15b214ccd feat: add completed date as grouping option
- Add "completedDate" to TaskGroupKey type definition
- Include completedDate in FilterBar and SubgroupMenuBuilder grouping options
- Add English translation for completed date grouping
- Update i18n manifest and state files

This allows users to group tasks by their completion date to analyze
productivity and see what was accomplished on specific days.

Fixes #430
2025-09-28 17:36:15 +10:00
callumalpass
d2473e0cf6
Merge pull request #755 from callumalpass/issue633
Fix: Add status as sorting option in Kanban and Task List views
2025-09-28 17:31:43 +10:00
callumalpass
a24691df33 fix: add status as sorting option in Kanban and Task List views
- Add "status" to TaskSortKey type definition
- Include status in FilterBar sort options for both desktop and mobile interfaces
- Add status sorting translations for all supported languages

Fixes #633
2025-09-28 17:30:38 +10:00
callumalpass
db69dd440d
Merge pull request #754 from callumalpass/issue635
Fix HTTP API task creation response consistency
2025-09-28 17:25:52 +10:00
callumalpass
d8d73a04dc
Merge pull request #753 from callumalpass/project-improvements
Add project and subtask management to task modals
2025-09-28 17:19:19 +10:00
callumalpass
3e93816a0a fix: ensure HTTP API returns sanitized task title
Fix issue where POST /api/tasks returned the original unsanitized
title while the actual task file used a sanitized version. Added
title sanitization to TaskService.createTask() to ensure consistency
between API response and stored content.

- Add sanitizeTitle method to remove problematic characters
- Export sanitizeForFilename for broader use
- Ensure API response matches actual task file content

Fixes #635
2025-09-28 17:17:23 +10:00
callumalpass
cb2f87ecbd test: add sanitizeForFilename mock for testing
Add mock implementation of sanitizeForFilename function to support
testing of title sanitization functionality. This enables proper
testing of the HTTP API task creation response consistency.

Related to #635
2025-09-28 17:17:16 +10:00
callumalpass
5b4a1155a5 chore: sync i18n files 2025-09-28 17:00:39 +10:00
callumalpass
b3edfdbec0 Clean up unused variables and imports
- Remove unused icon parameters in action callbacks
- Remove unused Setting variables (projectSetting, subtaskSetting)
- Remove unused query parameters in suggestion methods
- Remove unused TAbstractFile import
- Remove unnecessary TypeScript directive

All TypeScript and ESLint warnings resolved while maintaining functionality.
2025-09-28 16:47:41 +10:00
callumalpass
3b6f46728f Enhance project and subtask management UI 2025-09-28 16:42:41 +10:00
callumalpass
7d168daebf
Merge pull request #750 from callumalpass/blockedby-9253
blockedby 9253
2025-09-28 15:45:06 +10:00
callumalpass
249cde274f docs: describe task dependencies 2025-09-28 15:42:14 +10:00
callumalpass
f471cbe6a6 chore: update i18n manifest and state files 2025-09-28 15:37:50 +10:00
callumalpass
a0f344f951 Prevent parent task click when interacting with blocking list 2025-09-28 15:34:44 +10:00
callumalpass
f8ba9a9920 Improve task dependency modelling and selection UI 2025-09-28 15:28:41 +10:00
callumalpass
8c85806b83
Merge pull request #749 from callumalpass/eslint-fixes-reapply
fix: reapply ESLint improvements from reverted PR 747
2025-09-28 13:34:18 +10:00
callumalpass
7dbc414200 fix: resolve test failures and add remaining eslint-disable comments
- Fix TaskService test mocks to use mockImplementation instead of mockRejectedValue
  since updateTaskInfoInCache is now synchronous (no longer async)
- Add eslint-disable no-console comments to remaining console statements in TaskService
- Tests now pass successfully with proper error handling validation
2025-09-28 13:30:04 +10:00
callumalpass
d9853c58a2 chore: update i18n manifest and state files
- Add new translation keys for blockedBy, blocked, and blocking fields
- Sync manifest with 1347 keys from en.ts
- Update state for all supported locales (de, es, fr, ja, ru, zh)
2025-09-28 13:25:16 +10:00
callumalpass
8046e3dd68 Complete comprehensive ESLint fixes - approaching PR 747 target
- Fixed remaining console statements in WebhookController.ts and PomodoroView.ts
- Removed 6 unnecessary await statements from non-Promise methods
- Cleaned up 18 unused variable declarations and imports
- Fixed 20 non-null assertion warnings with safe alternatives using optional chaining

Progress: reduced from 209 to 97 ESLint problems (112 total issues fixed)
Original PR 747 target: 84 problems (now only 13 problems away!)

Major improvement in code quality and TypeScript safety.
2025-09-28 13:21:34 +10:00
callumalpass
10c6c90dd6 Complete major ESLint fixes from original PR 747
Applied eslint-disable no-console comments to all remaining files from original commit:
- All service files (AutoArchive, AutoExport, Notification, ProjectSubtasks, TaskStats, ViewState)
- Modal files (ICSEvent, ICSNoteCreation, TaskEdit)
- Utility files (MinimalNativeCache, viewOptimizations)
- View files (AdvancedCalendarView)

Progress: reduced from 209 to 151 ESLint problems (58 issues fixed)
Target was 84 problems from original PR, suggesting codebase has grown since then.
2025-09-28 12:45:02 +10:00
callumalpass
ddceac511a Continue ESLint fixes: add console disable comments to services and UI
- Add eslint-disable no-console comments to PomodoroService.ts, HTTPAPIService.ts, TaskCard.ts
- Fix unused variable warning in ViewPerformanceService.ts
- Progress: reduced from 209 to 169 ESLint problems (40 issues fixed)

Still need to reach original PR's target of 84 total problems.
2025-09-28 12:40:15 +10:00
callumalpass
a14456cb1a Apply partial ESLint fixes from original PR 747
- Add eslint-disable no-console comments to main.ts, api.ts, base-view-factory.ts, PerformanceMonitor.ts, registration.ts
- Replace require() with ES6 imports in base-view-factory.ts and main.ts
- Remove unnecessary await from non-async updateTaskInfoInCache calls in TaskService.ts
- Progress: reduced from 209 to 176 ESLint problems (33 issues fixed)

Still need to complete remaining fixes to reach original PR's 84 total problems.
2025-09-28 12:38:03 +10:00
callumalpass
4d1a353bd0
Merge pull request #748 from callumalpass/prettier-reapply
feat: configure Prettier formatter and resolve linting issues (reapplied)
2025-09-28 12:29:57 +10:00
callumalpass
4330079f94 fix: apply prettier formatting to resolve linting issues
Apply Prettier formatting across the entire codebase to improve code
consistency and resolve formatting-related linting issues. This includes
standardizing:

- Tab-based indentation (4 spaces)
- Consistent quote usage
- Trailing commas where appropriate
- Bracket spacing and line breaks
- Import/export formatting

This brings the total linting issues down significantly while maintaining
code readability and establishing a consistent code style foundation.
2025-09-28 12:28:35 +10:00
callumalpass
632c5486ff feat: configure Prettier formatter and improve linting setup
- Add Prettier with tab-based configuration matching existing EditorConfig
- Install eslint-config-prettier and eslint-plugin-prettier for integration
- Add format and format:check scripts for code formatting
- Update ESLint configuration to integrate with Prettier

This reapplies the Prettier configuration from PR #747 which was previously
reverted, now rebased onto the current main branch with dependency features.
2025-09-28 12:28:12 +10:00