Features
- add dark mode guards to CSS and vendor stylesheet
- add clientRecordBusinessScope function
- implement credential sweep functionality
- add guards for dark mode.scss
- add test for
buildEmailLogScope - add ability to read own messages
- add route for managing the Firm Setup nudge popup
- add client-based invoice raising functionality
- add support for scoped employee IDs in leads-analytics request
- add viewer client filter to notice builder
- add viewer client filter to onboarding dashboard
- add credential_health_report template
- add firmSetupNudgeShownAt to User model
- improve route handling for employee context
- alert on razorpay charge without matching subscription
- add logic to stamp OTP email's log row with business and proposal ids
- add weekly login test for credential management
- update Razorpay subscription row detection
- add data-theme-exempt support
- add hook for determining which one-time prompt to show on dashboard visit
- declare vendor stylesheets with their class prefix and real dark overrides in the project stylesheet
Bug Fixes
- prevent
consecutiveFailuresfrom being set while waiting for portal verdict - add attention badge to automation items
- update the
BotCheckandFailingCredentialtypes - improve credential reporting and filtering
- add scopedEmployeeIdsForEmployee function
- update Firm Clause Query
- update credential health test for new client names and exit conditions
- add route to generate credential health reports
- add weekly login test functionality
- adjust browser size to avoid clipping bugs during screenshots
- update bodyHtml and completedDaysAgo fields in seeded emails
- use
bg-purplefor initials in Avatar component - improve avatar background colors
- refine mailbox scope and UI for multiple users
- update search and filter bar components
- add emailLogScopeClause and emailLogFirmClause to manage email access levels
- improve retry logic for email delivery in apps/web/lib/email-service-retry.test.ts
- improve transient SMTP error handling
- add weekly client login health report email template
- remove account check and use viewerUserId
- add module check and scope clause for outbound email logs
- update initials background hue
- add vendor-css-needs-dark-overrides rule
- add firm ownership check and filter for employee export
- improve error handling and reporting
- add firm setup nudge component
- split out firm setup from marketing consent prompt
- retry on email delivery failure
- add support for viewer-specific invoices
- add client scope check for invoices
- add viewer scope to billed analytics query
- add raising a client's leaking work functionality
- add viewer client filter to buildInvoicesDashboard
- remove billing access answers "may you see invoices at all"
- add support for first-run prompts and firm setup nudge
- improve team visibility and lead scope
- restrict leads to employee context
- add styling to render sender's HTML lightly on a dark pane
- hide MarketingConsentNudge once both consents are still false and the nudge has never been shown before
- add new enum value for credential health report template
- use shrink-0 and py-2.5 for notice-filter bar
- refactor to use fixed widths for notice columns
- update loading notice component to support loading state and better styling
- update route to use client record business scope
- add dev:ci command
- add
firmSetupNudgeShownAtcolumn to User table - ensure correct order of dialogs in product tour
- add viewer client filter for trend line data
- handle viewerClientFilter in buildProposalsDashboard
- add credential-check API endpoint
- dismiss nudge without busting dashboard status
- add query invalidation for alert badges
- dismiss
Firm Setupnudge after dismissing it - add credential alerts to query keys
- add firm setup nudge keys
- add scopedEmployeeIdsForEmployee for reimbursements card
- update scopedEmployeeIdsForEmployee method
- check for employee module access when retrieving notice
- ensure client record business scope is used in proposal operations
- update log scope clause
- add dark mode audit job
- remove unused Docker block and refactor port logic
- update CI workflow for
dev:cicommand - handle orphaned Razorpay subscriptions raises a Slack alert instead of vanishing
- Razorpay unreachable tests added
- add clientRecordBusinessScope dependency
- add viewer client filter for dashboard builders
- update OTP send route to include firm and proposal id
- update color stops for avatar backgrounds
- update AVATAR_BG colors
- add credential health report template
- add portal access report to template label
- add recipientName and failureCount to CREDENTIAL_HEALTH_REPORT template parameter keys
- use KeyRound for credential_health template icon
- handle credential health reports for testers in wa_credential_health and wa_work_handover workflows
- add CredentialHealthReportTemplateData to WhatsApp template types
- add DYNAMIC URL button for
ADMIN_NEW_SIGNUPwhatsapp template - add cron job for credential health report
- implement credential-check route
- add functionality to send credential health report
- add support for proposal templates without a URL button
- improve error handling and self-send detection
- trim body params to 100 chars
- update weekly heads-up body to reflect bot away from portals
- update WhatsApp template names
- update whatsapp-service.ts
