M4: percent-complete, conflict-safe saves & subtask reparent
All checks were successful
CI / ci (push) Successful in 6m49s
All checks were successful
CI / ci (push) Successful in 6m49s
M3 detail/edit polish: - "Progress" slider on the edit form writes Tasks.PERCENT_COMPLETE (clamped 0-100, 5% detents); status stays owned by the complete toggle. - Conflict-safe saves: updateTask re-checks the provider's last_modified against the value captured when the form loaded and throws TaskConflictException; the editor offers overwrite-or-cancel instead of clobbering an external change. M4 subtasks (UI): - Reparent: a "Parent task" picker files a task under any top-level task in its list (or "None" to promote it); candidates stay top-level to keep nesting one level deep. Switching list clears the now-invalid parent. - Tapping a subtask opens its own detail (a new TaskDetail entry, own VM). Tests: percent clamping, parent-id write, populatedFields reveal logic. Docs: ROADMAP M2/M3/M4 reconciled to the codebase; CHANGELOG [Unreleased]. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
25
CHANGELOG.md
25
CHANGELOG.md
@@ -6,6 +6,31 @@ the source of truth for version codes (see Calendula's `docs/RELEASING.md`).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
- M3 detail/edit polish: a "Progress" slider (percent-complete, 5% detents,
|
||||
written to `Tasks.PERCENT_COMPLETE`) and conflict-safe saves — `updateTask`
|
||||
re-checks the provider's `last_modified` against the value captured when the
|
||||
form loaded and surfaces an overwrite-or-cancel prompt instead of clobbering an
|
||||
external change (e.g. a DAVx5 sync).
|
||||
- M4 subtasks (UI): reparent — a full-width, searchable "Parent task" sheet on
|
||||
the edit form, with candidates grouped by due-date section, files a task under
|
||||
any active top-level task in its list (or "None" to promote it); switching list
|
||||
clears the now-invalid parent. Tapping a subtask in the detail screen opens its
|
||||
own detail, which shows a "Part of …" parent card. On the task list a parent has
|
||||
a dedicated expand button that reveals its children as a nested grouped run,
|
||||
ending with an inline "add a subtask" row (an opt-out toggle is planned for the
|
||||
M6 settings screen).
|
||||
- Priority is coloured by level (green / amber / red pastels) on the list, detail,
|
||||
and edit screens.
|
||||
|
||||
### Fixed
|
||||
- Overview open-counts now count top-level tasks only, so subtasks — and
|
||||
especially open subtasks under a completed parent — no longer inflate a list's
|
||||
"N open" or the smart-list counts.
|
||||
- Swipe-to-delete now reveals its red background + icon as you drag (tracking the
|
||||
live direction, not just the settled target), and a floating "Deleted · Undo"
|
||||
chip defers the actual delete so it can be restored.
|
||||
|
||||
## [0.1.0] - 2026-06-18
|
||||
|
||||
### Added
|
||||
|
||||
Reference in New Issue
Block a user