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...
編集モード、タイトルフィールド、ライブステータスをソース管理に追加
- ManageSourcesDialogは、タイトルを編集するためのソースごとの編集ボタンを持っています 認証情報(CalDAV/CardDAV URL、ユーザー名、パスワード) - 新しいソースを追加するときにタイトルフィールドを追加して、ユーザーがそれらを区別できるように - WebSocketの統合によって運転...
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-...
[連絡先のソースの管理] ダイアログでソースを追加置換
- AddSourceDialog → ManageSourcesDialogをフルCRUD(リスト)で名前変更する 既存のソースをステータス + 削除, プラスインラインフォームを追加) - 左パネルの下部に「コンタクトソースの管理」ボタンを移動、ピン留め 上記のフッターを同期(またはソースが存在しない場合にのみ) ...
チップ、オートコンプリート、コンタクトピッカーで近代的な受信フィールドを追加
基本テキスト入力をEメールに置き換えて、To/CC/BCCフィールドをリッチに構成 受信コンポーネント: ボタンを取除いたチップベースのディスプレイ、非バウンス 連絡先と最近の受信者を検索するオートコンプリート、ホバー/クリック 連絡先の詳細と行動(電子メール、連絡先の表示、 Add コンタクト)、ミニモードでドラッグ...
Add sync toggle, source management, and WebSocket status
- Overhaul ContactsLeftPanel with 3 display modes: org-only books, sources with nested books (sync off), and flat org books (sync on) - Add SyncFooter with re...
Include memberId in sync complete NATS messages
SyncCompletePublisher now accepts optional memberId parameter, and ContactSyncJob passes it from the integration's member reference. This enables EmailService t...
Add member-level sync toggle and WebSocket sync status
- Add PUT /member/sync-toggle endpoint to batch-toggle syncEnabled on all member integrations at once - Add ContactSyncWebSocketController broadcasting aggreg...
Add Create Contact dialog with multi-tab form
Adds a fully-featured Create Contact dialog accessible via a "New" chip in the contacts toolbar. The dialog supports all contact sub-entities (emails, phones, a...
Show actionable error when SIP credentials fail (missing VoipCalling permission)
Handle RC webhook validation token; make body optional for verification requests
Only show connection error after failed registration attempt; use overlay to avoid layout shift
Wire SoftphonePanel to useSoftphone hook; remove all mock state; add capability guards
Send and display image attachments in chat
- SmsChatTab: read file as base64 via FileReader, pass to API, render <img> in message bubble - voipApi: add attachment params to sendSms
Add MMS attachment support — multipart send, base64 storage, image display
- RingCentralProvider: override sendSms with multipart/form-data MMS path - VoipMessageService: accept attachment bytes, store base64 data URL in attachmentUrl ...
Add useSoftphone hook with WebPhone SDK, STOMP events, and REST data loading
Add call event webhook pipeline; branch SMS vs telephony events before processing
Add capabilities, SIP credentials, and call management REST controllers
Implement RingCentral call management methods (sip, history, voicemail, presence, queues)
Extend PhoneProvider interface with call management methods; update stubs
Explicitly stringify Long IDs in SmsController responses
**************** Long-as-string approach was not taking effect. Directly call .toString() on all Long IDs in the controller flat-map responses to guarantee no J...