Bug Fixes
- add optional chaining for registrations to prevent crash when field is undefined
- include CLIENT-sourced registrations in server-side page data
- wrap saveToApi in useCallback, move setSaveState inside debounce
- spread readonly JOB_TITLE_OPTIONS to satisfy mutable type
- remove explicit type annotation on filter to fix TS mismatch
- close dialog on send success instead of showing link inline — prevents state reset from parent re-render
- disable Send to Client button until step 3 is reached
- disable Switch toggle during updateDocTemplate mutation
- move setSaveState inside debounce to avoid synchronous setState in effect
- move setSaveState inside debounce to avoid synchronous setState in effect
- normalize values before auto-save comparison to prevent space/whitespace triggering saves, use isLoading for invoicing skeleton
- prevent infinite save loop by tracking last saved values in invoicing auto-save
- remove success toast from inline document template updates
- remove success toast from inline onboarding updates
- remove success toast from inline registration updates
- remove success toast from inline team assignment updates
- replace blur-based auto-save with debounced watch to prevent data loss on Next click
- replace nested Card components with plain bordered divs in step-complete
- show skeleton loading state while employees are being fetched in Team step
- use isFetching for invoice settings child query loading state
- use isFetching instead of isLoading for employee dropdown loading state
- remove transaction wrapper to prevent timeout with Prisma Accelerate
Features
- accept clientResponse in credentials PATCH endpoint
- add credentials PATCH endpoint for client credential submission
- add submit endpoint to notify firm via email when client completes portal
- include CLIENT-sourced registrations in portal response
- include clientResponse in registrations response
- add credential response options — don't have, need call, will share later
- add Portal Credentials section for client to fill login details
- auto-save credentials, sticky submit bar, responsive card headers and text overflow
- include business contacts in server-side page data
- pass clientResponse to ClientPortalView component
- show existing contacts list, add contact via dialog with proper fields matching ContactDialog
- show Onboard button for approved proposals instead of dropdown
- accept credentialSource in registration update endpoint
- add credentialSource to UpdateRegistrationData type
- add Assign All bulk action and saving indicator for team assignments
- add bulk credential mode action for all registrations at once
- add Saving.../Saved indicator to registration cards during auto-save
- persist credential mode to DB instead of local state
- show refetching indicator when data updates in background
- add PageHeaderSkeleton with shared layout for loading states
- include onboarding relation in API response
- add clientResponse field to OnboardingRegistration for client feedback
- add CredentialSource enum and credentialSource field to OnboardingRegistration
- migration for clientResponse on OnboardingRegistration
- migration for credentialSource on OnboardingRegistration
