Add findDueReminders and markAsSent queries to CalendarEventReminderRepository
Include required fields in create book payload
The backend DTO requires isOrgDefault, isOrgLevel, and isVisible fields — sending only name caused a 415 Unsupported Media Type.
Add ICS generation for REQUEST/REPLY/CANCEL and calendar message parsing
Add method/organizerEmail to CalendarEvent, role/rsvp/lastResponseAt to CalendarEventAttendee
Add inline book creation in Add to Contacts dialog
The contact book dropdown now has a 'Create new book' option at the bottom. Clicking it reveals an inline text input with an Add button. The user can type a nam...
Inline Add to Contacts dialog from recipient popover
Replace the old behavior (navigating to /contacts page, losing the composer) with a lightweight inline dialog that: - Pre-fills first/last name from the recipi...
Remove old Third-Party Integrations tab and unused code
- Delete ThirdPartyIntegrationsTab component (old calendar sync UI, replaced by new CalDAV/CardDAV system) - Delete /api/integrations proxy route (only used b...
Prevent recipient popover from flashing at top-left corner
The popover initialized at position {0,0} and repositioned in a useEffect (after paint), causing a visible fly-in from the top-left. Fixed by using useLayoutEf...
Portal all overlays out of tool window stacking context
ToolWindowShell applies `transform: translateY(0)` which creates a CSS stacking context. This caused all `position: fixed` overlays (autocomplete dropdown, popo...
Fix autocomplete — infinite loop, missing API, auth
Three root causes fixed: 1. Infinite re-render loop: existingEmails was a new array reference every render, causing the search useEffect to re-fire endlessl...
Fix untyped recipient inputs and match Subject field styling
- Fixed drag handler blocking input focus by skipping preventDefault when clicking on INPUT elements or buttons - Rewired RecipientField from Tailwind classes...
Remove unused legacy MessageComposer and Manager
These components were superseded by the tool window MessageTool.tsx and are no longer imported anywhere in the codebase.
Integrate recipient fields into tool window composer
The previous commit added the recipient components but modified the wrong composer (MessageComposer.tsx). This integrates RecipientField into MessageTool.tsx — ...
Add book buttons per source, remove redundant manage icon
- Remove redundant "+" manage sources icon from sources view header (already accessible via bottom "Manage Contact Sources" button) - Add "Add book" icon butt...
Add edit mode, title field, and live status to source management
- ManageSourcesDialog now has edit button per source for editing title and credentials (CalDAV/CardDAV URL, username, password) - Add title field when adding ...
Add per-source sync status in WebSocket + displayName support
- WebSocket sync status now includes per-integration statuses in a 'sources' map keyed by integration ID - applyConfig now handles displayName field for user-...
Replace Add Source with Manage Contact Sources dialog
- Rename AddSourceDialog → ManageSourcesDialog with full CRUD (list existing sources with status + remove, plus inline add form) - Move "Manage Contact Source...
Add modern recipient fields with chips, autocomplete, and contact picker
Replace basic text inputs in email compose To/CC/BCC fields with rich recipient components: chip-based display with remove buttons, debounced autocomplete searc...
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.
