Fixes#812
When creating a "Monthly on weekday" recurring task, the selector would
jump back to Monday when trying to select Sunday. This was caused by using
the logical OR operator (||) instead of the nullish coalescing operator (??)
when handling the recurrence_weekday value.
Since Sunday is represented as 0, the || operator treated it as falsy and
defaulted to null/undefined, which then defaulted to 1 (Monday).
Changes:
- Replace || with ?? for recurrence_weekday in TaskRecurrenceCard.tsx
- Replace || with ?? for recurrence_weekday in TaskDetails.tsx
- Also fix recurrence_week_of_month and recurrence_month_day for consistency
This commit addresses a critical bug where subtasks would disappear when
updating the parent task (e.g., assigning tags). The issue had multiple
potential causes:
1. Backend vulnerability: The updateSubtasks() function would delete all
subtasks if an empty array was sent, treating it as "delete everything
not in this list"
2. Frontend state management: After reloading a task, subtasks weren't
being preserved if the backend response didn't include them
3. Unclear error messages: "Invalid parent task" errors didn't provide
enough context for debugging
Changes:
- Added defensive logging in updateSubtasks() to warn when all subtasks
are being deleted with an empty array
- Enhanced validateParentTaskAccess() error messages to provide detailed
diagnostics (task not found vs. permission issues vs. wrong user)
- Updated handleTagsUpdate() in TaskDetails to explicitly preserve
subtasks when reloading task after tag updates
This fix is defensive in nature and adds better observability for
diagnosing similar issues in the future.
Fixes issue reported by user where subtasks disappeared after assigning
tags to parent task, and "Invalid parent task" errors occurred when
trying to update the orphaned subtasks.
* Fix critical bug causing subtasks to disappear when updating parent task
This fixes a serious bug where updating tags, priority, status, or due_date
on a parent task would inadvertently delete all its subtasks.
Root Cause:
1. Backend serializer returns `subtasks: []` when Subtasks association is not loaded
2. Frontend was spreading entire task object when updating, sending `subtasks: []`
3. Backend updateSubtasks() interpreted empty array as "delete all subtasks"
Solution:
Remove object spreading from updateTask calls. Only send the specific fields
being updated, not the entire task object.
Fixes the issue reported where assigning tags to a task caused subtasks to vanish.
Related: #TBD (GitHub issue to be created)
* fix: upgrade dependencies to resolve security vulnerabilities
- jest-environment-jsdom: 29.0.0 → 30.3.0
- nodemailer: 7.0.10 → 8.0.4
- sqlite3: 5.1.7 → 6.0.1
All npm audit vulnerabilities resolved (20 high/critical → 0).
Tests passing (1157 pass, 1 pre-existing failure unrelated to upgrades).
* Break down TaskModal
* Fix an issue with counting past times
* Add daily reccurence on week
* fixup! Add daily reccurence on week
* fixup! fixup! Add daily reccurence on week
* Improve recurring widget on task page
* fixup! Improve recurring widget on task page
* Expose today task from a recurring series
* fixup! Expose today task from a recurring series
* fixup! fixup! Expose today task from a recurring series
- Update all entities to include UID field
- Convert components to use UID for navigation and links
- Update services to support UID-based API calls
- Add slug utilities for UID extraction
- Update store to handle UID fields
- Fix routing throughout all components