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
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...
@জেসন আইপি বার্তাকে অগ্রাহ্য করুন, অলসদের সিরিয়ালের লোড লোড প্রতিরোধ করুন।
Use string conversationId throughout SMS tool to handle 64-bit IDs
Backend now serializes Long as string; update all conversationId types from number to string to match. Also enable send button when an attachment is present wit...
Serialize Long IDs as strings to prevent JS precision loss
CockroachDB unique_rowid() generates 64-bit integers larger than Number.MAX_SAFE_INTEGER (2^53-1). JS JSON.parse silently rounds them, causing conversation ID m...
Remove duplicate Back button from RingCentralConfig
Parent PhoneProviderSetup already renders an IconButton with ArrowLeft in the config view header, making the Back button inside RingCentralConfig a duplicate.
Return flat map from send endpoint to prevent LazyInitializationException
VoipMessage.conversation is FetchType.LAZY; after @Transactional commits, Jackson serializing the entity would throw LazyInitializationException causing a 500, ...
Fall back to org mainPhoneNumber when member has no VOIP config
Members without an individual MemberVoipConfig (or no fromPhoneNumber set) now use the org's mainPhoneNumber from VoipProviderConfig as the outbound number, ins...
Remove getJwtKey() from WebhookController after OAuth migration
Signature validation used jwtKey as HMAC secret which no longer exists on VoipProviderConfig. Skip validation for now consistent with ****************
Use plain img tags for local SVG provider logos
next/image does not reliably serve local SVGs without unoptimized flag. Plain img tags load /public assets directly with no issues.
Use correct session key casing for orgID and memberID
KSessionService stores keys as orgID and memberID (capital D). Both controllers were calling .get("orgId") and .get("memberId") which always returns null, causi...
Always show softphone and SMS buttons in NavTop
Removed isVoip gate so the buttons are always visible regardless of feature flag state.
Use feature type name as key before numeric id in org feature preprocessing
Java returns features with `type: "VOIP"` and a numeric `id`. The preprocessing chain had `obj.id` before `obj.type`, causing all features to get numeric string...
Volip সংযুক্ত করুন। VoS স্ট্রীম বিষয়বস্তুর অধীন এবং 'IpSPMpcrelice' নিয়ন্ত্রণ করুন
NATS স্ট্রিম শুধুমাত্র আড্ডার মাধ্যমে সম্প্রচার করা হয়। ovied <sobb\.com> ফেলে দাও অবৈধ সিম-লিংক ([BW-0007] কোনো সীমা নেই । sochip যোগ করা হয়েছে। [ অধ্যয়ন প্...
Add security-service.*** to K8s ConfigMap
KamoJwtService requires this property for Bearer token validation in DavAuthFilter, but the K8s ConfigMap overrides application.yml and was missing it — causing...
Show Phone System(s) settings unconditionally so orgs can configure VOIP before enabling it
- Remove isVoip gate from phone section on /settings page — Provider Setup card has no condition so it always appears; Agents and Dial Plans still gated by isVo...
Guard against non-array API responses in useContacts hook
setBooks, fetchContacts, and searchContacts now safely handle error objects and Spring paginated wrappers instead of crashing with 'e.map is not a function'.
চিহ্নিত তথ্যের মধ্যে 'ctinternet' থেকে 'create' অনুসন্ধানের মাধ্যমে অনুসন্ধানের ক্ষেত্রে সঠিক নাম
Inject helpTips into SettingsView help panel override in PhoneProviderSetup
Use outer SettingsView help panel on email provider config page
Push provider-specific help to HelpTipsOverrideContext so the config view uses the same Help & Tips panel layout as the list view, instead of rendering its own ...
Rename email nav sub-item from General to Provider Setup
Uses namespaced key Email - Provider Setup to avoid collision with the existing AI Provider Setup route entry.
Remove duplicate JPA repo scan — use parent package only
com.kamo.z.shared.email covers metadata.repos, scanning both caused BeanDefinitionOverrideException on messageLabelRepository.
Reorder source dropdown, default to user, use team member label
- Default scope changed from "company" to "user" - Dropdown order reversed: Team Members first, Department, then org - "Individual User" renamed to the parent o...
Remove placeholder text from preview, allow sending without subject
- Empty email body in preview no longer shows "Start typing your email..." - Subject is no longer required to send — Send button is enabled with just a recipi...
টেমপ্লেটের প্রস্থ বৃদ্ধি করলে, প্রস্থ বৃদ্ধি পাবে
টেমপ্লেটের সোর্স ড্রপ-ডাউন এখন পূর্ণ করুন: ১ স্থান। সম্পাদনা/স্থ বাটন, বাটনের বাটন এবং প্রেরণ করুন শিরোনামগুলি fixed:0.
Wrap email body in template HTML when sending
The send handler was sending raw editor content without the template. Now wraps the body in the full template layout (far bg, margin, near bg, padding, header, ...
Remove horizontal scrollbar and extend preview to full height
- Use padding on the outer far-bg div instead of margin on the inner near-bg div to prevent width:100% + margin overflow - Set overflowX:hidden on the preview...
Repopulate member/org data when switching source scope
The sync ref was set once and never reset, so switching scope left the new scope's config with empty content fields (empty names, email, company, etc.) causing ...
Move template dropdown, preview toggle, and attach to footer row
Move template scope dropdown, Editor/Preview toggle, and attachment button from the subject row to the bottom footer bar, aligned left. Draft and Send buttons s...
Fetch member/org data directly instead of through hooks
Removed useUserInfo, useSignatureData, and useImageResolver hooks which each had independent async fetch cycles causing race conditions where memberId/orgId wer...
Use example data in email preview when member/org data not loaded
The preview was rendering empty signatures because member/org data from useSignatureData returns empty strings while loading (or when memberId/orgId are 0). Now...
যেমন তুমি জাহাজ দেখেছ?
প্রত্যেকটা আপডেট স্বয়ংক্রিয়ভাবে আপনার কর্মক্ষেত্র স্বয়ংক্রিয়ভাবে. সপ্তাহের পর সপ্তাহের মধ্যে মুক্ত হয়ে তা দেখতে শুরু করুন।.