v111.5.0
Pre-release
Pre-release
111.5.0 (2026-07-20)
Features
- activity: add (organizationId,employeeId,recordedAt) + (organizationId,recordedAt) indexes (ee14da6)
Bug Fixes
- activity: always persist recordedAt on bulk save (client value → date+time → now) (7d3925b)
- activity: guarantee recordedAt on every write path via ActivitySubscriber.beforeEntityCreate (8781deb)
- activity: guard against Invalid Date when deriving recordedAt in subscriber (a96a097)
- activity: guard recordedAt range filter when start/end absent (match MikroORM) (296edcf)
- activity: validate recordedAt from any source + cover update path (beforeEntityUpdate) (66eda97)
- migration: backfill recordedAt + new Error() + dedupe pg/sqlite index DDL (49a851e)
Performance Improvements
- activity: filter reports on indexed recordedAt instead of non-sargable concat(date,time) (451bce5)
- statistic: filter activity stats on indexed recordedAt instead of non-sargable concat(date,time) (e4b64b9)
Code Refactoring
- activity: derive recordedAt with native Date instead of moment (e0345c5)
- activity: drop redundant per-handler recordedAt (now guaranteed in subscriber) (2bc340f)
What's Changed
- perf(activity): make Time & Activity reports index-driven via recordedAt + always persist recordedAt by @evereq in #9811
Full Changelog: v111.4.1...v111.5.0