All updates
QAFrontend

QA Release: Searchable Admin Pickers, Vendor File Tracing & Failure Tools, and Mail Grid Improvements

PR #924pixbox-supportMar 30, 2026 · 14:02 UTC
QAMar 30, 2026

Executive summary

This release promotes a batch of dev changes into the QA environment for testing. It spans three apps: the Admin portal gains searchable dropdowns in place of raw numeric ID typing, the Vendor portal gains file-lifecycle tracing plus failure-management tools on task details, and the Mail app gets a bulk "Move to Folders" action with async-job support alongside several data-fetching fixes.

Why this was needed

Several admin forms required staff to memorize and type numeric IDs (users, departments, labels, roles, permissions, tenants) into free-text or comma-separated fields, which was error-prone. The vendor portal was missing failure-management and file-trace capabilities that existed in the legacy portal. The mail resolution tab and document-type pickers had broken after backend API changes, and bulk folder operations needed to support long-running (async) jobs.

Client / user impact

  • Admin: Users now select people, departments, labels, roles, permissions, and tenants from searchable dropdowns (with infinite scroll and create-new support) instead of typing IDs, on the Users, Meta-Entities, Folder, and Notification-Policy screens. The create/edit Folder dialog is wider and no longer cramped, and the Meta-Entities filter fields no longer overlap.
  • Vendor: Task detail pages show an error-details card, a failed-files section (with CSV/ZIP export, single and bulk delete, download original), retry/re-upload actions, a paginated originals browser, and a File Trace timeline showing a file's lifecycle.
  • Mail: A "Move to Folders" bulk toolbar action is available on inbox and mail grids; the resolution tab and document-type picker load reliably again.

Technical scope

Frontend-only batch merge of dev into qa, bundling these feature PRs and follow-up fixes:

  • #917 (admin entity dropdowns): New generic AdminCombobox (single-select, debounced search, IntersectionObserver infinite scroll) and AdminMultiSelect (badges, search, creatable) primitives, plus UserSelect, UserMultiSelect, DepartmentMultiSelect, LabelMultiSelect, RoleNameMultiSelect, PermissionMultiSelect wrappers. Replaces raw Input/comma-separated fields in Users, Meta-Entities, Folder, and Notification-Policy forms; adds supporting routes, services, TanStack queries, and types.
  • #920 (vendor portal gaps): Adds FileTraceModal, ErrorDetailsCard, TaskFailedFilesSection, TaskOriginalsDialog; wires failure-management endpoints (export, delete, bulk-delete batched to 100 IDs, download original), retry/re-upload on TaskDetailHeader and TasksTab, and trace integration in HeroPreviewSection/ViewFilesModal.
  • #921 (resolution tab): ToBeResolved self-fetches via GET /api/v1/resolutions (module_type + module_entity_id), with loading/error states and multi-page fetching.
  • #923 (bulk folder assignment): Folder modals handle HTTP 202 async-job responses, defer cache invalidation to WebSocket events, and add "Move to Folders" toolbar buttons; MailGrid.tsx refactored from 937 to 308 lines by extracting useMailGridHandlers, MailGridBulkActions, and MailGridModals.
  • Standalone fixes: tenant_type query param for entities API; strip status_id/tenant_id from bulk-operations body; server-side paginated document-type picker; dynamic "Completed" status lookup replacing hardcoded ID 8; folder dialog widened (max-w-lgmax-w-2xl); meta-entities filter layout fix. ~5,335 additions / 1,013 deletions across 48 files.

Risk & mitigation

Medium. This bundles a large MailGrid refactor plus many new UI components and API wirings, so the surface area is broad. The MailGrid refactor is structural (split into hook + sub-components) and could regress bulk actions or modal behavior. The new dropdowns depend on backend search/pagination endpoints behaving as expected, and some flows (async folder jobs, resolution self-fetch) depend on backend 202 responses and WebSocket events firing. Mitigation: this is a QA-targeted promotion intended specifically for verification before production; the listed PR test plan covers the highest-risk areas, and async cache invalidation now relies on WS events rather than eager refetch.

QA validation focus

  • Admin Users: Digest user picker selects a real user, previews/sends correctly, and clears.
  • Admin Meta-Entities: Tenant filter dropdown and delete-scope tenant picker work; filter fields do not overlap; list filters by selected tenant.
  • Admin Folders: Create/edit dialog is appropriately wide; user/department/label multi-selects populate, create-new labels work, and saved assignments persist.
  • Notification Policies: Role and permission multi-selects load, persist on edit, and submit correctly.
  • Mail: "Move to Folders" bulk action works from inbox and mail grids (including select-all and async 202 jobs); resolution tab loads (including 100+ resolutions and network-error state); document-type picker searches server-side; verify all 9 bulk actions and 12 modals post-refactor.
  • Vendor: Task detail shows error card and failed files; CSV/ZIP export, single and bulk delete (>100 files), download original, retry/re-upload all function; File Trace timeline opens and resets correctly between files.