परिवर्तन लॉग
क्या नया है.
यह जहाज के रूप में, प्लेटफार्म के हर सुधार.
· kamo-shared-library
सटीक-मैच खोजने, पृष्ठित सूची, रसीदों के लिए रिपोजिटरी क्वेरी
· kamo-shared-library
DateLastView to MediaSessionMember for रसीद टाइमटैम्प्स
· kamo-shared-library
जोड़ें isAccessRevoked झंडा प्रति संलग्न पहुँच नियंत्रण के लिए
· kamo-marketing
Distinguish actively-translating vs queued messages
The translation queue was already sequential, but every queued bubble rendered "Translating…". Now the single in-flight message shows "Translating…" with a pulsing dot and the rest show "Pending Translation…" with a static dot, so the visitor can see the queue progressing.
· kamo-internal
Distinguish actively-translating vs queued messages
The streaming queue was already strictly sequential (one fetch at a time), but every queued message rendered "Translating…" because they all shared the same pendingTranslation flag. Split that into two states: the single message currently in flight shows "Translating…" with a pulsing dot, all the other queued messages show "Pending Translation…" with a static dot. Live (just-arrived) messages are translated alone and start in the active state.
· kamo-marketing
Show error icon when a message fails to translate
When the per-message translate call returns translated:false, errors out, or times out, the chat bubble now renders an AlertTriangle icon in red with tooltip "Failed to translate message." instead of silently leaving the bubble in the original language.
· kamo-internal
Show error icon when a message fails to translate
When the per-message translate call returns translated:false, errors out, or times out, the chat bubble now renders a small red ErrorOutline icon in place of the translate badge with tooltip "Failed to translate message." instead of silently leaving the bubble in the original language. The flag is reset whenever the user picks a new language so a re-attempt can succeed without the stale error sticking around.
· kamo-marketing
Stream translations newest-first for visitor history
When the visitor lands on a non-English locale and the support chat has existing English messages, every bubble flagged needsTranslation by the backend now shows a "Translating…" placeholder while a streaming queue fills them in one at a time, starting from the newest message. A generation counter prevents stale queues from clobbering current state.
· kamo-internal
Stream message translations newest-first on language switch
When the user picks a new language (or opens an existing chat in a language different from the messages' source), every bubble that needs translation immediately renders a "Translating…" placeholder and the translations stream in one at a time starting from the most recent message and working backwards. This includes the user's own past messages — anything authored in a different language than the viewer is now translated. A generation counter cancels in-flight queues if the user changes language again.
· kamo-marketing
Auto-translate visitor and agent messages
Live agent replies arriving in a language other than the visitor's URL locale now show a "Translating…" bubble while the TranslateService call resolves, then swap to the translated text with a Languages badge whose tooltip shows the source language and the original message. Visitor messages are tagged with the URL locale on send so the agent's chat can translate them into the agent's profile language. Messages loaded into history are translated up front via the new ?lang=<locale> query param on /api/chat/support.
· kamo-internal
Translate chat messages into the viewer's language
Adds a "My Language" flag picker in NavTop (left of the email tool, separated by a vertical rule). Selecting a language writes back to Member.language and syncs the locale cookie so the entire UI switches; it also broadcasts an event that any open ChatBox uses to re-fetch its history in the new language. ChatBox now fetches messages with ?lang=<locale>, renders translated bubbles with a small Translate badge whose tooltip shows the original text and source language, and shows a "Translating…" placeholder for live messages until the TranslateService call returns. The send path tags every outbound message with the author's locale so other viewers can translate it on demand.
· APIService
Proxy support-message translate endpoint
Adds a passthrough route for the new MediaService endpoint that translates a single support-chat message into the visitor's URL locale. The marketing-side chat widget hits **************** which the gateway now forwards to MediaService with the standard public-chat auth and rate-limit checks.
· MediaService
On-demand translation for chat and support messages
Captures the source language for every chat / support message and adds an optional ?lang=XX param on the message-fetch endpoints plus a per-message POST /translate endpoint. MediaService now talks to TranslateService via TranslationServiceClient, and MessageTranslationService caches results in MediaObjMsgTranslation so the same translation is never paid for twice. Wires the same flow into the public-chat (visitor) path: visitors send their URL locale as sourceLanguage, and the agent / visitor sides each pull translations into their own preferred language. Adds the translate-service secret to the MediaService deployment so the new client can authenticate.
· kamo-shared-library
Translation cache for chat messages
Adds the MediaObjMsgTranslation entity (one row per (message, language) pair) and an optional sourceLanguageId column on MediaObjMsg so chat messages can be translated on demand and re-served instantly to other viewers in the same language. ChatMessageDto carries sourceLanguageId so live recipients know whether they need to translate. MediaService.createMessage gains an overload that takes the authoring language, falling back to Member.language for legacy callers.
· kamo-internal
व्यक्तिगत + चैट/Docs/Notes/KB/HRS जोड़ें अनुभाग
/ सेटिंग इंडेक्स ने गैर-व्यवस्थापकों के लिए कोई अनुभाग नहीं दिखाया क्योंकि हर कोई किसी को नहीं दिखाया गया है मौजूदा अनुभाग को एडमिन राइट (CONFIGURE SYSTEM) पर रखा गया था, प्रबंधन * SETTINGs, MANAGE ACCESS RULES. केवल एक नियमित टीम सदस्य समर्थन अधिकार वास्तव में 3 कार्ड (टोपिक्स, एनालिटिक्स, अनुसूचित) देखा समर्थन और कुछ नहीं। हमेशा दृश्यमान व्यक्तिगत अनुभाग (My Profile, Audio & Video) जोड़ें, खाता गतिविधि और योजना और बच्चे के अंग पर बिलिंग दर्शक के अपने / सेटिंग / सदस्य / <myId> टैब - इसलिए सेटिंग्स कभी खाली नहीं है, org स्तर के अधिकारों की परवाह किए बिना। इसके अलावा पहले-मिसिंग चैट / डॉक्स / नोट्स / नॉलेज की सतह बेस / एचआरएस अनुभाग - प्रत्येक को संबंधित ओरग फीचर फ्लैग पर रखा गया है इसके अलावा उपयुक्त MANAGE * SETTINGS राइट — समर्पित मैच के लिए उन ऐप्स के लिए पहले से मौजूद / सेटिंग / फीचर्स /<app> पेज।.
· kamo-internal
रायपोर्ट पहलू अनुपात के आधार पर लक्ष्य उद्घाटन घुमाएं
गोल फ्रेम अब atan2 (viewportH, viewportW) द्वारा झुकता है इसलिए इसका खुला राइट साइड का उद्देश्य व्यूपोर्ट विकर्ण की ओर है - 16: 9 के लिए मॉनिटर करता है उद्घाटन बिंदु ~29° पूर्व के दक्षिण; चित्र के लिए यह करीब इंगित करता है दक्षिण जिस तरह से उपयोगकर्ताओं को स्वाभाविक रूप से थोक से सिर फेंकना पढ़ता है ऊपरी-बाएं कोने की ओर वापस स्क्रीन करें। भौतिकी: गोल टकराव अब गोल-स्थानीय coords में चलता है। प्रत्येक फेंकना सिर का केंद्र + वेलोसी स्थानीय फ्रेम में घूमती है, मौजूदा AABB अक्ष-संरेखित दीवारों के खिलाफ टकराव अपरिवर्तित होता है, फिर कोई भी पुश-आउट और वेग प्रतिबिंब विश्व अंतरिक्ष में वापस घूमता है। The स्कोर जोन चेक स्थानीय कोऑर्ड्स में भी किया जाता है इसलिए वास्तव में एक सिर (rotated) उद्घाटन अभी भी अंक दर्ज करें। दृश्य: SVG फ्रेम + प्रवेश के किनारे चमक एक रोटेशन के अंदर रहते हैं कंटेनर; समारोह ओवरले (GOAL!/MISS!) और REMOVE कैप्शन इसलिए पाठ पढ़ने योग्य रहता है तो रोटेशन के बाहर बैठो। अब मिस शेक शून्य के बजाय आधार कोण के आसपास दोलन। गोल कोण को एक स्टेट सेटर के माध्यम से व्यूपोर्ट आकार पर प्रतिष्ठित किया जाता है, साथ ही साथ एक समानांतर रेफरी इसलिए फेंक आरएएफ ने प्रत्येक फ्रेम में नवीनतम मूल्य पढ़ा कॉलबैक को फिर से बनाने के बिना।.
· kamo-internal
स्कोर / मिस समारोह के साथ फेंकने के लिए लक्ष्य
132 × 132 गोल फ्रेम ऊपरी-बाएं में दिखाई देता है जब भी सिर में होता है एकल-ड्रैग या सक्रिय-विकास, कोने से 56px ऑफसेट ताकि सिर कर सकते हैं इसे छोड़कर सामग्री पर जाएं। तीन ठोस दीवारों (शीर्ष, बाएं, नीचे) के रूप में कार्य करते हैं लोचदार बाउंस सतहों (0.65 विराम); दाईं ओर खुला है प्रवेश बैक पैनल में एक बोल्ड रेड एक्स "हटना" इरादे बनाता है unmistakable, और एक pulsing प्रविष्टि सूचक खुला पक्ष को चिह्नित करता है। जब एक फेंका सिर का केंद्र स्कोर क्षेत्र में पार हो जाता है, तो इसे हटा दिया जाता है थ्रो मैप से, अंतर्निहित टूल विंडो बंद हो जाती है उपकरण:बंद, और सिर को हटा दिया जाता है। एक ग्रीन रेडियल फ्लैश, 18 कण सोने / नारंगी फट, और एक bouncing GOAL! ओवरले स्कोर पर आग। जब एक फेंका हुआ सिर केवल किसी भी लक्ष्य दीवार को उछालता है (350ms द्वारा घोषित किया गया तो एक असफल घटना स्पैम नहीं करता), लक्ष्य लाल और एक MISS! ओवरले पंच में। स्थिरता: गोल टकराव पूरी तरह से फेंक आरएएफ लूप के अंदर रहता है (कोई स्प्रिंग सिस्टम कंटेंटियन नहीं) और हेक्सहेडगोअलजोन सभी का मालिक है आंतरिक रूप से उत्सव - इंजन केवल घटनाओं को आग लगाता है। शुद्ध एडिटिव फीचर; गैर-थ्रो ड्रैग / ड्रॉप पथ अपरिवर्तित हैं।.
· kamo-internal
पूल-टेबल टकराव और धूमकेतु निशान के साथ भौतिकी फेंको
थ्रो थ्रेसहोल्ड के अतीत में एक सिर को फ़्लिक करना इसे व्यूपोर्ट में लॉन्च करता है स्पष्ट भौतिकी (घर्षण, बढ़त उछाल, सिर बनाम सिर लोचदार) के तहत टकराव। अभी भी जारी होने पर धीमी गति से गिरती है। जबकि सिर गति में एक आर्केड शैली का फायर ट्रेल इस प्रकार है। थ्रो दोनों रिलीज वेग (> = 650 px / s द्वारा गेटेड है। अंतिम ~ 110 ms) और कुल खींचें दूरी (> = 30 px) तो एक त्वरित सटीक फिर से स्थिति कभी गलती से एक फेंक ट्रिगर नहीं है। आवर्धन पर कब्जा कर लिया है 3200 px/s धार-ऑफ-डिटेक्शन flicks तामे रखने के लिए। थ्रो आरएएफ लूप गति-मूल्य को सीधे .set() के माध्यम से लिखते हैं - उड़ान के दौरान फ्रेमर-मोशन स्प्रिंग्स को बायपास करना - और जब स्व-stops सभी प्रमुख स्टॉप स्पीड थ्रेसहोल्ड के नीचे छोड़ देते हैं। PlaceHomeCluster और SoftPushCluster वर्तमान में किसी भी एंकर को फेंकने के नक्शे में छोड़ देता है तो स्प्रिंग सिस्टम कभी भौतिकी इंटीग्रेटर से लड़ता है। स्ट्रक हेड किसी भी क्लस्टर से अलग होते हैं, एक एकल क्लस्टर को बढ़ावा देते हैं, और टकराव द्वारा दिए गए आवेग के साथ थ्रो सिमुलेशन में शामिल हों। ट्रेल रेंडरिंग: हाल ही में रेडियल-ग्रेडेंट एम्बेडर्स के साथ एसवीजी परत स्थितियां, मिक्स-ब्लेंड-मोड: योजक चमक के लिए स्क्रीन, सिंगल सीएसएस ब्लर नरमता के लिए फिल्टर - आर्केड सौंदर्य, निकट शून्य सीपीयू लागत।.
· kamo-internal
नया org में स्विच करने के लिए सर्वर-मिनेटेड OTK का उपयोग करें
POST /api/security/org द्वारा लौटाए गए otk को फ़ॉलो-अप पर प्राथमिकता दें /api/security/enter-as Round-trip. सर्वर अब एक ताजा मालिक को मिंट करता है ऑर्ग निर्माण के हिस्से के रूप में सत्र, इसलिए पोस्ट-create नए को फिर से निर्देशित org's /validate is deterministic - डोमेन निर्माण के साथ कोई दौड़ नहीं, नहीं चुप प्रवेश के रूप में विफलता माता-पिता के रूप में सत्र पर निर्माता छोड़ दिया।.
· SecurityService
मिंट मालिक *** + ओटीके ऑन ऑर्ग बनाते हैं
निर्माण के बादऑर्गनाइजेशनOwner, नए मालिक के लिए बाध्य एक ताजा *** mint टीम मेम्बर और आईडी / सदस्यों के साथ अपने OTK वापस लौटें। इसके बिना निर्माता माता-पिता-ऑर्ग सत्र पर रहता है - सीमित अधिकार और isOrganizationOwner=false — तो नया बच्चा org सेटिंग्स पृष्ठ दिखाई देता है जब तक वे मैन्युअल रूप से फिर से प्रवेश नहीं करते तब तक गेट और प्लान और बिलिंग छिपा हुआ है।.
· kamo-shared-library
स्टार्टअप पर सेल्फ-हील अनप्रोविजन्ड कम्पऑर्डर
@PostConstruct पर सभी APPROVED COMP आदेशों को स्कैन करें और किसी को भी प्रावधान करें। एक AccountSubscription की कमी है। Idempotent — findor-create मतलब सुरक्षित करने के लिए बार-बार रन करें।.
· kamo-internal
माय बिज़नेस से पहले बायीं तरफ उपलब्धता की स्थिति में गिरावट
सही एक्शन बार से बाएं स्वागत खंड में स्टेटस गोली को स्थानांतरित करता है, इसे ग्रीटिंग सेपरेटर और मेरे व्यवसायों के बीच एक विभाजक के साथ रखता है। अब अनाथ ऊर्ध्वाधर नियम को हटा देता है जो पहले आइकन बटन से स्थिति को अलग करता है।.
· kamo-internal
लक्ष्य जोड़ेंऑर्गनाइजेशनएड टू सब्सक्रिप्शनऑर्डर टाइप और सब्सक्रिप्शन बनाएं आदेश
· SecurityService
अनुमोदित आदेश से कम्प सदस्यता को सक्रिय करने के लिए प्रावधान-कॉम्प एंडपॉइंट जोड़ें
पोस्ट ************* कॉल ********** फिर Entitlement Service के माध्यम से लक्ष्य ऑर्ग के लिए पात्रता प्रदान करता है।.
· kamo-shared-library
कंपनी के आदेश अनुमोदन ऑटो-प्रोविजन लेखा सदस्यता और लाइसेंस आवंटित करता है
- सब्सक्रिप्शनऑर्डर: लक्ष्य ऑर्गनाइज़ेशन (Numllable FK to Orgs) जोड़ें - ******************* लक्ष्य ऑर्गनाइजेशन आईडी स्ट्रिंग जोड़ें - AccountRepository: Add findByPrimaryMember Id for account lookup by धारक सदस्य - सब्सक्रिप्शन सर्विस: बिलिंग रिपोज़ इंजेक्षन; प्रावधानCompSubscription बनाता है / uperts ************* सदस्यता सदस्य और सक्रिय लेखा लक्ष्य-ऑर्ग सदस्य के लिए लाइसेंस; अनुमोदन आदेश उसे कंपनी भुगतान विधि के लिए बुलाता है; नया सक्रिय मौजूदा APPROVED COMP आदेशों के retroactive प्रावधान के लिए कॉम्प्रैव्ड
· kamo-internal
एक्शन पॉपओवर + साइज कंट्रोल के साथ क्लिक-टू-ओपन बदलें
एक हेक्स हेड पर क्लिक करने से अब एक पॉलिश ग्लास-morphism पॉपओवर खुल जाता है इसके बजाय तुरंत अपने टूल विंडो खोलने के लिए प्रासंगिक कार्य। सदस्य चैट हेड एक्सपोज़: ओपन चैट, व्यू अकाउंट, ईमेल, इन्वाइट टू मीटिंग, कॉल (जब दोनों पक्षों के पास एक पंजीकृत वीओआईपी एक्सटेंशन होता है); टूल हेड ओपन <toolName> को उजागर करें। एक आकार उप-मेनू उपयोगकर्ता को छोटे / मध्यम चुनने देता है / उस विशिष्ट सिर के लिए बड़े (दोनों के माध्यम से प्रति सदस्य) सदस्यUiPreference स्टोर) के साथ एक वैश्विक पैमाने स्लाइडर जो हर किसी को प्रभावित करता है इस मशीन पर हेक्स हेड (स्थानीय भंडारण में खड़ा)। अब टूल विंडो इसलिए वे आंशिक रूप से बंद कभी नहीं खुलते तो वे दृश्य के लिए चौड़ाई / ऊंचाई दबाना यहां तक कि सिकुड़ने वाली खिड़कियों के साथ भी स्क्रीन।.
· InitializerService
MEMBER UI PREFERENCES तालिका (order 60) जोड़ें
सामान्य प्रति सदस्य UI-preference स्टोर समर्थन के लिए Idempotent CREATE हेक्स-हेड पॉपओवर आकार चयनकर्ता और भविष्य के प्रति सदस्य यूआई सेटिंग्स। स्कीमा EmbRecordState कन्वेंशन (is active, date created) को प्रतिबिंबित करता है, Date updated) डेटा मॉडल में कहीं और इस्तेमाल किया जाता है।.
· SecurityService
Add MemberUiPreferenceController for per-member UI settings
Backs the new hex-head popover size selector and any future small per- member UI preference. Endpoints under /api/security/members/me/ui- preferences resolve the member from the OTK session and read/write JSON values keyed by an opaque prefKey string.
· kamo-shared-library
Add MemberUiPreference entity for per-member UI prefs
Generic per-member UI preference store (memberId, prefKey, JSONB value) for small persisted UI settings. First consumer is the hex-head popover size selector.
· kamo-internal
वायर फीचर्स चाइल्ड-ऑर्ग गैटिंग के लिए प्लेटफॉर्म सदस्यता के लिए प्रबंधक
फीचर्समैनेजर को विरासत कहते थे **************** वास्तविक मंच सदस्यता पढ़ने के बजाय फेंकता (उंगला हुआ गिरावट)। अब कॉल करें ************* जो रूट org के क्वेरी करता है कॉलर की क्रॉस-ऑर्ग सदस्यता के लिए वाणिज्य सदस्यता आदेश। जब कॉलर के पास रूट ऑर्ग पर एक APPROVED COMP ऑर्डर है, सभी फीचर गेट्स के रूप में खुला है Comped चाइल्ड-ऑर्ग एडमिनिस्ट्रेशन की उम्मीद है।.

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