Files
2026-08-06 11:16:47 +02:00

152 lines
4.9 KiB
Markdown

# 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