User-facing changes
- Updated inventory filter names and added a new confirmed dropoff inventory filter
- Improved front-end performance for Form Submissions
- Allowed job viewers to open EP-owned submissions
- Fixed cloned follow-up jobs so they open outside the request drawer
- Added a confirmation modal when saving field sets used by activities
- Enabled copying field sets from the field set list
- Changed the price book data grid column order
- Fixed job PDF line-item ordering so it matches job line item order
- Fixed custom field archive behavior for archived field sets
- Fixed the requested stop position behavior
- Changed the jobs map to use the unioned access scope behind a per-tenant flag [per-tenant flag]
Internal changes
- Added signed file links and attachments to job exports
- Fixed job export loading for unassigned jobs
- Improved submission access lookup performance
- Improved custom field-set composition and activity form queries
- Fixed archived custom fields so they can be archived even when their field set is archived
- Added support for previewing empty legacy custom-field schemas
- Updated price book metadata sync handling
- Expanded field-set access so non-global admins with workflow manager assignment access can manage field sets
- Made cluster-safe resource location reads and added an exception-spike alert
- Consolidated infra/ and docs/ after the staging cutover
- Retired duplicate App Configuration seed values for revision environment settings
- Updated PR CI to run on PRs targeting any branch
- Converted sensor_reading_history to a hypertable for better time-series performance
- Moved staging Sensors, Marten, and task history to greenfield PostgreSQL
- Moved staging Locations and Martin to the greenfield mapping database
- Gave Quartz its own database and access group