This commit is contained in:
+152
@@ -0,0 +1,152 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user