Журнал змін
Что нового.
Все усовершенствования платформы, как только она будет запущена.
· kamo-shared-library
Репозиторійні запити для точного пошуку, стор. список, квитанції
· kamo-shared-library
Додати датуВипробувано в MediaSessionMember для отримання міток часу
· kamo-shared-library
Add 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, MANAGE * SETTINGs, MANAGE ACCESS RULES. Постійний учасник команди підтримка прав точно 3 карти (Топіка, аналітика, графік роботи Підтримувати і нічого іншого. Додайте завжди-видимий персональний розділ (Мій профіль, аудіо та відео) Діяльність облікового запису та Плани та Billing on child orgs) які посилання на власних /settings/member/<myId> вкладки — так налаштування ніколи не порожній, незалежно від прав на рівні org. Також поверхня попередньо допустимого чату / Docs / Примітки / Знання Основа / секція HRS — кожен забитий на відповідному прапорі функції org плюс відповідні MANAGE * SETTINGSправо — відповідати виділеним /settings/features/<app> сторінки, які вже існують для цих додатків.
· kamo-internal
Поворотне відкриття цілі на основі співвідношення сторін зору
Рахункова рама тепер нахиляється за допомогою atan2(viewportH, viewportW) так, щоб відкрити Правова сторона спрямований на перегляд портів діагоналлю — для 16:9 моніторів точки відкривання ~29° південь від сходу; для портрета його точки ближче до південь. Читає спосіб користувачів, природно, кидають голову з об'єму екран назад до верхнього кута. Фізика: мета зіткнення зараз працює в мета-LOCAL coords. Кожен кицька центр голови + оксамитовість, що обертається в місцевому каркасі, існуючий AABB зіткнемося з віссю вирівнюючими стінами не змінюється, потім будь-який Відстеження швидкості повертається до світового простору. Про нас перевірка зони рахунку також здійснюється в місцевих коордах, тому голова дійсно вводити (поворотний) відкриття ще бали. Візуальний: рама SVG + вхідний світлий живий всередині обертання контейнер; торжесті накладки (GOAL!/MISS!) та вечеря REMOVE сидіти за межами обертання, тому текст залишається читабельним. Міс-Шейк зараз коливання навколо кута основи замість нуля. Кут ходової кістки передається на перевантаження портів через державний сеттер, з Паралельний реф, так що кинути RAF читати останнє значення кожного кадру без відновлення зворотного дзвінка.
· kamo-internal
Позбутися з підрахунком / домовленістю
Рамка цілей 132 × 132 з'являється у верхньому лівому куті, коли голова знаходиться в соло-драга або активна стрілка, офсет 56px від кута так глави можуть пропущений або за ним. Три твердих стін (верхова, ліва, низ) діють як пружні відбійні поверхні (0.65 заміна); права сторона відкрита запис. Золото червоний X в задній панелі робить "попередня" непристойний безпомилково і пульсуючий показник вводу позначається відкритою стороною. При перехресті кишеного центру голови в зону підрахунку її знімають з карти кидання, вікно основного інструменту закрито через інструмент:закривати, і голова знімається через removeHead. Зелений радіальний миготливий, 18-частиновий золото/помаранчевий лопець, і купівля GOAL! накладка вогонь за рахунком. Коли кинути голову merely bounces від будь-якої стіни цілі (debounced від 350ms, так що єдиний не не спам подій), мета червоне і MISS! накладні перфоратори. Стабільність: цілі зіткнення життя повністю всередині кисті RAF (без вмісту пружини-системи), і HexHeadGoalZone володіє усіма святковий стан внутрішньо — двигун тільки вогнетривкі події. Чистий безперешкодна функція; неперервні перетягування / перетягування стежок.
· kamo-internal
Висока фізика з зіткненими зіткненьками та причіпом
Затискаючи голову минулого порогу кидання запускає його через порт перегляду під явною фізикою (фрикція, кромка, головка-vs-head пружна зіткнення. Повільні краплі все ще землі, де випустили. Поки голова в русі аркадно-стильського пожежного причепа слідувати за ним. Позбавлення від швидкості виходу (>= 650 px/s в середньому над last ~110 ms) і загальна відстань (>= 30 px) так швидко точний не випадково запускає кисть. Магнію прихоплюється на 3200 ПВ/с, щоб тримати краю-виявлення флизок tame. Накидка петлі RAF приводів значення напишіть безпосередньо через .set() — обходу оздоблювальних пружин при польоті — і самостоп, коли всі голови опускаються нижче швидкісного порогу. місцебудинкиКлюстер і SoftPushCluster пропускає будь-який анкер в даний час в кисті карті так пружинна система ніколи не бореться з фізикою інтегратором. Застрягти голову від будь-якого кластеру, просувати на солоний кластер, і приєднуватися до імітації кидання з імпульсом, що перешкоджається зіткненню. Траильне рендеринг: шар SVG з радіально-градієнтовними рельєфами позиції, мікс-блонд-моде: екран для добавки світанок, одномісний CSS розмиття фільтр для м'якості — аркадна естетична, порядна вартість процесора.
· kamo-internal
Використовуйте сервер-minted OTK для переходу на новий org
Повернути отк повернув POST /api/security/org за додержанням /api/security/enter-as round-trip. Сервер тепер заміняє свіжому власнику сеанс як частина створення org, так що після створення перенаправлення на новий org's /validate є детермінізмом - без раси з створенням доменів, немає Німецька відмова від творця на батьківсько-орговому засобі.
· SecurityService
Mint owner *** + OTK на org створити
Після створенняОрганізаціяОвнер, м'ята свіжі ***, що межує з новим власником КомандаМебер і повернення OTK поряд з id/членами. Без цього творець залишається на батьківсько-оргській сесії — обмежені права та isOrganizationOwner=false — так з’являється нова сторінка налаштувань дитини заглуха і плани і Billing приховані до тих пір, поки вони вручну re-enter.
· kamo-shared-library
Самохідні невиробничі КОМПАНІЇ
На @PostConstruct скануйте всі замовлення APPROVED та надайте будь-який, що відсутність облікового запису Idempotent — надійний сервіс для пошуку роботи повторюється.
· kamo-internal
Переміщення статусу доступності зліва перед моїми бізнесами
Розміщує стан таблеток з правої дії бару на ліву вітальну секцію, розміщуючи його між сепаратором привітання та моїми бізнесами з роздільником. Видаліть попереднє вертикальне правило, яке раніше відокремило статус з іконок.
· kamo-internal
Додати цільОрганізаціяДля типів підписки та створенняНалаштування Замовити
· SecurityService
Додайте кінцеву точку, щоб активувати підписку на комп'ютер
POST ****************************************************************************************************************************************************************************************************************************************************************************** Контакти ****************************************************************************************************************************************************************************************************************************************************************.
· kamo-shared-library
КОМПАНІЮ ЗАБЕЗПЕЧЕННЯ АКЦІОНЕРІВ КОМПАНІЮ
- Абонемент: додати цільОрганізація (необхідний FK до orgs) - ******** додати цільОрганізаціяId string - AccountRepository: add findByPrimaryMember Id для пошуку облікових записів учасника - Абонентське обслуговування: введення векселевізійної репозиції; наданняКомпСубсcription створює/оновлює ****************************************************************************************************************************************************************************************************************************************************************************** Абонент, АКТИВНИЙ обліковий записЛіцензії для цільового партнера; затвердженняЗамовити його для способу оплати комп'ютерів; нова активаціяКомп'ютер для ретроактивного забезпечення існуючих замовлень APPROVED
· kamo-internal
Замініть клацання-відкриття за допомогою запобіжника дії + контроль розмірів
Натискання шестигранної головки тепер відкриває полірований скло-морфізм-поплав з контекстні дії замість негайного відкриття вікна інструментів. Члени чат глави expose: Відкритий чат, Перегляд облікового запису, електронна пошта, запрошення на зустрічі, Зателефонуйте (коли обидві сторони мають зареєстроване розширення VOIP); expose Open <toolName>. Розмір підменю дозволяє користувачеві підібрати невеликий/середній/ великий для цієї конкретної глави (підтриманий для учасника через новий Компанія UiPreference store пропонує широкий спектр функцій, які впливають на кожен шестигранна головка на даній машині (відповідна в місцевому Вікна інструментів тепер ширина затиску / витримка на переглядпорт, так що вони ніколи не відкриті частково екран навіть з шрункеном вікна.
· InitializerService
Додати таблицю MEMBER UI PREFERENCES (замовлення 60)
Idempotent CREATE для генеричного магазину UI-preference вибірка розміру шестигранного головка та майбутнього на-членах UI. Schema дзеркала EmbRecordState (is active, дата created, дата оновлюється) використовується в іншому місці в моделі даних.
· 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
Особливості дротуУправління підпискою на платформу для дітей-оргування
***, який кидає (загальнений недолік) замість читання підписки на реальні платформи. Тепер дзвінки **************************************************************************************************************************************************************************************************************************************************************** Торгівля підписками на підписку для членства абонента. Коли абонент має APPROVED COM замовлення на кореневу org, всі функціональні ворота відкриті як Очікується, що для комп’ютерних адміністраторів.

Твій всесвіт чекає.
Почати безкоштовно за декілька хвилин. Додати продукти, коли ви будете готові — без перенесення, без нових реєстрацій.
Безкоштовно назавжди — не потрібна кредитна карта