# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [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 - `useOverdueTasks` infinite 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 - `categories` table (id, name, color, order, timestamps) - `tasks` table (id, title, description, category_id, priority, completed, due_date, due_time, timestamps) - `subtasks` table (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 corners - `CategoryFilter` - Horizontal scrollable chips - `TaskList` - Virtualized FlatList with sections - `TaskItem` - Swipeable row with checkbox, title, priority, due date, menu - `FloatingActionButton` - Animated FAB with rotation - `CategorySelector` - Chip group for task creation - `DateTimePicker` - Native date/time pickers - `PrioritySelector` - Segmented control with colors - `SubtasksSection` - Dynamic field array - `FormButtons` - Fixed bottom actions #### Hooks - `useDatabase` - Database context + initialization - `useCategories` - Reactive category list - `useTasks` - Filtered task queries with loading state - `useTasksByDate` - 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