Bug Fixes
- update route.ts, closes dashboard-businesses-id-generate-invoice-#2874 #2874
- add note dialog refactoring, closes dashboard-settings-reports-on-client-#2876 #2876
- add unauthenticated API tests, closes security-unauthenticated-get-api-employees-#2886 #2886
- add whatsapp reply route, closes dashboard-settings-reports-on-client-#2876 #2876
- update invoice generation logic for waiting invoices, closes dashboard-dsc-reports-issues-#2873 #2873
- useAddClientDirector: add director by name alone from picker #2873, closes dashboard-businesses-id-generate-invoice-#2874 #2874
- install dialog opens upon mobile navigation, closes dashboard-dsc-reports-issues-#2873 #2873
- add old number format hint to attention card, closes dashboard-businesses-id-generate-invoice-#2874 #2874
- add fee or claim moving to new draft on client due invoices (#2719, #2874), closes dashboard-dsc-reports-issues-#2873 #2873
- generate invoice for ticked fees and claims with moved off instalment, closes dashboard-dsc-reports-issues-#2873 #2873
- flag allocated old monthly numbers, not new or imported ones (2878), closes invoices-sequence-gap-seq-2-#2878 #2878
- add missing
isMonthlyFormatInvoiceNumbercheck, closes trademark-status-in-the-tm-#2859 #2859 - add UNSENT_INVOICE_STATUSES enum, closes dashboard-businesses-id-generate-invoice-#2874 #2874
- remove unnecessary number formatting comment, closes dashboard-businesses-id-generate-invoice-#2874 #2874
- update unsent acceptance proposals to include invoices with status
UNSENT, closes dashboard-businesses-id-generate-invoice-#2874 #2874 - add call link to business contact line, closes invoices-sequence-gap-seq-2-#2878 #2878
- add businessId prop to ClientContactCall component, closes dashboard-businesses-id-generate-invoice-#2874 #2874
- add call log dialog for contacts, closes dashboard-settings-reports-on-client-#2876 #2876
- add call link with business ID, closes dashboard-businesses-id-generate-invoice-#2874 #2874
- implement call-link component, closes invoices-sequence-gap-seq-2-#2878 #2878
- update waiting row component to include checkboxes for ticking, closes dashboard-dsc-reports-issues-#2873 #2873
- update ClientContactCall to include businessId when canEditBusinesses is true, closes dashboard-businesses-id-generate-invoice-#2874 #2874
- update WhatsApp reply component to use the new 'whatsonestatus' module for tracking the status of sent replies, closes invoices-sequence-gap-seq-2-#2878 #2878
- add support for WhatsApp status and target in communication list, closes dashboard-businesses-id-generate-invoice-#2874 #2874
- update whatsapp-reply-box to use new component API, closes dashboard-settings-reports-on-client-#2876 #2876
- add check for session availability in hydrating render, closes hydration-mismatch-418-div-#2875 #2875
- add empty rows to list when adding a DSC, closes dashboard-dsc-reports-issues-#2873 #2873
- update csv to support contact and mobile fields, closes invoices-sequence-gap-seq-2-#2878 #2878
- update display of client note and custody events, closes practice-stack-desktop-setup-#2877 #2877
- add dsc-in-out component and logic, closes dashboard-dsc-reports-issues-#2873 #2873
- remove unused contact page for walk-in's DSC, closes dashboard-businesses-id-generate-invoice-#2874 #2874
- add token status and direction to row indicators, closes dashboard-settings-reports-on-client-#2876 #2876
- add
useAddDscBatch,useMoveDsc, anduseDeleteDscAPIs, closes dashboard-businesses-id-generate-invoice-#2874 #2874 - add install dialog and logic, closes practice-stack-desktop-setup-#2877 #2877
- add install page for sharing link, closes practice-stack-desktop-setup-#2877 #2877
- improve UI for "Signed, not billing yet" label, closes billing-work-not-billed-proposal-#2879 #2879
- update billing queue invoice sequence, closes dashboard-businesses-id-generate-invoice-#2874 #2874
- update ip-india-eregister.md, closes trademark-status-in-the-tm-#2859 #2859
- add InstallAppDialog component to layout, closes invoices-sequence-gap-seq-2-#2878 #2878
- add install-link utility for app link generation, closes practice-stack-desktop-setup-#2877 #2877
- update install-link path to match dashboard
- add columns for WhatsApp communication in ManualCommunication table, closes dashboard-businesses-id-generate-invoice-#2874 #2874
- update route to use
replyTofor Whatsapp replies, closes dashboard-businesses-id-generate-invoice-#2874 #2874 - count every unsent first-invoice status the Unbilled work tab counts (#2879), closes dashboard-send-email-configure-#2880 #2880
- add UNSENT_INVOICE constant to handle new invoice status, closes dashboard-businesses-id-generate-invoice-#2874 #2874
- invalidate invoices and acceptance invoices when sending first invoice, activity lists notes and WhatsApp replies too, closes dashboard-settings-reports-on-client-#2876 #2876
- add invoiceSequence field to invoices route, closes dashboard-businesses-id-generate-invoice-#2874 #2874
- clear closed tasks from the queue, closes trademark-status-in-the-tm-#2859 #2859
- prevent sending custody note if it was not sent in the original request, closes dashboard-businesses-id-generate-invoice-#2874 #2874
- handle client whatsapp replies, closes dashboard-send-email-configure-#2880 #2880
- update done column filter and toggle behavior, closes dashboard-send-email-configure-#2880 #2880
- add missing mailbox permission check and error handling for sending emails, closes dashboard-send-email-configure-#2880 #2880
- park install prompt offer for usePwaInstall, closes practice-stack-desktop-setup-#2877 #2877
- use it unless a shorter/more accurate component name is obvious from the diff, closes practice-stack-desktop-setup-#2877 #2877
- update acceptance-invoice hook to fetch unsent proposals, closes dashboard-businesses-id-generate-invoice-#2874 #2874
- add reply to client's page, closes dashboard-dsc-reports-issues-#2873 #2873
- update service prices, closes dashboard-settings-reports-on-client-#2876 #2876
Features
- add client billing endpoint, closes dashboard-dsc-reports-issues-#2873 #2873
- add missing types for
sourceandbillableinClientWaitingDueandClientDuesobjects, closes dashboard-settings-reports-on-client-#2876 #2876 - add seedClientWhatsappReply function and test it, closes dashboard-settings-reports-on-client-#2876 #2876
- write the director, a walk-in's mobile and the last In / Out (#2873), closes dashboard-settings-reports-on-client-#2876 #2876
- add holder phone to DSC form sheet, closes dashboard-settings-reports-on-client-#2876 #2876
- add DSC grid, other tab, in/out, closes tasks-board-done-#2881 #2881
- add
custodyandholderPhonefields to POST request for client DSCs, closes dashboard-businesses-id-generate-invoice-#2874 #2874 - add more DSC options and improve batch endpoints, closes dashboard-send-email-configure-#2880 #2880
- add tab to filter DSCs by client type and others, closes dashboard-businesses-id-generate-invoice-#2874 #2874
- add route to handle unauthorized requests, closes invoices-recurring-schedule-subtotal-total-#2883 #2883
- add support for staff replies from lead's timeline or client's Messages tab (#2876), closes dashboard-businesses-id-generate-invoice-#2874 #2874
- add POST /api/dsc/[id]/movement route, closes dashboard-dsc-reports-issues-#2873 #2873
- add holder phone to client dsc and custody events for DSCs without clients - solve #2873, closes trademark-status-in-the-tm-#2859 #2859
- add new columns to ClientDsc and ClientDscCustodyEvent, closes dashboard-dsc-reports-issues-#2873 #2873
- add support for client replies to WhatsApp Business messages, closes dashboard-businesses-id-generate-invoice-#2874 #2874
- add logic to handle owner's business data, closes practice-stack-desktop-setup-#2877 #2877
- improve error handling for unauthorized requests, closes invoices-recurring-schedule-subtotal-total-#2883 #2883
- start checking trademark on first load, closes trademark-status-in-the-tm-#2859 #2859
- add type for adding new DSCs in drawer, closes dashboard-businesses-id-generate-invoice-#2874 #2874
- update connection instructions for Microsoft accounts, closes billing-work-not-billed-proposal-#2879 #2879
- add support for WhatsApp Business message statuses, closes dashboard-businesses-id-generate-invoice-#2874 #2874
