tasq/RELEASE_NOTES.md

81 lines
5.6 KiB
Markdown

# TasQ Release Notes
Version: 0.0.1.0
Date: 2026-04-09
## Overview
This release brings significant new feature work on top of the initial core: a full Announcements module with push notifications, an IT Job Checklist tab, a My Schedule tab in Attendance, workforce swap improvements, and a more robust realtime notification system. UI consistency has been improved throughout with M3 motion and refined snackbar messaging.
## Working Features
- **Tickets**: Create, view, and manage tickets. Basic assignment and status updates are functional with server-side querying and provider-driven UI flows. IT service request UI has been improved with better TicketPromotion screens.
- **Tasks**: Task creation, listing, and updates are implemented. Includes an IT job printout feature for exporting/printing IT job details and work instructions.
- **IT Job Checklist**: A dedicated IT Job Checklist tab is available on task detail screens. Tracks print history and enforces a reminder cooldown to prevent notification spam. Immediate feedback is shown when sending IT job reminders.
- **Task Assignment**: IT staff may be assigned to multiple tasks simultaneously; the assignment dialog no longer restricts based on current active work. The dialog shows a loading spinner while saving and displays success/error snackbars.
- **Announcements**: Full announcements module including banner support, templates, and comments. Push notifications are delivered for new announcements and comment events. Snackbar feedback is shown on announcement events and comment notifications.
- **Attendance — My Schedule**: A new My Schedule tab in the Attendance screen allows users to view their schedule for 1 Day, a Whole Week, or a custom Date Range.
- **Notifications**: Notification screen handles announcement notifications and IT job reminders. Notification messages have been improved for clarity.
- **Realtime Controller**: Per-channel recovery status tracking so the app can independently recover each realtime subscription after a connection drop.
- **Workforce**: Workforce swap lifecycle improvements including target shift selection and recipient change flows.
- **User Management**: Admins can create and manage user profiles and roles. Authentication flows and profile providers are in place for role-based access.
- **Office Management**: Offices can be created and maintained; users and tasks may be scoped by office for filtered views.
- **Initial Geofencing**: First-pass geofencing (admin creation of geofences, basic detection hooks). Intended for iteration — see roadmap.
## Known Limitations
- Geofencing lacks advanced triggers, notifications, and full device offline handling.
- Duty scheduling is functional but will be improved for complex shift patterns and repeats.
- Reports and events are not yet implemented.
- Offline support (local caching, queued mutations, background sync) is not yet available.
## Roadmap (Planned Features)
- **Events**: Event creation, RSVP/attendance tracking, and calendar integrations.
- **Reports**: Exportable CSV/PDF reports for tickets, tasks, and workforce metrics.
- **Improved Duty Schedules**: Advanced scheduling, repeating patterns, and approval workflows for duty swaps.
- **Geofencing (Full Rollout)**: Robust geofence lifecycle, realtime triggers/notifications, user/device-level state, and integration with duties and timekeeping.
- **Offline Support**: Local caching, queued mutations, and background sync for intermittent connectivity.
## Tests and Quality
Tests are under `test/` and cover the following areas:
| File | Coverage |
| --- | --- |
| `announcements_test.dart` | Announcement model parsing, banner logic |
| `app_time_test.dart` | Time utility functions |
| `auto_assign_test.dart` | Auto-assignment logic |
| `dashboard_metrics_provider_test.dart` | Dashboard metrics provider |
| `geofence_admin_screen_test.dart` | Geofence admin screen rendering |
| `geofence_test.dart` | Geofence model and detection logic |
| `it_job_checklist_test.dart` | Task IT job fields, NotificationItem announcement support |
| `layout_smoke_test.dart` | Screen rendering, dialog interactions |
| `leave_stream_update_test.dart` | Leave stream update handling |
| `profile_screen_test.dart` | ProfileScreen fields and save actions |
| `searchable_multi_select_dropdown_test.dart` | Searchable dropdown widget |
| `supabase_response_test.dart` | Supabase response parsing |
| `task_assignment_section_test.dart` | TaskAssignmentSection widget |
| `tasks_provider_test.dart` | TasksController completion rules, Task.hasIncompleteDetails |
| `teams_screen_test.dart` | Teams screen rendering |
| `theme_overhaul_test.dart` | AppTheme M3 tokens, TasQAdaptiveList |
| `ticket_promotion_integration_test.dart` | Ticket promotion integration flow |
| `typing_dispose_race_test.dart` | Race condition on controller dispose |
| `user_management_screen_test.dart` | UserManagementScreen admin actions |
| `workforce_swap_test.dart` | WorkforceController, swap lifecycle |
Run `flutter analyze` and `flutter test` before release to ensure all tests pass.
## Developer Notes
- Follow the repository's CLAUDE.md / `.github/copilot-instructions.md` guidance for theming, server-side pagination, and provider patterns.
- Key folders: `lib/providers/`, `lib/routing/`, `lib/screens/`, `test/`.
- Push notification delivery depends on the Supabase `pg_cron` migration jobs being applied. See `supabase/migrations/` for the relevant migration files.
- M3 motion tokens are defined in `lib/theme/m3_motion.dart`.
## Next Steps
- Stabilize geofencing triggers and notification paths.
- Implement reports with RBAC checks.
- Add offline sync, prioritize duty schedule improvements, and add event/calendar support.