QA Batch: Admin Email Reminders & Page Statistics, Vendor Upload Activity & Cloud Uploads, Mail Documents Tabs
Executive summary
This batch promotes a large set of development changes into the QA environment for testing. Headline additions span three apps: a new Admin scheduled Email Reminders manager and a Page Statistics dashboard with per-entity cost configuration, a redesigned Vendor upload experience (tabbed local/cloud upload modal plus a new Upload Activity page), and In Progress / Completed tabs on the Mail documents page. Several supporting fixes and a shared rich-text editor migration are also included.
Why this was needed
Development work had accumulated multiple distinct features and fixes that needed to reach QA together so they can be validated as a release candidate. Individually, the changes address real gaps: administrators had no UI to schedule recurring email reminders or to see page-count and cost reporting; vendor users could only upload local files (no cloud sources) and had a dated tasks page; and mail users had no way to separate documents still in processing from completed ones.
Client / user impact
- Admin users gain two new portal areas: an Email Reminders manager (create/edit schedules with a visual cron/schedule builder, recipient management, pause/resume, send test email, and execution history) and a Page Statistics dashboard with drill-down from Client to Document and editable default/per-entity costs.
- Vendor users get a tabbed upload modal supporting cloud sources (Filestack) alongside local split-and-upload, and a new Upload Activity page with Tasks and Files tabs, inline filters, and a calendar date-range picker.
- Mail users can now filter the documents page by In Progress vs Completed; In Progress documents are restricted to download-only to prevent edits while processing.
- All changes are in QA only and not yet visible to Production users.
Technical scope
Grounded in the diff/file list:
- Admin – Email Reminders (new): full CRUD via new
email-reminder.service.ts, TanStack queries/mutations, types, and routes; UI componentsEmailReminderFormDialog,ScheduleBuilder,TimePicker,DaySelector,RecipientManager,EmailPreview,ExecutionLogsDialog, plus list page and table utils. Editor migrated from TipTap to CKEditor 5 (@ckeditor/ckeditor5-react,ckeditor5added toapps/admin/package.json). - Admin – Page Statistics (new): summary cards, filters, breadcrumb drill-down, grid, and
CostConfigDialog(default + entity cost sections); new types, routes, services, queries/mutations. - Mail – Documents: In Progress/Completed tabs on
documents/page.tsxbehind adocumentsInProgressTabfeature flag using anexclude_completedquery param;hideMailSelectoronAddDocumentModal(optionalmail_id); download-only action filtering and a dropdown-separator fix indrawer-actions; status-dropdown fix inUpdateDocumentStatusModal. - Vendor: new tabbed
UploadModalwithCloudUploadTab/LocalUploadTaband auseFilestackInlinePickerfix (accumulate files, explicit Done); newupload-activitypage (TasksTab,FilesTab,InlineFilters,PaginationToolbar,date-range-picker) replacing the old side-drawer filters and/taskspage; nav/route updates and a layout hydration fix. - Shared: new
@dsm/ui/rich-text-editor(CKEditor 5) consumed by admin. - CI/chore:
.github/workflows/docker-ecr.ymlcorrected to use QA-specific webhook/API/socket secrets and URLs per branch. - Note: the Email Reminders UI was reverted and re-added within this batch; the net result is the re-added implementation. Significant refactors split large files to meet the 300-400 line style guide.
Risk & mitigation
Moderate, given the breadth of new code (~10.8k additions across ~80 files) and three apps. Risks: the new CKEditor 5 dependency and rich-text editor could affect bundle size or render behavior; the documents tabs depend on backend support for the exclude_completed filter (gated by the documentsInProgressTab feature flag, which mitigates premature exposure); cloud uploads rely on Filestack integration. Mitigation: feature-flag gating, the QA-only target environment for full validation before Production, and that most changes are net-new surfaces with limited blast radius on existing flows.
QA validation focus
- Admin Email Reminders: create/edit/delete a schedule; verify cron/visual schedule builder, time picker, day selector, and timezone produce the expected expression; manage To/CC recipients; pause/resume; send test email; view execution history; confirm the CKEditor editor and template-variable insertion work.
- Admin Page Statistics: verify summary cards, search/date filters, drill-down (Client to Document) via breadcrumb, and default/per-entity cost editing in CostConfigDialog; check refresh/export.
- Mail Documents: toggle In Progress vs Completed tabs (with the feature flag enabled) and confirm correct lists; confirm In Progress rows show only Download (no Comments/View/Update/Assign/Delete) and no stray dropdown separator; verify Add Document modal hides the mail selector on /documents and still works on /batches/documents; confirm the status dropdown populates in Update Document Status.
- Vendor: test the tabbed upload modal for both local split-upload and cloud (Filestack) sources, accumulating multiple cloud files and submitting via Done; verify the new Upload Activity page Tasks/Files tabs, inline filters, date-range picker, pagination, and URL-synced state; confirm no console hydration warnings.
- Regression: smoke-test existing mail/vendor/admin flows for layout or routing regressions.