Add Sales Agent Setup tab, update settings nav slideout, fix subtitle
- Add Sales Agent Setup tab to AI settings (placeholder) - Add Artificial Intelligence section to settings slideout panel - Fix My Account nav links (Relationsh...
Align ProviderSetupTab field names with backend entity (priorityOrder, maxRateLimit, isActive)
Use @Value for RspamdConfig and make training non-blocking
RspamdConfig now uses @Value to match existing project patterns. Rspamd training failures no longer prevent the message from being moved.
Scaffold AIService project with providers, services, websocket, and controllers
AI chat orchestration service on port 4205 with: - WebSocket streaming with session auth via ***/Redis - Chat orchestration with auto-routing, usage tracking, a...
Scaffold MCPGatewayService with auth, controllers, transports, and health monitoring
Ensure Junk and other system folders always appear in sidebar
Adds guaranteed system folders (INBOX, Sent, Drafts, Junk, Trash, Archive) to the folder tree even if they don't exist on the IMAP server yet.
Move handleBulkReportSpam after getSelectedRefs to fix declaration order
Wire spam reporting into MessageBrowser with toast and state handling
Add tooltips to WYSIWYG toolbar buttons in New Email tool
Applies title attributes to all Quill toolbar buttons and pickers after mount: Bold, Italic, Underline, Strikethrough, Text Color, Background Color, Heading, Al...
Dynamically update tool window title from email subject
Add tool:title event to the tool window system. The New Email tool dispatches it as the subject field changes, showing the subject as the window title (abbrevia...
Add New Email tool icon to NavTop bar
Adds a mail icon button to the left of the Softphone button that opens the New Email tool window.
Auto-refresh message list when draft is saved or email is sent
MessageTool dispatches email:folder-changed events after saving a draft (Drafts) or sending an email (Sent). MessageBrowser listens and refreshes if the affecte...
Match message tool color scheme to other tools and rename to New Email
Switch from dark theme to the light theme used by chat/calculator tools: light gray gradients, white inputs, var(--color-primary) accents. Rename tool from "New...
Restore full WYSIWYG toolbar options in message tool
Adds back headers, strike, background color, alignment, and image options. Toolbar wraps onto two lines when in compact (non-maximized) mode via flex-wrap.
Mark messages as read on IMAP server and refresh folder counts
Clicking a message now calls PUT **************** with seen:true on the backend, persisting the read state to IMAP. Sidebar folder unread counts refresh after m...
Save copy to Sent folder after sending email
Transport.send() only sends via SMTP without saving to IMAP. Added saveToSent() to append the message to the Sent folder with the SEEN flag set. Applies to send...
Integrate New Message composer into tool window system
Replace the standalone fullscreen/mini composer windowing with the shared tool window infrastructure (minimize, maximize, hexheads). MessageSystem.openNewMessag...
Disable STARTTLS and auth for port 25 internal SMTP
Port 25 on internal Postfix doesn't support STARTTLS and allows relay from cluster IPs via mynetworks. Only enable auth and STARTTLS when using port 587 (submis...
Move useState hook before early returns to fix React error #300
useState(syncing) was declared after conditional early returns, violating React's rules of hooks.
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
