Changelog
Was ist neu?
Jede Verbesserung an der Plattform, wie sie geliefert wird.
· kamo-shared-library
Repository Abfragen für exact-match finden, geblätterte Liste, Quittungen
· kamo-shared-library
DatumLastViewed zu MediaSessionMitglied für Quittungszeiten hinzufügen
· kamo-shared-library
Hinzufügen Sie isAccessRevoked-Flag für die Zugriffskontrolle per-attachment
· kamo-marketing
Aktiv-Übersetzen vs. Warteschlangen-Nachrichten
Die Übersetzungsschlange war bereits sequentielle, aber jede Schlangenblase gemacht "Translating".... Jetzt zeigt sich die Single-Inflight-Nachricht "Translating"... mit einem pulsierenden Dot und der Restshow "Pending Translation"... mit einem statischen Dot, so dass der Besucher sehen kann, wie die Warteschlange voranschreitet.
· kamo-internal
Aktiv-Übersetzen vs. Warteschlangen-Nachrichten
Die Streaming-Warteschlange war bereits streng sequentientielle (eine holen zu einer Zeit), aber jede Warteschlange-Nachricht "Übersetzen"..., weil sie alle geteilt die gleiche anstehende Übersetzungsflagge. Teilen Sie das in zwei Zustände: die Single Nachricht, die derzeit im Flug ist, zeigt "Übersetzen"... mit einem pulsierenden Dot, alles die anderen in der Warteschlange angezeigten Nachrichten "Pending Translation"... mit einem statischen Dot. Live (gerade eingesendete) Nachrichten werden allein übersetzt und starten in der aktiven Zustand.
· kamo-marketing
Fehlersymbol anzeigen, wenn eine Nachricht nicht übersetzt
Wenn die per-Nachricht übersetzen Anruf zurück übersetzt:falsch, Fehler aus, oder mal out, die Chat-Blase macht jetzt ein AlertTriangle-Symbol in rot mit Tooltip "Failed to übersetzen Nachricht". statt still zu verlassen die Blase in der Originalsprache.
· kamo-internal
Fehlersymbol anzeigen, wenn eine Nachricht nicht übersetzt
Wenn die pro-Nachricht übersetzen Anruf Retite übersetzt:falsch, Fehler aus, oder mal out, die Chat-Blase macht jetzt ein kleines rotes ErrorOutline-Symbol anstelle der übersetzen Abzeichen mit Tooltip "Failed to übersetzen Botschaft". statt stillschweigend die Blase in der Originalsprache zu lassen. Die Flagge wird zurückgesetzt, wenn der Benutzer wählt eine neue Sprache, so dass ein erneuter Versuch kann gelingen, ohne dass der abgestandene Fehler herumklebt.
· kamo-marketing
Stream-Übersetzungen neueste für Besuchergeschichte
Wenn der Besucher landet auf einem nicht-englischen Ort und der Support-Chat hat bestehende englische Botschaften, jede Blase markiert braucht Übersetzung durch die Backend zeigt jetzt einen "Translating"... Platzhalter, während eine Streaming-Warteschlange füllt sie in einem nach dem anderen aus, ausgehend von der neuesten Nachricht. A Generationszähler verhindert abgestandene Warteschlangen, die den aktuellen Zustand verstopft.
· kamo-internal
Stream-Nachricht Übersetzungen neueste Sprache Schalter
Wenn der Benutzer eine neue Sprache wählt (oder öffnet einen bestehenden Chat in einem Sprache anders als die Quelle der Nachrichten), jede Blase, die braucht Übersetzung macht sofort einen "Translating"... Platzhalter und die Übersetzungen streamen in einer zu einer Zeit beginnend mit der neuesten Nachricht und rückwärts arbeiten. Dies schließt die eigene Vergangenheit des Benutzers ein Nachrichten - alles, was in einer anderen Sprache als der Betrachter verfasst ist nun übersetzt. Ein Generationszähler löscht Warteschlangen an Bord, wenn der Benutzer ändert die Sprache wieder.
· kamo-marketing
Auto-übersetzen Besucher- und Agentenmeldungen
Live Agent antwortet, die in einer anderen Sprache als der URL des Besuchers ankommen zeigt jetzt eine "Translating"...-Blase, während der TranslateService-Anruf auflöst, dann tauschen Sie auf den übersetzten Text mit einem Sprachen-Abzeichen, dessen Tooltip zeigt die Quellsprache und die Originalmeldung. Besucher-Nachrichten sind getaggly mit der URL-Locale auf senden, so dass der Agenten-Chat kann sie in die Profilsprache des Agenten. Nachrichten, die in die Geschichte geladen werden, werden übersetzt vorne über die neue ?lang=<locale' Abfrageparam auf /api/chat/support.
· kamo-internal
Chat-Nachrichten in die Sprache des Betrachters übersetzen
Fügt einen "Meine Sprache" Flag Picker in NavTop (links vom E-Mail-Tool, getrennt nach einer vertikalen Regel). Die Auswahl einer Sprache schreibt zurück zu Member.language und Synchronisiert das Locale-Cookie, so dass die gesamte Benutzeroberfläche wechselt; es sendet auch eine Veranstaltung dass jede geöffnete ChatBox verwendet, um ihre Geschichte in der neuen Sprache neu zu holen. ChatBox holt jetzt Nachrichten mit ?lang=<locale", macht übersetzte Blasen mit einem kleinen Translate-Abzeichen, dessen Tooltip den Originaltext und die Quelle anzeigt Sprache und zeigt einen "Translating"... Platzhalter für Live-Nachrichten bis zum TranslateService Anruf zurückkehrt. Der Sendepfad markiert jede ausgehende Nachricht mit die Locale des Autors, damit andere Zuschauer es auf Anfrage übersetzen können.
· APIService
Proxy-Unterstützungs-Nachricht übersetzen Endpunkt
Fügt eine Durchfahrtsroute für den neuen MediaService-Endpunkt hinzu, der eine Übersetzung Einzelne Support-Chat-Nachricht in die URL des Besuchers. Die Marketing-Seite Chat Widget Hits ************ die das Gateway nun mit dem Standard-Pell-Chat an MediaService weiterleitet authen- und Rate-Limit-Kontrollen.
· MediaService
On-Demand-Übersetzung für Chat- und Support-Nachrichten
Erhält die Quellsprache für jeden Chat / Support-Nachricht und fügt eine optional ?lang=XX param auf den Message-Fetch-Endpunkten plus eine pro Nachricht POST /translate Endpunkt. MediaService spricht jetzt mit TranslateService über TranslationServiceClient und MessageTranslationService Caches Ergebnisse in MediaObjMsgÜbersetzung so wird die gleiche Übersetzung nie zweimal bezahlt. Drähte fließen in den Public-Chat (Besucher) Weg: Besucher senden ihre URL lokalisieren als sourceLanguage, und der Agent / Besucher Seiten jeder ziehen Übersetzungen in ihre eigene bevorzugte Sprache. Fügt den Übersetzungsdienst hinzu geheim zum MediaService-Einsatz, damit sich der neue Client authentifizieren kann.
· kamo-shared-library
Übersetzungs-Cache für Chat-Nachrichten
Fügt die MediaObjMsgTranslation Entität hinzu (eine Zeile pro (Nachricht, Sprache) Paar) und eine optionale sourceLanguageId Spalte auf MediaObjMsg, so Chat-Nachrichten können auf Wunsch übersetzt und sofort an andere Zuschauer in der gleichen Reservierung Sprache. ChatMessageDto trägt sourceLanguageId so lebende Empfänger wissen ob sie übersetzen müssen. MediaService.createMessage gewinnt eine Überlastung die die Autorensprache nimmt und auf Member zurückfällt. Sprache für Vermächtnis Anrufer.
· kamo-internal
Persönliche + Chat/Docs/Notes/KB/HRS Abschnitte hinzufügen
Der /settings Index zeigte keine Abschnitte zu Nicht-Admins, weil jeder vorhandener Abschnitt wurde auf einer Admin-Rechtsseite abgesperrt (CONFIGURE_SYSTEM, MANAGE_*_SETTINGS, MANAGE_ACCESS_RULES). Ein regelmäßiges Teammitglied mit nur Support-Rechte sahen genau 3 Karten (Topics, Analytics, Geplant Unterstützung) und nichts anderes. Fügen Sie einen stets erkennbaren persönlichen Bereich hinzu (Mein Profil, Audio & Video, Account Activity, und Pläne & Abrechnung auf Kinder orgs), die Links zu der Die eigenen /settings/member/<myId-Register des Betrachters - so dass die Einstellungen nie leer sind, unabhängig von Org-Level-Rechten. Auch die zuvor vermissten Chat / Docs / Notizen / Wissen anfühlen Base / HRS-Sektionen - jeweils auf der entsprechenden org Feature-Flagge plus das entsprechende MANAGE_*_SETTINGS-Recht, um dem dedizierten entsprechen /settings/-features/<app-Seiten, die bereits für diese Apps existieren.
· kamo-internal
Drehen Toröffnung basierend auf viewport Seitenverhältnis
Der Zielrahmen kippt jetzt durch atan2(viewportH, viewportW) so dass es offen ist Rechte Seite zielt auf die Aussichtsdiagonale - für 16:9 überwacht die Eröffnungspunkte -29° südlich von Ost; für Porträt zeigt es näher an Süden. Lest, wie Benutzer natürlich Köpfe aus der Masse der werfen Bildschirm zurück in die obere linke Ecke. Physik: Torkollision läuft jetzt in Ziel-LOCAL coords. Jeder geworfen Kopfmitte+Welche in den lokalen Rahmen rotieren, die bestehende AABB Kollision gegen achsenausgerichtete Wände läuft unverändert, dann Push-out und Geschwindigkeitsreflexion rotieren zurück in den Weltraum. Die Score Zone Check wird auch in lokalen coords getan, so dass ein Kopf wirklich Eingabe der (rotierten) Eröffnung noch Partituren. Visuell: der SVG-Rahmen + Einlass-Seiten-Glühen live in einer Rotation Container; Feier-Überlagerungen (GOAL!/MISS!) und die REMOVE Beschriftung sitzen außerhalb der Rotation, so dass Text lesbar bleibt. Miss-Shake jetzt schwingt um den Basiswinkel statt Null. Torwinkel wird auf Ansichttierung über einen Staatsset-Setter neu bewertet, mit ein paralleler Schiedsrichter, so dass der Wurf RAF liest den neuesten Wert jeder Rahmen ohne den Rückruf neu zu erstellen.
· kamo-internal
Wirft-zu-entfernen Ziel mit Tor-/Miss-Feiern
Ein 132-3132 Torrahmen erscheint in der oberen linken Seite, wenn ein Kopf ist in Solo-Drag oder Aktiv-Wurf, Offset 56px aus der Ecke, so dass Köpfe können vermissen Vergangenheit oder dahinter. Drei feste Wände (oben, links, unten) wirken als elastische Bounce-Oberflächen (0,65 Restitution); die rechte Seite ist die offene Eintrag. Ein fettes rotes X in der Rückseite macht die "Entfernung" Absicht Unverkennbar, und ein pulsierender Einstiegsindikator markiert die offene Seite. Wenn ein geworfener Kopf Mitte in die Score-Zone kreuzt, wird es entfernt von der Wurfkarte, das zugrunde liegende Werkzeugfenster ist geschlossen über tool:close, und der Kopf wird über entfernende Kopf entfernt. Ein grüner Radial Blitz, 18-Teilchen Gold/Orange platzen, und ein springendes GOAL! Overlay Feuer in der Partitur. Wenn ein geworfener Kopf nur von einer Torwand abprallt (abgedreht von 350ms, so dass ein einziger Ausfall nicht Spam-Ereignisse), das Ziel schüttelt rot und ein MISS! überlagert. Stabilität: Ziel Kollision lebt vollständig innerhalb der Wurf-RAF-Schleife (kein Feder-System-Streit), und HexHeadGoalZone besitzt alle Feier Staat intern - der Motor nur feuert Ereignisse. Pure additive Funktion; Nicht-Wurf-Dicht-Strecken sind unverändert.
· kamo-internal
Bewerfen Physik mit Pool-Tisch Kollisionen und Komet Trail
Flicking einen Kopf vorbei an der Wurfschwelle startet es über den Blickhafen unter expliziter Physik (Reibung, Kantenabprall, Kopf-gegen-Kopf-lastig Kollisionen). Langsame Tropfen landen immer noch genau dort, wo sie freigelassen wurden. Während der Kopf ist in Bewegung eine Arcade-Stil Feuer Spur folgt ihm. Der Werdegang wird durch beide Release-Geschwindigkeit (-= 650 px/s über die gemittelt über die zuletzt 110 ms) und Gesamtzugsentzug (-= 30 px) also eine schnelle präzise Neupositionierung löst nie versehentlich einen Wurf aus. Magnitude ist gedeckelt bei 3200 px/s, um Rand-of-Detection-Flicks zu zahmen. Die Wurf-RAF-Schleife fährt Motion-Wert schreibt direkt über .set() Umgehung Framer-Bewegung Federn während des Fluges - und Selbst-Stops, wenn alle Köpfe fallen unter die Stop-Speed-Schwelle. placeHomeCluster und softPushCluster überspringen alle Anker derzeit in der Wurf-Karte, so dass die Frühlingssystem kämpft nie gegen den Physik-Integrator. Struck Köpfe lösen sich von jedem Cluster, zu einem Solo-Cluster zu fördern, und verbinden Sie die Wurfsimulation mit dem Impuls, der durch die Kollision vermittelt wird. Trail Rendering: SVG-Schicht mit radial-gradient Glut entlang der jüngsten Positionen, Mix-Blend-Modus: Bildschirm für additives Leuchten, einzelne CSS-Unschärfer Filter für Weichheit - Arcade-Ästhetik, nahe Null CPU-Kosten.
· kamo-internal
Verwenden Sie server-geminted OTK, um in neue org zu wechseln
Bevorzugen Sie die otk zurückgegeben von POST /api/security/org über die Follow-up /api/security/enter-als Hin- und Rückfahrt. Der Server prägt jetzt einen frischen Besitzer Sitzung als Teil der Org-Erstellung, so dass die Post-Erstellung-Redirect in die neue org's /validate ist deterministisch - keine Rasse mit Domain-Erstellung, nein Stille Enter-als Ausfall verlassen den Schöpfer auf der Eltern-Orgie-Sitzung.
· SecurityService
Mint Besitzer ***+OTK auf org erstellen
Nach der Schaffung vonOrganisationOwner, prägen Sie ein frisches *** gebunden an den neuen Besitzer TeamMember und geben seinen OTK neben id/member zurück. Ohne diese Schöpfer bleibt auf der Eltern-Orgie-Sitzung - eingeschränkte Rechte und istOrganisationOwner=falsch - so erscheint die neue Kinder-Org-Einstellungenseite gated und Plans & Billing wird versteckt, bis sie manuell wieder eingegeben.
· kamo-shared-library
Selbstheilung unvorausgesprochene COMP-Bestellungen bei der Anlaufzeit
Auf @PostConstruct, scannen Sie alle APPROVED COMP Bestellungen und Bereitstellung alle, die fehlt ein Konto-Abonnement. Idempotent - find-or-create bedeutet sicher zu Laufen Sie immer wieder.
· kamo-internal
Verschieben Verfügbarkeit Status Dropdown auf die linke Seite vor My Businesses
Verlagert die Statuspille von der rechten Aktionsleiste auf den linken Willkommensbereich und platziert sie zwischen dem Begrüßungsseparator und My Businesses mit einem Teiler. Entfernt die nun verwaiste vertikale Regel, die zuvor den Status von den Symbol-Buttons getrennt hat.
· kamo-internal
TargetOrganizationId zu den Arten von Abonnementauferstellen hinzufügen und SubscriptionOrder erstellen
· SecurityService
Bereitstellungs-comp-Endpunkt hinzufügen, um COMP-Abonnement aus genehmigter Bestellung zu aktivieren
POST ************ Anrufe **************** und ungültig dann die Ansprüche für das Ziel org über EntitlementService.
· kamo-shared-library
COMP-Bestellung auto-provisions KontoAbonnement und weist Lizenz
- Abonnement-Bestellung: Zielorganisation hinzufügen (nullierbare FK zu orgs) - **************** fügen ZielOrganizationId String hinzu - KontoRepository: fügen Sie findByPrimaryMember_Id für Kontosuche von Inhaber Mitglied - AbonnementService: Inject Billing Repos; vorläufigeAbonnement erstellt/Ups ************ AbonnementMitglied und ACTIVE AccountLicense für das Target-Org-Mitglied; genehmigte Bestellung ruft es für COMP-Zahlungsmethode; neue AktivierungCompOrder für die Rückstellung bestehender APPROVED COMP-Bestellungen
· kamo-internal
Ersetzen Click-to-Open mit Action-Popover + Größensteuerung
Ein Klick auf einen Hex-Kopf öffnet jetzt eine polierte Glas-Morphismus-Popper mit Kontextaktionen, anstatt sofort sein Werkzeugfenster zu öffnen. Mitglied Chat-Heads aussetzen: Öffnen Chat, View-Konto, E-Mail, Einladung zum Treffen, Call (wenn beide Seiten eine registrierte VOIP-Erweiterung haben); Werkzeugköpfe Open <toolName" aussetzen. Ein Untermenü der Größe lässt den Benutzer klein/mittel/ groß für diesen spezifischen Kopf (per Person über den neuen MemberUiPreference Store) plus ein globaler Schieberegler, der jeden beeinflusst hex Kopf auf dieser Maschine (in localStorage durchlaufen). Jetzt Werkzeugfenster Klemmbreite/Höhe zum Blickport, so dass sie sich nie teilweise off- öffnen- Bildschirm auch mit geschrumpften Fenstern.
· InitializerService
MEMBER_UI_PREFERENCES Tabelle hinzufügen (Bestellung 60)
Idempotent CREATE für die generische pro-Mitglieder UI-Vorzugsspeicher-Unterhaltung die hex-head Popover-Größen-Auswahl und zukünftige pro-Mitglieder UI-Einstellungen. Schema spiegelt die EmbRecordState-Konvention (is_aktiv, date_created, date_updated) an anderer Stelle im Datenmodell verwendet.
· SecurityService
MemberUiPreferenceController für die Einstellungen pro Mitglied der Benutzeroberfläche hinzufügen
Unterstützt die neue Hex-Head Popover Größe Selektoren und jede Zukunft klein pro- Mitglied UI-Voreinstellung. Endpunkte unter /api/security/members/ui- Präferenzen lösen das Mitglied aus der OTK-Sitzung und lesen/schreiben JSON Werte, die durch einen undurchsichtigen PrefKey-String schlüsseliert werden.
· kamo-shared-library
MemberUiPreference-Einheit für pro Mitglied UI prefs hinzufügen
Generic pro-member UI Prefer Store (memberId, prefKey, JSONB Wert) für kleine durchbestehende UI-Einstellungen. Erster Verbraucher ist der Hex-Head-Posover Größe Selektoren.
· kamo-internal
Wire FeaturesManager zu Plattform-Abonnement für Kinder-Orgie
FeaturesManager rief Vermächtnis ************ auf wirft (ungated fallback) statt das reale Plattform-Abonnement zu lesen. Ruft jetzt ************ an, das die Root org's abfragt Commerce-Abonnementsbestellungen für die Cross-Or-Mitgliedschaft des Anrufers. Wenn die Caller hat eine APPROVED COMP-Bestellung auf der Wurzel org, alle Feature-Gates offen wie für Comped Child-org Admins zuerwartet.

Euer Universum wartet.
Fügen Sie Produkte hinzu, wann immer Sie möchten – keine Migration, keine neuen Anmeldungen.
Für immer kostenlos – keine Kreditkarte erforderlich