Aggiungi logging per caricareBackground endpoint
Log org/index, informazioni sui file, userId, decisioni auth e staging MinIO chiave per tracciare perché gli upload di sfondo non appaiono in secchio di staging...
Aggiungi il login al percorso proxy di upload-background
Log org/index, nome file/size/type e stato di risposta a monte per diagnosticare perché gli upload di sfondo non stanno raggiungendo APIService.
Aggiungi colonna posizione per ticket datagrid
Leggi E' il momento giusto. direttamente dal SupportTicketDTO (ora snapshot sull'entità del biglietto tempo di creazione — nessun viaggio extra rotondo). Bandie...
Memorizza geo sul biglietto alla creazione, rilascia GeoLite
****************************************************************************************************************************************************************...
Geo visitatore istantaneo sull'entità dei biglietti
Aggiunge VISITOR IP ADDRESS, VISITOR COUNTRY CODE, VISITOR COUNTRY NAME, VISITOR CITY, colonne VISITOR SUBDIVISION. Catturato alla creazione di biglietti quindi...
Visitatori e salta GeoLite nella lista
Il /api/support/tickets elenco endpoint è stato in esecuzione, per pagina di 20 righe: - 20 chiamate (N+1) - 20 chiamate in GeoLookupService.lookup, ognuno dei ...
Aggiungi findBySessionGuidIn per il caricamento in massa
Utilizzato dalla lista di supporto-ticket endpoint per catturare tutti i visitatori per un pagina in una domanda invece di N trovare separatoBySessionGuid chiam...
Passare la cartella per caricareIl pulsante di riprovazione
loadThread prende (threadId, cartella); il pulsante di ripristino di errore solo passato threadId, rompendo la costruzione kamo-internal. Abbina la chiamata a l...
Ricostruire per raccogliere I membri JsonIdentity Info fix da kamo-shared-library
kamo-shared-library b57d156 correzioni @JsonIdentityInfo(property = "uniqueId") → "id" su Membro, risolvendo 400 errori su PUT /api/security/org/{id}.
Corretto JsonIdentity Info proprietà da 'uniqueId' a 'id'
Ente membro ha dichiarato @JsonIdentityInfo(property = "uniqueId") ma il campo chiave principale effettivo è chiamato 'id'. Jackson ha lanciato "non può trovare...
Aggiungi /ws/public-chat-native plain WebSocket endpoint accanto a SockJS
Registra un secondo endpoint STOMP senza SockJS a /ws/public-chat-native che il frontend può connettersi con un WebSocket nativo (brokerURL) senza bisogno la li...
Rimuovere la guardia SSR causando errore di idratazione; goccia SockJS per nativo WebSocket
- Hero.tsx: rimuovere il tipo di finestra controllare intorno ParticleField — ParticleField già ha ssr:false così la guardia ha prodotto un errore server/client...
Per-ticket unread badge + 'solo nuovi messaggi' filtro
- La lista dei biglietti mostra un distintivo di chat-bubble con il conteggio non letto accanto a biglietto # ogni volta che la sessione ha messaggi più nuovi d...
Trasmissione conta unread ad agente sul messaggio del visitatore
Dopo che un visitatore invia un messaggio di supporto, spingere gli ultimi incontri non letti Il carico di pagamento per la lista dei biglietti dell'agente. bad...
Includere sessioni SUPPORT TICKET in query di appartenenza non letta
findChatMembershipsByMemberId ora restituisce i membri sia per CHAT e SUPPORT TICKET tipi di sessione, in modo che il per-membro esistente infrastruttura (getUn...
Indicatori illeggi chiari quando si apre la conversazione
ThreadDetailView invia ora e-mail:folder-changed dopo markConversationRead riesce così MailButton refetches il conteggio del distintivo di inbox navtop. Convers...
Move CORS to Traefik via kamo-middlewares, remove in-app CorsFilter
The CorsFilter @Bean in the Spring app was silently not applying headers after WebConfig.java was removed. CORS is now handled entirely at the Traefik layer by ...
Use /public/{mainDomain}-{tld} path matching actual MinIO bucket layout
The getThemePath() was generating /domain/{tld}/{split}/kamosite paths that don't exist in MinIO — theme files live in the public bucket under kamocrm-com/, bad...
Break min-w-0 chain to contain email scroll in body column only
Add min-w-0 to outer container and main content flex div so flex children cannot expand to email min-content width, which was causing the page-wide horizontal s...
Fornitori di hoist sopra ToolProviders
Stessa causa principale del paranco ChatWebSocketProvider: SupportTicketWindow chiamate E ChatBox chiama. useUnread().markAsRead(), ma entrambe le finestre dell...
Aggiungi soppressioneHydrationWarning e fissare immagini segnaposto rotto
soppressioneHydrationWarning su <html> impedisce React errore #418 causato dal browser estensioni (ad esempio tradurre, modalità oscura) che mutano gli attribut...
Consentire /domain/ percorso prefisso sul tema IngressRoute per CORS
Il tema config a tema.kamocrm.com/domain/... non è stato abbinato dal regole di rotta esistenti (solo /pubblico/ e /internal/ sono stati autorizzati), quindi Tr...
Rimuovere duplicati CorsFilter e striscia a monte intestazioni CORS nel gateway
WebConfig.java ha definito un secondo fagiolo CorsFilter in competizione con CorsConfig. Java bean, rischiando di scrivere l'intestazione duplicata. L'ha cancel...
Rimuovere il fagiolo CorsFilter che causa il doppio intestazione Access-Control-Allow-Origin
L'esplicito fagiolo CorsFilter ha causato un secondo filtro CORS accanto alla primavera Supporto CORS integrato di sicurezza (che utilizza CorsConfigurationSour...
Rimuovere le dichiarazioni debug console.log e aggiungere le rotte mancanti
Rimuovi tutti i debug temporanei aggiunti durante il tracciamento di WebSocket ChatBox, TicketChat, MemberItem, ChatTool e useChatWebSocket; aggiungi reindirizz...
Evitare l'intestazione del messaggio da espandere la colonna su indirizzi lunghi
L'intestazione sinistra flex bambino non aveva min-w-0, così lunga e-mail infrangibile indirizzi in Da/To/Cc ha forzato la sua larghezza min-content per crescer...
Hoist ChatWebSocketProvider sopra ToolProviders
ToolDock (e le sue finestre degli strumenti come SupportTicketWindow → TicketChat) è montato all'interno ToolProviders, che si trova ABOVE PresenceWrapper nell'...
Drop Shadow DOM in e-mail renderr così overflow-x-auto incendi
Shadow DOM era la causa principale. Ampio contenuto di email (tavole di larghezza fissa) all'interno dell'albero ombra dipinto oltre l'ospite senza contribuire ...
Allineare il percorso di importazione ChatWebSocketContext al fornitore di corrispondenza
TicketChat e ChatNotificationListener hanno importato il contesto tramite '@/app/contexts/...' mentre PresenceWrapper (il fornitore) lo importa attraverso il pe...
Console temporanea.log per tracciare il percorso di abbonamento TicketChat STOMP
Aggiunge i registri delle console in ogni fase della pipeline di abbonamenti (incendio effetto, pass di guardia, iscrizione() chiamata, allegareSessionSubscript...
Contenimento dell'ospite dell'ombra della forza con stili in linea + contengono: layout
Il overflow-x-auto basato sulla classe sull'host ombra non stava vincendo in modo affidabile contro l'ombra ':host { tutto: iniziale }' reset, così ampia e-mail...
Scorrere ampio contenuto di email all'interno ombra DOM, non fuori
I precedenti tentativi di aggiungere overflow-x-auto agli antenati DOM leggeri non poteva catturare ampio contenuto di e-mail perché la visuale dell'albero ombr...
Utilizzare getHasAttachments() per abbinare il tipo di wrapper Boolean
E' un Boolean, quindi Lombok. genera getHasAttachments() non èHasAttachments(). Quest'ultimo solo esiste per il booleano primitivo. Utilizzare Boolean.TRUE.equa...
Espandi la scansione del repository JPA per includere il pacchetto di commercio
La nuova biblioteca di kamo-shared porta in mezzo a... che richiede Non e' vero. (in com.kamo.z.shared.commerce). MediaService solo scansionato donotmodify.dao....
Ripristinare l'importazione HashMap in ChatWebSocketController
Il refattore precedente ha rimosso l'importazione HashMap ma la manigliaTyping metodo ancora costruisce un HashMap per il payload dell'evento di digitazione, ca...
Aggiungi min-w-0 al contenuto di e-mail div così overflow-x-auto incendi
Senza min-w-0, la larghezza minima predefinita del bambino flex-col: l'auto si risolve a min-content, lasciando ampie tabelle di posta elettronica espandere il ...
Rimuovere il doppio collegareStomp chiamata in sendMessage
Quando il primo messaggio crea una nuova sessione, gli aggiornamenti suSessionCreated che innesca utilizzareEffect per chiamare connectStomp. La chiamata in lin...
Proattivamente creare il consumatore NATS alla creazione di sessione per prevenire la perdita di messaggi
Precedentemente il consumatore di spinta NATS JetStream è stato creato solo quando un client STOMP inviato /app/chat/subscribe. Con DeliverPolicy. Nuovo, qualsi...
Chiudi gap di ricollegamento causando messaggi in tempo reale
Rimuovere `collegato` dall'uso dell'abbonamentoDeps difettosi in TicketChat e ChatBox. In precedenza, ogni connessione WebSocket ha innescato l'effetto pulizia ...
Consenti all'utente di sistema di gestire il marchio org e fissare il logo auth
- Aggiungi bypass utente di sistema come prima guardia in canManageOrgBranding così piattaforma sistema utente ha pieno controllo di marca su tutti gli org non-...
Contiene overflow orizzontale nel pannello di visualizzazione e-mail alla terza colonna
- Aggiungi overflow-x-hidden a MessageBrowser contenitore esterno come bordo duro - Aggiungi overflow-x-hidden alla colonna 3 wrapper e overflow-x-auto all'area...
Produzione fail2ban con carceri PJSIP e stato persistente
- Aggiungi fail2ban-configmap.yaml con le prigioni [asterisk] e [freepbx-web], escalation del divieto incrementale (1h→24h→30d soffitto), LAN ignoraip, e un fil...
Sostituire Coqui TTS con Piper TTS (en US-norman-medium)
Il modello Coqui VCTK non ha altoparlanti di nome — sostituire con Piper TTS che ha l'esatta voce norman[medium]. Piper binario (~3 MB) e modello (~60 MB) vengo...
Reset stale hasAttachments on sync and accumulate correctly
- Reset has_attachments=false at start of bulk sync so stale true values from old false-positive MIME detection are cleared before re-indexing - Accumulate ha...
Add resetHasAttachmentsForFolder query to ConversationRepository
Allows sync to reset stale has_attachments flags before re-indexing so corrected MIME detection can rebuild the field from actual attachment data.
Integrate Coqui TTS with norman voice (VCTK p267)
- Deploy coqui-tts server (VCTK VITS model, CPU-only) as ClusterIP service on port 5002 with model cache at /var/lib/coqui-tts on k1m1 - Inject coqui_tts.agi ...
Pre-popolare DA sulla risposta / avanti e correggere l'invio daAddress
- DraftMessage ora trasporta daAddress in modo da fluisce da openNewMessage attraverso al compositore - MessageBrowser memorizza la mailbox attiva Indirizzo (co...
Supporto daAddress override on send
Aggiunge FromAddressRequest a EmailSendRequest in modo che il frontend possa specificare alias/shared/mailbox indirizzo da inviare. SmtpOnlyProvider ora usa que...
Add LAN DNS pod for split-DNS on k1m1
Deploys a dnsmasq pod with hostNetwork on k1m1 that listens on 192.168.4.22:53. Overrides pbx.k1.kluster.kamocrm.com -> 192.168.4.22 so LAN phones reach the PBX...
Aggiungi local net per split-DNS / LAN client RTP fix
I telefoni sulla stessa LAN di k1m1 collegano tramite DNS diviso (il dominio si risolve 192.168.4.22 internamente). Senza local net, Asterisk ancora pubblicizza...
Come quello che vedi la spedizione?
Tutto questo arriva nel vostro spazio di lavoro da solo. Iniziare sul piano gratuito e leggere di nuovo questa pagina in un mese.
