परिवर्तन लॉग
क्या नया है.
यह जहाज के रूप में, प्लेटफार्म के हर सुधार.
· EmailService
IMAP/SMTP समर्थित भेजने, फ़ोल्डर और क्लाउड स्टब्स की खोज
IMAP/SMTP प्रतिनिधिमंडल पैटर्न को सार में निकालेंImapbackedCloudProvider और Zoho, IceWarp, एक्सचेंज, Google Workspace, और Microsoft 365 का विस्तार हुआ है। यह आधार वर्ग MailSender, MailReader, फ़ोल्डर प्रबंधक और कार्यान्वयन करता है EmailImapService, EmailSmtpService, and Search Service के शीर्ष पर खोज प्रदाता — इसी तरह की सेवाओं Kamomail उपयोग करता है — तो: - SMTP क्रेडेंशियल के साथ किसी भी क्लाउड प्रदाता के लिए Draft कार्य को भेजें / सहेजें। - सभी फ़ोल्डर संचालन (create / rename / हटाना / चाल / setFlags / IMAP के माध्यम से Message को हटा दें। - खोज मौजूदा खोज सेवा को प्रतिनिधि करती है। - संचालन और इनलाइन साइड पढ़ें: प्रतिपादन के माध्यम से प्रवाह जारी है साझा ईमेलImapService parser. प्रत्येक कंक्रीट प्रदाता में शेष स्टब - RealtimeNotifier (जहां) लागू), डोमेन मैनेजर और मेलबॉक्सप्रोविज़नर - वास्तव में जरूरत प्रदाता-मूल व्यवस्थापक एपीआई (माइक्रोसॉफ्ट ग्राफ, गूगल व्यवस्थापक एसडीके, जोहो एडमिन एपीआई, EWS, IceWarp व्यवस्थापक) जो अभी तक इस कोडबेस में वायर नहीं हैं। प्रत्येक अब स्टब एक TODO-शैली की टिप्पणी करता है जिसका नाम एपीआई है जो इसे लागू करेगा।.
· EmailService
IMAP समर्थित MailReader for the cloud-provider stubs
जोहो, IceWarp, एक्सचेंज, Google Workspace, और Microsoft 365 सभी IMAP को उजागर करते हैं, इसलिए प्रत्येक क्लाउड-प्रोवाइडर स्टब के मेलReader तरीकों को ईमेलImapService के माध्यम से वायर करें UnsupportedOperationException फेंकने के बजाय। यह: - उन प्रदाताओं पर संदेश पढ़ने को अनब्लॉक करें जब केवल IMAP क्रेडेंशियल हैं कॉन्फ़िगर किया गया (आज सबसे आम तैनाती)। - नई सामग्री आईडी / इनलाइन संलग्नक मेटाडाटा प्रवाह को समान रूप से बनाता है प्रत्येक प्रदाता, चूंकि ईमेलीमैप सर्विस एकल पार्सर है। - इनलाइन-image समापन बिंदु को हल करने की अनुमति देता है cid: किसी भी प्रदाता के लिए संदर्भ। शेष क्लाउड प्रदाता विधियों (sending, फ़ोल्डर प्रबंधन, प्रावधान,) डोमेन ops अभी भी UnsupportedOperationException हैं - उन की जरूरत है प्रदाता-मूल एपीआई और यहां दायरा में नहीं हैं। इसके अलावा MailContext.toMailCredentials () जोड़ती है ताकि प्रदाता (और मौजूदा) KamoMailReader एडाप्टर) एक एकल क्रेडेंशियल-संवर्ती सहायक साझा करते हैं।.
· kamo-internal
Render inline cid: नए ईमेल सेवा समापन बिंदु के माध्यम से छवियों
जब कोई संदेश इनलाइन भागों को उजागर करता है (प्रत्येक एक ContentId ले जाता है), तो ईमेल रेंडर अब <img src="cid:..."> माउंट समय पर संदर्भ ************* जो प्रॉक्सी अब भी इसलिए ब्राउज़र पर कैश-कंट्रोल लाने वाली छवि को कैश करता है। - EmailAttachment (दोनों बातचीत के प्रकार और स्थानीय प्रतिलिपि में) संदेशब्राउज़र) सामग्री आईडी और इनलाइन फ़ील्ड प्राप्त करता है। - SanitizedEmailRenderer inlineImageBaseUrl + inlineContentIds स्वीकार करता है; पर cid: imgs यह ज्ञात cids को फिर से लिखते हैं और बाकी छिपाते हैं, मौजूदा के साथ अनैतिक हैंडलर अभी भी किसी अन्य टूटी हुई छवि को छुपाता है। - समर्पित साइड स्ट्रिपिंग जो सैनिटाइज़र में रहते थे, को उलट दिया जाता है - पुनर्लेखन प्रतिपादन समय से संबंधित है, जहां संदेश संदर्भ मौजूद है। - थ्रेडडेटेल व्यू और संदेशब्राउज़र में दृश्य संलग्नक सूची इनलाइन भागों को फ़िल्टर करें ताकि एम्बेडेड हस्ताक्षर लोगो अब दिखाई न दें डाउनलोड करने योग्य संलग्नक.
· EmailService
इनलाइन छवि MIME भागों और सतह सामग्री आईडी मेटाडाटा परोसें
Render <img src="cid:..."> इनलाइन भागों को उजागर करके संदेश यूआई में कि एचटीएमएल शरीर संदर्भ। - अटैचमेंटइन्फो सामग्री आईडी (कोण कोष्ठक के बिना) और इनलाइन ध्वज प्राप्त करता है। - parsemulpart और getAttachment शेयर एक एकल isAttachmentPart predicate और एक पुनरावर्ती वॉकर, इसलिए इनलाइन भागों ने मल्टीपार्ट / संबंधित के अंदर घोंसला किया कब्जा कर लिया जाता है (और उनके सूचकांक दो तरीकों में संरेखित रहते हैं)। इससे पहले आवर्ती माता-पिता की संलग्नक सूची को ओवररोट करते हैं, जो यह भी नेस्टेड संरचनाओं में वास्तविक लगाव गिरा दिया। - हैटैचमेंट अब केवल गैर-इनलाइन भागों द्वारा संचालित है - हस्ताक्षर लोगो नहीं अब हर संदेश पर पेपरक्लिप को लाइट करें। - नया समापन बिंदु GET ************* दोनों पर EmailController और SharedMailboxMailController; साइड को हल करता है parsed संलग्नकInfo, सामग्री-Disposition के साथ भाग को स्ट्रीम करता है: इनलाइन कैश-कंट्रोल: निजी, अधिकतम आयु = 3600।.
· KlusterServices
मूल्य निर्धारण@kamocrm.com मेलबॉक्स और बाहरी IMAP नोडपोर्ट जोड़ें
नई सेवा मेल/dovecot-imap-external (NodePort 30143 -> 143) IMAP $NODE:30143 पर क्लस्टर के बाहर से पहुंचा जा सकता है। बीज price@kamocrm.com मेलबॉक्स को फिर से बनाना; लाइव पंक्ति पहले से ही MySQL में मौजूद है।.
· kamo-internal
Redesign ChatsList rows - सुरुचिपूर्ण लेआउट, कोई क्षैतिज स्क्रॉल, ऑनलाइन डॉट्स, अपठित बैज, सापेक्ष टाइमस्टैम्प
· MediaService
Add GET /sessions/{guid}/members endpoint with display-name priority
Returns member list with name resolved via usernameAlias → fullName → alias → username, matching the same priority as the chat sessions list. This feeds ChatBox.loadMembers() so the tool window title bar can show the correct preferred name.
· kamo-internal
Derive and dispatch tool window title from session members
Adds onMembersChange callback to ChatBox; ChatTool derives the title (single name for 1-on-1, or '<name> (+N more)' for groups) and dispatches tool:title to update the ToolWindowShell title bar dynamically.
· kamo-internal
Lift search above tab strip, share query across Members and Chats tabs
Moves the search TextField from MemberList into NavTopPanel above the Tabs. Passes searchQuery as a prop to both MemberList and ChatsList so a single field filters both tabs. ChatsList filters rows by matching any non-self member's name.
· MediaService
चैट-लिस्ट अपडेट के लिए ACTIVITY पेलोड के साथ ऑगमेंट अपठित प्रसारण
· kamo-internal
NATS के माध्यम से लाइव चैट-लिस्ट अपडेट अपठित चैनल
· kamo-internal
बातचीत केंद्र पैनल में सदस्यों / चैट के लिए टैब
· kamo-internal
अनंत स्क्रॉल के साथ चैट सूची, इंटरसेक्शन पर्यवेक्षक के माध्यम से आभासी
· kamo-internal
बहु-चयनित सदस्यसमूह चैट शुरू करने के लिएलिस्ट
· kamo-internal
अवतार स्टैक, शीर्षक पॉपओवर और सदस्य पिकर के साथ चैट हेडर
· kamo-internal
ड्रैग-ड्रॉप, लंबित अटैचमेंट चिप्स, मल्टी-लाइन इनपुट के साथ संगीतकार
· kamo-internal
अवतारों के साथ संदेश बुलबुला, होवर कार्रवाई, और सूचक देखा
· kamo-internal
इनलाइन अटैचमेंट रेंडरिंग और लाइटबॉक्स
· kamo-internal
सत्रों, रसीदों, संलग्नकों के लिए क्लाइंट प्रकार और हुक
· kamo-internal
खोज-or-create, सदस्यों, संलग्नक, इमेजिंग प्रॉक्सी, mute, रद्द करने के लिए प्रॉक्सी मार्ग
साझा ************* ****** ऐप / लीब / mediaserviceUrl.ts के लिए सहायक। प्रॉक्सी मार्ग जोड़ें: खोज-or-create, सदस्यों, प्राप्तियों, संलग्नक (streaming), mutes, रद्द करना,
· MediaService
Configmap entries for attachment limits and multipart
· MediaService
Paged chat list with previews, members, unread counts
that returns ChatListRowDto rows including last message preview, member summaries, per-session unread counts, and ownLastViewedAt.
· kamo-shared-library
Add countUnreadAfter(guid, memberId, since) to MediaObjRepository
Needed by paged chat-list endpoint to compute per-session unread counts when ownLastViewedAt is a LocalDateTime pointer rather than a message UUID.
· MediaService
Real NATS publisher impl and READ_RECEIPT broadcast
· MediaService
Per-viewer mute endpoint and message filter
· kamo-shared-library
**************** मीडिया सत्र के लिए
· MediaService
Imaging proxy with HTTP Range support and per-member download tracking
· kamo-shared-library
Add MediaObjImgDownloadRepository with existsByObjImgIdAndMemberId
Required by ImagingProxyService (Task 10) to deduplicate per-member download tracking without a full table scan.
· kamo-shared-library
Add CHAT_ATTACHMENT assoc type with imaging-chat-attachments bucket
· kamo-shared-library
Service methods for exact-match find/create, member add, mute, revoke, read

तुम्हारा ब्रह्मांड इंतजार कर रहा है.
मिनटों में मुफ्त शुरू करें. जब भी आप तैयार हों तो उत्पाद जोड़ें - कोई माइग्रेशन नहीं, कोई नया लॉगइन नहीं.
हमेशा के लिए मुफ्त - कोई क्रेडिट कार्ड की आवश्यकता नहीं