Bug Fixes
- update label class for consistent styling
- drop stale Cal API ref causing iframe doesn't exist error
- update background service worker build scripts for development and production modes
- replace deprecated styles prop with cssVarsPerTheme
- use high-detail GPT-4o vision and tighter prompt for TRACES image captcha
- pass value and onValueChange to PageTabSwitcher so default tab shows active
- update source parameter handling to support multiple sources
- include tour helpers in onboarding-flow useMemo deps and revert post-completion visibility
- remove unused pruny package from package.json
- update glitchgrab to version 1.18.1
- show logo flush with rounded corners and drop wrapping tile
- auto-create Employee record for firm owner so they appear in selectors
- add alarms permission required for notice polling
- adjust notice polling alarm setup for development mode
- update base URL fallback for development and production modes
- simplify password handling by removing decryption step for re-login
- remove unused mcp-admin app entry from configuration
- refine regex patterns for scraping IT notices
- use absolute GST audio captcha URL and increase post-username wait to 5s
- enhance GST notice scraping with improved session validation and diagnostics
- add explicit SheetClose button so quick-view can be dismissed reliably
- add stable secondary sort by id for registrations to prevent reorder on update
- backfill expired client link expiry to 30 days
- keep quick-view sheet content mounted briefly so close animation runs
- order client-portal registrations by createdAt then id for stable display
- stack registration header and credential-source banner on mobile
- suppress react-hooks/set-state-in-effect for intentional sheet-close-animation sync
- force active state via explicit value comparison
- enhance GST notice scraping with additional diagnostics and wait times
- force active tab styles to override Radix data-state defaults
Features
- add captcha config endpoint to serve TrueCaptcha keys from env vars
- add client-credentials list and create endpoints
- add credential update and delete endpoints
- add notices CRUD endpoints with auth, cache tags, and status updates
- expose decrypted password endpoint for extension GST re-login
- enhance dropdown and avatar components for better UI/UX
- improve styling and layout of dropdown and label components
- add notices and credentials Prisma Accelerate cache tags
- implement image CAPTCHA solving API endpoint using OpenAI
- add Whisper audio captcha solver endpoint for GST portal login
- enhance audio processing to include content type and dynamic file extension
- refactor audio transcription to use OpenAI Whisper API
- pass portalAccessConsent flag to create mutation
- require client portal access consent before saving credential
- remove unused props and imports from ComplianceTableRow and EmployeePicker components
- add sharp to serverExternalPackages for image optimization
- GST notice fetch via Sandbox GSP with token refresh and upsert
- AES-256-GCM encrypt/decrypt for credential password storage
- add Billing Setup and Polish Business Profile steps to onboarding wizard
- add Get Support step, hydrate state from props, sync skip from cookie on focus and pageshow
- add Lead Email Templates step that auto-skips when templates exist
- count active lead email templates for onboarding completion
- expose leadEmail.hasActiveTemplate on OnboardingData
- extend OnboardingData type with billing and profile fields
- fetch billing settings and profile branding for onboarding checks
- pass cookie-backed skip and collapsed state to OnboardingFlow for SSR
- point recent-proposals onboarding actions to new view query URL
- replace toast with 2-step Get Support tour that spotlights sidebar then opens help dialog
- add GST portal and IT portal notice scrapers with 2captcha CAPTCHA solving
- add notifications permission for GST session expiry alerts
- add PortalCredential, NoticePayload, ScrapedNotice types
- adjust notice polling alarm for development mode with shorter intervals
- bridge website postMessage to service worker for manual notice fetch
- forward source in PS_FETCH_NOTICES postMessage bridge
- register 4-hour alarm for notice polling with structured logging
- enhance login process with audio captcha handling and response logging
- add client credentials TanStack Query hooks
- add notices TanStack Query hooks
- add useHighlightSection for query-param-driven section highlight
- highlight bank section on arrival and auto-skip onboarding step on visit
- auto-skip lead-email-templates onboarding step on visit
- add markOnboardingStepVisited helper for auto-skip on visit
- add SIDEBAR_SUPPORT tour anchor constant
- add unified admin API auth helper accepting SUPER_ADMIN session, MCP secret, or BLOG_DEV_SECRET with audit logging
- extract MAX_AUTO_CLIENT_NOTIFICATIONS to shared module so client and server share the cap
- invalidate onboarding on billing, lead-template, and business-profile mutations
- add fetch wrapper that injects x-mcp-secret and resolves base URL from env
- add lenient tsconfig (strict off due to MCP SDK + zod type instantiation depth)
- add stdio MCP server exposing blog and workflow CRUD tools with confirm guards on destructive ops
- scaffold local-only MCP server package with SDK and zod deps
- register NOTICES module with Bell icon
- accept source filter to sync only GST or INCOME_TAX credentials
- add captcha retry loop and endpoint discovery probes for TRACES TDS login
- adjust TRACES login flow to fill TAN and password after captcha resolution
- enhance error handling in postNotice and add date parsing for GST notices
- enhance navigation to GST notices by waiting for welcome page stabilization and extracting notice links dynamically
- enhance TRACES audio captcha handling to support JSON response and extract audio data
- enhance TRACES login flow to handle arraybuffer response type for captcha
- enhance TRACES login flow to support Flutter's input handling and improve value verification
- enhance TRACES login flow with captcha interceptors and button click handling
- enhance TRACES login flow with DOM polling and iframe checks
- enhance TRACES login flow with improved radio button handling and detailed input diagnostics
- enhance TRACES login flow with improved radio button handling and streamlined input filling
- enhance TRACES login flow with improved XHR interceptor for captcha handling
- enhance TRACES login flow with network logging for captcha diagnosis
- implement direct API flow for fetching TDS notices from TRACES, replacing browser automation
- improve GST notices navigation by using SPA click method and enhancing link extraction logic
- improve TRACES login flow with enhanced radio button interaction and optimized event handling
- improve TRACES login flow with enhanced XHR and window.open interceptors for captcha handling
- refactor TRACES audio captcha handling and login flow for Flutter Web
- refactor TRACES audio captcha handling to include content type in response
- refactor TRACES login flow to improve input handling and remove unnecessary radio button click
- remove audio captcha parsing and implement image captcha solving for TRACES API
- rewrite IT scraper for eportal.incometax.gov.in with full login flow
- simplify TRACES login flow by removing unnecessary radio button click step
- streamline TRACES login by filling TAN, password, and captcha in a single script execution
- update audio field extraction to prioritize base64 audio data
- add client authorization consent checkbox to portal credentials dialog
- add notices dashboard with portal credentials dialog and stats
- add Sync Now button visible when extension installed, triggers FETCH_NOTICES via postMessage
- add Sync TDS button and hasTDSCred check for TRACES portal
- invalidate query cache after sync so table refreshes without manual reload
- replace reCAPTCHA solver with image CAPTCHA via TrueCaptcha, auto re-login on session expiry
- Sandbox GSP integration for server-side GST notice fetching
- split sync buttons by source, disable when no active credentials for that source
- add endpoint to revoke client portal link
- add migration for notification count fields
- add notify endpoint that sends email and WhatsApp on existing token
- add quick-view side sheet with embedded wizard steps and mobile bars
- add Send test to me option in manage-link dropdown
- add test endpoint that previews email and WhatsApp on firm owner
- add useNotifyClient hook for no-regen client notifications
- add useRevokeLink mutation hook
- add useSendTestNotification hook for preview testing
- bump client link expiry to 30 days and track notification count
- invalidate recent-proposals query on create and delete
- lift quick-view sheet to page level and open it after Start Onboarding
- persist quick-view sheet open state in URL via nuqs
- refine Select Documents dialog with 2-col grid and compact custom-add modal
- replace credential mode toggles with persistent radio cards and add compact custom-add dialog
- show Client Responding badge in quick-view sheet header
- show Client Responding badge when client has viewed the portal
- show notification count badge and manage-link dropdown
- smooth bidirectional height transition on credential mode toggle
- switch firm completion email link to new view query URL
- track client notification count and last notified time
- widen Select Documents dialog and add search with select-visible
- wire quick-view sheet trigger and inline notify button in row
- remove unused check scripts from validate command
- add Fetch GST Notices button to main screen
- add notice-fetch-bar styles for Fetch GST Notices button
- wire Fetch GST Notices button to FETCH_NOTICES message with loading state
- add migration for Business portal access consent
- add portalAccessConsent fields to Business
- point onboarding row actions to new view query URL
- add noticeKeys and credentialKeys query key factories
- add notices and credentials cache invalidation handlers
- add Notice and ClientPortalCredential models with enums
- pass source param from FETCH_NOTICES message to fetchNoticesForAllClients
- remove auto-alarm polling, add FETCH_NOTICES manual trigger handler
- highlight profile card on arrival and auto-skip onboarding step on visit
- invalidate onboarding query after business profile save
- add Notices nav item for ADMINISTRATOR role
- mark get-support onboarding step visited when help widget opened from sidebar
- wrap support button variants in tour-anchor div so spotlight tracks visible variant
- add animated badge-alert icon from lucide-animated
- add animated bell icon from lucide-animated
- add animated bell-electric icon from lucide-animated
- add animated briefcase-business icon from lucide-animated
- add animated chart-bar-increasing icon from lucide-animated
- add animated circle-help icon from lucide-animated
- add animated download icon from lucide-animated
- add animated file-pen-line icon from lucide-animated
- add animated file-text icon from lucide-animated
- add animated flask icon from lucide-animated
- add animated layers icon from lucide-animated
- add animated layout-grid icon from lucide-animated
- add animated message-circle icon from lucide-animated
- add animated receipt-indian-rupee icon from lucide-animated
- add animated rocket icon from lucide-animated
- add animated shield-check icon from lucide-animated
- add animated user-round-plus icon from lucide-animated
- add animated users icon from lucide-animated
- add animated zap icon from lucide-animated

