26 Commits

Author SHA1 Message Date
redz1029 5af0ce62d9 feat(notifications): day sheet notification types
Add daySheetId field to NotificationItem model (Brick-managed), extract
notificationTitle/notificationIcon to top-level testable functions, add
five day-sheet notification cases, and wire tap/banner routing for
day-sheet detail and approvals tab.
Co-Authored-By: claude-flow <ruv@ruv.net>
2026-09-28 14:54:19 +08:00
redz1029 3cb980b629 QA hardening: security RLS fixes, Flutter 3.47.5 upgrade, UI/validation fixes
Security — enforce write authorization server-side (was UI/RPC-only):
- it_service_requests RLS: block cross-office read/edit + self-approve (QA-015)
- pass_slips RLS: owner can complete but not self-approve (QA-046)
- swap_requests RLS: scope select/update to participants + admin (QA-047)
- storage: tighten it_service_attachments + task_attachments write/delete (QA-027)
- admin_user_management edge function: allow programmers to manage users (QA-016)

Fixes:
- workforce generator "uncovered shifts" false alarms (QA-043/044)
- network-map VLAN + New-location dialog validation, disabled-until-valid (QA-048)
- de-flake time-of-day-dependent dashboard metrics test (QA-045)

Toolchain:
- upgrade to Flutter 3.47.5 / Dart 3.13.4; font_awesome_flutter 11.0.0,
  flutter_quill 11.6.0, pdfrx 2.6.5; clear resulting deprecations (QA-002)

analyze clean; 139 tests pass; web build succeeds. Report + evidence in docs/qa/.

Note: also carries the in-progress Brick model cleanup already present in the
working tree. QA-001 (AI keys public in the build) is deferred by owner decision.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-09-26 11:52:16 +08:00
redz1029 e9d1af867a Notification Screen and tasq_adaptive_list enhancements 2026-05-11 11:34:34 +08:00
redz1029 f223d1f958 iOS PWA and IT Job Checklist for IT Staff view 2026-04-11 07:40:12 +08:00
redz1029 d484f62cbd Implement push notification reminder system with 9 notification types
Adds comprehensive push notification reminders using pg_cron + pg_net:
- Shift check-in reminder (15 min before, with countdown banner)
- Shift check-out reminder (hourly, persistent until checkout)
- Overtime idle reminder (15 min without task)
- Overtime checkout reminder (30 min after task completion)
- IT service request event reminder (1 hour before event)
- IT service request evidence reminder (daily)
- Paused task reminder (daily)
- Backlog reminder (15 min before shift end)
- Pass slip expiry reminder (15 min before 1-hour limit, with countdown banner)

Database: Extended scheduled_notifications table to support polymorphic references
(schedule_id, task_id, it_service_request_id, pass_slip_id) with unique constraint
and epoch column for deduplication. Implemented 8 enqueue functions + master dispatcher.
Uses pg_cron every minute to enqueue and pg_net to trigger process_scheduled_notifications
edge function, eliminating need for external cron job. Credentials stored in vault with
GUC fallback for flexibility.

Flutter: Added ShiftCountdownBanner and PassSlipCountdownBanner widgets that display
persistent countdown timers for active shifts and pass slips. Both auto-dismiss when
user completes the action. FCM handler triggers shift countdown on start_15 messages.
navigate_to field in data payload enables flexible routing to any screen.

Edge function: Updated process_scheduled_notifications to handle all 9 types with
appropriate titles, bodies, and routing. Includes pass_slip_id in idempotency tracking.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-20 18:26:48 +08:00
redz1029 3af7a1e348 Added configurable shift types and holiday settings 2026-03-18 16:51:34 +08:00
redz1029 9bbaf67fef A more robust self hosted OTA updates implementation 2026-03-13 07:15:28 +08:00
redz1029 9267ebee2c No need update check for web 2026-03-12 20:38:19 +08:00
redz1029 0bd2a94ece OTA Update attempt 2026-03-11 22:28:38 +08:00
redz1029 21e6d68910 Fixed In Progress ISR not reflecting on IT Staff Pulse Dashboard Status Pill
Made the Location Tracking more persistent
2026-03-11 07:43:14 +08:00
redz1029 ccc1c62262 Background location tracking 2026-03-09 22:33:35 +08:00
redz1029 d87b5e73d7 Team Color, image compression for attendance verification, improved wherebouts 2026-03-08 12:23:28 +08:00
redz1029 a8751ca728 Face Recognition with Liveness Detection for Web Support 2026-03-08 10:19:03 +08:00
redz1029 3dbebd4006 Attendance validation involving Location Detection + Facial Recoginition with Liveness Detection 2026-03-07 23:46:43 +08:00
redz1029 c6f536edeb Initial Commit: Duty Schedule and Attendance Logbook 2026-03-07 10:16:28 +08:00
redz1029 b5449f7842 Still some AI integration issues 2026-03-03 23:35:07 +08:00
redz1029 5713581992 Push notification tap redirect to corressponding ticket or task 2026-03-02 21:09:38 +08:00
redz1029 294d3f7470 Initial implementation of navigation from notification(not yet working) 2026-03-01 17:59:23 +08:00
redz1029 c9479f01f0 Implemented per stream subscription recovery with polling fallback 2026-03-01 17:24:04 +08:00
redz1029 e91e7b43d2 A bit of notification turn on reminder 2026-03-01 05:45:23 +08:00
redz1029 c5e859ad88 realtime controller 2026-02-28 19:45:21 +08:00
redz1029 dab43a7f30 A much more detailed notification 2026-02-27 07:05:08 +08:00
redz1029 9cc99e612a Allow background sound notification 2026-02-26 21:43:05 +08:00
redz1029 aef88de54b No notification permission enforcement on web 2026-02-25 18:39:39 +08:00
redz1029 5979a04254 * Push Notification Setup and attempt
* Office Ordering
* Allow editing of Task and Ticket Details after creation
2026-02-24 21:06:46 +08:00
redz1029 cc6fda0e79 Allow OS notifications 2026-02-23 22:19:23 +08:00