4.9 KiB
4.9 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Added
- Friends feature: friends service, FriendsProvider, FriendsModal, Settings entry
- Assignee field on tasks (schema v7, model, types, forms, sync, taskActions)
- AssigneeSelector component and assignee display in TaskItem
- QuickAddBar on tasks overview (copied from calendar)
- Removed WheelTimePicker selection band highlighter
- Removed drag lift popup from TaskItem (scale + shadow on drag)
- Removed checkbox from task items
- Fixed selection bar overlapping QuickAddBar on tasks overview
- Backend: mounted friends route, added assigneeId to task validation and sync
Changed
- Due date prefilled from Calendar "+" button
- 12-hour time formatting across task rows and pickers
- Calendar strip scrolls to selected day when navigating months
- Calendar completion toggle now handles repeating tasks and reminders
- Task color strips now use the task's category color
Fixed
- WheelTimePicker FlatList scroll clamping: added contentContainerStyle paddingBottom so all hours (0-23) and minutes (0-59) are reachable via scrolling
- WheelTimePicker: added selection highlight background to WheelRow, visually connecting selected item with colon separator
- WheelTimePicker: fixed number alignment in scroll list (row width 100%, contentContainerStyle stretch)
- Tasks without a due date no longer get overdue styling
useOverdueTasksinfinite re-subscription loop (Date.now in effect deps)- Web/Android crashes from decorator transform ordering (babel config)
- FormButtons crash outside FormProvider; Cancel navigation fallback
- Task repeat settings, reminders and series info now sync to the backend (previously repeated tasks lost their repeat after sync)
Deprecated
- N/A
Removed
- Task color picker (task color now comes from its category)
Security
- N/A
[1.0.0] - 2026-08-05
Added
-
Core Features
- To-Do List screen with category filter
- Add New Task screen with all fields
- Calendar screen with date strip
- Settings screen
- Bottom navigation bar
-
Task Management
- Create, read, update, delete tasks
- Category organization (6 default categories)
- Priority levels (None, Low, Medium, High, Critical)
- Due dates and times
- Subtasks with unlimited nesting
- Descriptions (1000 chars)
- Task completion with visual feedback
- Overdue and due-today highlighting
-
Offline-First Architecture
- WatermelonDB with SQLite persistence
- Reactive queries for instant UI updates
- Background sync with custom API
- Conflict resolution (last-write-wins)
- Automatic default category seeding
-
User Interface
- Minimalist design with 8px grid
- Rounded containers (16-20px)
- Category color coding
- Smooth animations (150-250ms)
- Safe area support for notches
- Dark mode ready (toggle in settings)
-
Navigation
- Expo Router file-based routing
- Persistent bottom tabs (Tasks, Calendar, Settings)
- Modal stack for Add Task screen
- Type-safe navigation
-
Developer Experience
- TypeScript strict mode
- ESLint + Prettier configuration
- Path aliases (@/components, @/hooks, etc.)
- WatermelonDB decorators support
- React Hook Form + Zod validation
Technical Details
Database Schema
categoriestable (id, name, color, order, timestamps)taskstable (id, title, description, category_id, priority, completed, due_date, due_time, timestamps)subtaskstable (id, task_id, title, completed, order, timestamps)- Indexes on category_id, due_date, completed for performance
Sync Protocol
- Pull: GET /sync?since={timestamp}
- Push: POST /sync/push with batched changes
- Timestamp-based incremental sync
- Upsert semantics for conflict resolution
Components
Header- App logo + title with rounded cornersCategoryFilter- Horizontal scrollable chipsTaskList- Virtualized FlatList with sectionsTaskItem- Swipeable row with checkbox, title, priority, due date, menuFloatingActionButton- Animated FAB with rotationCategorySelector- Chip group for task creationDateTimePicker- Native date/time pickersPrioritySelector- Segmented control with colorsSubtasksSection- Dynamic field arrayFormButtons- Fixed bottom actions
Hooks
useDatabase- Database context + initializationuseCategories- Reactive category listuseTasks- Filtered task queries with loading stateuseTasksByDate- Calendar date queries
Version History Template
[X.Y.Z] - YYYY-MM-DD
Added
- New features
Changed
- Changes in existing functionality
Deprecated
- Soon-to-be removed features
Removed
- Removed features
Fixed
- Bug fixes
Security
- Vulnerability fixes