152 lines
4.9 KiB
Markdown
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 |