0.4.0 — 2026-09-03
Added
View modes
- Swimlanes: lane × time matrix with configurable axes (Project, Label, Priority, Parent task × Day/Week/Month)
- Project plan: project × time grid with configurable time bucket (Day/Week/Month), planning horizon (0–52), consolidated overdue column, undated tasks column, optional completed task display
- Heatmap: day cells toggled by due date / completions
- Calendar + tasks: event chips + tasks for selected day; Day/Week mode
Smart Views
- Filter bug fixed:
projectIdparsed to 0 instead of -1 when key was missing → smart views showed no results - Smart views count correctly in sidebar badges (computed on load, not on click)
- Dedicated "Smart Views" folder in sidebar (below Maintenance) with badge and navigation
- Alphabetical sorting of smart views in sidebar and KCM
- KCM Views: section order corrected — Smart Views above Kanban
KCM Views — Swimlanes
- Row axis: Project / Label / Priority / Parent task
- Column axis: Day / Week / Month
KCM Views — Project plan
- Time grouping: Day / Week / Month
- Planning horizon: 0–52 periods (0 = unlimited)
- Show undated tasks (own column)
- Show completed tasks (optional)
Merge conflict dialog
- Wizard style: one field at a time, Kurrent/Akonadi columns, chip rendering
- Overlay card (like FullEditor), D-Bus
testMergeConflictfor testing - Null guards, auto-resolve, stale echo guard
Other
- Project chip in task delegate (visible when no project filter active)
- Diagnostics KCM visible in dev builds only (
DevBuildMarker.qmlgenerated via CMake) - Auto-check allDay when date is entered without a time
- Quick-add: full editor opens when button is clicked with empty text
Fixed
- Smart View editor: replaced free-text fields with dropdowns (Project, Label, Status, Due, Priority)
upsertTask: reject revision-0 monitor updates when cache has a real revisionpersistTodo: refetch before modify when revision is 0configViews.qml: dialog content fills dialog space correctly (anchors.fill instead of Layout)- Sidebar: smart view counts precomputed (not only on click)
computeCounts: smart view badge count calculated correctly;matchesViewFilterdelegates to smart rules
Changed
- CalendarAgendaView: stable toolbar with fixed label width, icon-only Today button, animated Day/Week toggle
- Chunked model application for smoother animations
- Sidebar highlight animation, dimming removed
- Calendar event integration (opaque/busy events)
- Version 0.4.0 (CMakeLists.txt + metadata.json)
Tests
planMatrixGridOverdueConsolidationAndHorizon: overdue consolidation, horizon clipping, showCompleted, undated, day-bucketsmartViewFilterAppliesInComputeCounts: smart view rules affect sidebar counts- All 69 tests passing (100%)
Not yet manually tested
The following features are implemented and unit-tested but have not been manually verified in a live environment.
- Swimlanes mode: matrix display, axis switching, touch interaction
- Project plan: overdue column, horizon clipping, undated column, show completed toggle
- Kanban DnD: card dragging between columns, field writes per source
- Merge conflict dialog: wizard flow, DBus test, editor integration
- Multi-select + bulk actions: complete/delete/reschedule/move/copy UIDs
- KRunner:
task today,task <search>, add task - Global shortcuts: Meta+Shift+K/N, D-Bus show/addTask
- Offline/syncing banner: Akonadi offline (red), Syncing… (yellow)
- KCM Swimlanes/Project plan: settings applied correctly and restored after restart
- i18n: German strings for new swimlanes/plan options; fallback checks in de/es/fr/ja/zh_CN