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 "F...
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 th...
Raise client read timeout to 120s for long messages
LibreTranslate runs CPU-only argos models — a paragraph-length chat message takes 20-30s to translate, and longer ones can push past 60s. The 8-second read time...
Persist language change and show current language in tooltip
The members endpoint accepts PUT not PATCH, so the language picker's PATCH was silently ignored — Member.language never actually updated, which is why refreshin...
Attaccare le corde su..
Il proxy Next.js stava rilasciando la stringa di richiesta durante l'inoltro a MediaService, che significava la cronologia delle chat ?lang= param era silenzios...
Proprietario di zecca OTK con diritti di sovvenzione senza DB
Dopo aver assegnato l'Amministratore ruolo e scrive member rights applied, il blocco OTK-minting era rileggere quelle righe per mezzo di... dentro lo stesso @Tr...
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 show...
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 immediatel...
Cache-only bulk translate, FE handles fills
Bulk message-fetch endpoints now return only translations that are already cached and tag missing rows with needsTranslation:true. The chat UIs (kamo-internal C...
Revert "fix(settings): show Plans & Billing tab regardless of root-org status"
This reverts commit ****************
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 sw...
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...
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 ...
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 /transl...
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 tra...
Show Plans & Billing tab regardless of root-org status
The !isRootOrg gate hid the tab on root orgs and blocked org owners and self-viewers from reaching their billing page from "My Account". The PlansBillingTab its...
Tradurre stringhe UI codificate
setup/dns (6 file): pagina, AliasStatusTable, DnsProgressView, DnsProvisione Pannello, DomainEntryForm, ManualDnsGuide. impostazioni (10 file): diagnostica, ess...
Drop in place — jump every member, no softPush on release
The drift on release was softPushCluster firing on the user-drop path. A mega-cluster's bounds extend in all directions from the anchor, so the PADDING-margin /...
Translate hardcoded UI strings
account/view: 40 strings reused from existing namespace (no new keys). kb (13 files): translate article editor, viewer, reviews, resources, versions, navigation...
Tradurre restanti hardcoded UI stringhe
Pagina delle attività: Salva modifiche, Chiudere, Aggiungi oggetto attività a flusso di automazione, Modifica titolo tooltip. Note pagina: Dismesso, Carico note...
Replace hardcoded English with t() across leads pages
Translate remaining hardcoded UI strings in allotments, new, reports, and view/[id] to use next-intl. Add scripts/i18n-audit.py to detect remaining hardcoded st...
Drop firmly in place — tail-only throw + jump() to clear velocity
The previous fix still let heads drift on release because: 1. Throw detection averaged velocity across the full 110ms window. A user who flicked then decele...
Drop in place after a paused drag instead of drifting
Two cooperating bugs caused dropped heads (single or post-gather) to fly off to seemingly random positions when the user dragged fast, slowed to a stop, then re...
Aggiungi Personal + Chat/Docs/Notes/KB/HRS sezioni
L'indice /settings non ha mostrato sezioni ai non amministratori perché ogni la sezione esistente è stata gated su un diritto di amministratore (CONFIGURE SYSTE...
Apertura dell'obiettivo ruotata in base al rapporto aspetto viewport
Il telaio dell'obiettivo ora si inclina di atan2(viewportH, viewportW) così il suo aperto lato destro mira verso la diagonale viewport — per 16:9 monitora i pun...
Obiettivo di lancio-to-remove con punteggio/miss celebrazioni
Un telaio porta 132×132 appare nella parte superiore sinistra quando una testa è in solo-drag o attivo-doccia, offset 56px dall'angolo in modo che le teste poss...
Gettare la fisica con collisioni da tavolo da biliardo e comet trail
Flicking una testa oltre la soglia di lancio lo lancia attraverso il viewport sotto fisica esplicita (frizione, rimbalzo del bordo, elastico testa-vs-testa coll...
Cancellare la velocità di trascinamento ereditata sul rilascio
Il trascinatore aggiorna il valore di movimento della testa con mx.set rapido(nx) chiamate, che framer-motion utilizza per calcolare la velocità. Quando il rila...
Crispen hexagon outline at all sizes/states
Four sources of softness eliminated: - **************** on the SVG - **************** on the visible outline so the stroke width does not stretch (and blur) u...
Rifiutare quando la sessione ogID non corrisponde a host org
auto-login ha accettato qualsiasi *** e ha coniato un OTK puntando indietro ad esso, indipendentemente da quale sia la destinazione interna.* host appartiene. U...
Utilizzare OTK a mente server per passare in un nuovo org
Preferire l'otk restituito da POST /api/security/org sul follow-up /api/security/enter-as round-trip. Il server ora inganna un proprietario fresco sessione come...
Mint proprietario ***+OTK su org creare
Dopo creareOrganizationOwner, menta un fresco *** legato al nuovo proprietario TeamMember e restituire OTK insieme a id/members. Senza questo creatore rimane su...
Per-cluster spacing + regole di gruppo di stessa dimensione
La cella del cluster e l'adiacenza dell'esa sono ora derivati dal più grande cluster membro invece della scala globale, e gli MV seguinti includono un centro-al...
Nascondi popover quando Invite to Meeting apre la finestra di dialogo
Il popover usato per rimanere aperto sotto la finestra di dialogo della riunione perché il finestra di dialogo è stato condizionalmente reso all'interno del can...
Riscrivere il sistema di trascinamento/cluster con lo snap magnetico e raccogliere il gesto
Sostituire il monolitico HexHeadGroup (847 linee) con un motore a cluster modulare sotto app/components/chat/hexheads/. Singola fonte di verità: ogni testa vive...
Robust English fallback for missing and empty locale translations
- mergeWithFallback now treats empty-string locale values as untranslated, falling back to the English value instead of rendering nothing - Replace bare NextI...
Update orders page account uid type from number to string
AccountSummary.uid is now a string (Long precision fix). Also remove parseInt comparison and type="number" from the manual account ID field.
Rimuovere @PostConstruct COMP provisioner — fissare gli ordini esistenti direttamente in DB
approvareOrder() già gestisce nuovi ordini COMP. Uno spazio di dati per gli ordini esistenti vengono corretti direttamente nel database.
Rimuovere il punto finale manuale di provision-comp — avvio self-heals
Gli ordini COMP sono ora forniti automaticamente all'avvio di SecurityService via SottoscrizioneServizio @PostConstruct. Il punto finale manuale non è più neces...
Auto-guarigione ordini COMP non previsti all'avvio
Su @PostConstruct, eseguire la scansione di tutti gli ordini APPROVED COMP e fornire qualsiasi cosa manca un AccountSubscription. Idempotent — trovare o creare ...
Utilizzare CommerceMarket.getId() invece di getUid() nella fornituraCompSubscription
CommerceMarket utilizza @Id UUID id (non uid), quindi Lombok genera getId().
Spostare lo stato di disponibilità a sinistra prima di My Businesses
Riloca la pillola di stato dalla barra di azione destra alla sezione di benvenuto sinistra, ponendola tra il separatore di saluto e My Businesses con un divisor...
Aggiungi targetOrganizationId a SubscriptionOrder tipi e creareSubscription Ordine
Aggiunta del punto finale del provision-comp per attivare l'abbonamento COMP dall'ordine approvato
# POST # chiamate **********************************************************************************************************************************************...
Auto-provisioni dell'approvazione dell'ordine COMP ContoSubscription e assegna la licenza
- AbbonamentoOrdina: aggiungere targetOrganization (nullable FK to orgs) # Add to targetOrganizationId string # - AccountRepository: aggiungere findByPrimaryMem...
CustomerMemberId è una stringa di ID membro, risolve i conti da primarioMemberId
- posApi: AccountSummary uid string, add primarioMemberId; *****************************************************************************************************...
Serializzare il clienteMemberId come stringa per preservare la precisione lunga
- AccountSummaryDTO: annotate uid con **************************************************************************************************************************...
Sostituisci click-to-open con popover azione + controlli di dimensione
Fare clic su una testa di esagonale ora apre un popover vetro-morfismo lucido con azioni contestuali invece di aprire immediatamente la finestra degli strumenti...
Aggiungi la tabella MEMBER UI PREFERENCEs (ordine 60)
CREATO Idempotent per il supporto generico del negozio UI-preference il selettore esagonale e le impostazioni future dell'interfaccia utente. Schema rispecchia ...
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 th...
Come quello che vedi la spedizione?
Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.