Ensure Junk and other system folders always appear in sidebar
Adds guaranteed system folders (INBOX, Sent, Drafts, Junk, Trash, Archive) to the folder tree even if they don't exist on the IMAP server yet.
Move handleBulkReportSpam after getSelectedRefs to fix declaration order
Auto-refresh message list when draft is saved or email is sent
MessageTool dispatches email:folder-changed events after saving a draft (Drafts) or sending an email (Sent). MessageBrowser listens and refreshes if the affecte...
Match message tool color scheme to other tools and rename to New Email
Switch from dark theme to the light theme used by chat/calculator tools: light gray gradients, white inputs, var(--color-primary) accents. Rename tool from "New...
Restore full WYSIWYG toolbar options in message tool
Adds back headers, strike, background color, alignment, and image options. Toolbar wraps onto two lines when in compact (non-maximized) mode via flex-wrap.
Marque los mensajes leídos en el servidor IMAP y refrescar cuenta conteos de carpetas
Haciendo clic en un mensaje ahora llama a PUT ************* con visto: verdad en el backend, persistir el estado leído al IMAP. La carpeta de la barra lateral s...
Guardar copia en carpeta enviada después de enviar correo electrónico
Transport.send() solo envía vía SMTP sin ahorrar a IMAP. Añadido GuardToSent() para adjuntar el mensaje a la carpeta Sent con el conjunto de bandera SEEN. Se ap...
Desactivar STARTTLS y auth para el puerto 25 interno SMTP
El puerto 25 en Postfix interno no admite STARTTLS y permite relé de las IPs de racimo a través de mynetworks. Sólo habilitar auth y STARTTLS cuando se utiliza ...
Máve usegan el gancho antes de que vuelva temprano para arreglar el error de reacción 300
useState (syncing) fue declarado después de las devoluciones anticipadas condicionales, Violar las reglas de los ganchos de React.
Utilice el puerto SMTP 25 en lugar de 587 para Postfix interno
Postfix sólo escucha el puerto 25 dentro del cluster. Puerto 587 (sumisión) no está habilitada en el contenedor.
Botón de enviar respuesta rápida - eliminar el cliente OTK, añadir credenciales y retroalimentación
La rápida respuesta fue enviando una cabecera OTK generada por el cliente que el proxy no usa (proxy genera su propio). Elimó lo innecesario Llamado OTK, creden...
LabelPicker ahora busca y muestra las etiquetas de mensajes actuales
- Añadida getMessageLabels API llamada al correo electrónicoApi - LabelPicker consigue etiquetas aplicadas en montaje a través del endpoint GET - Toggle actuali...
Alambre de elementos de IU sin cable en la página de mensajes
- FolderSidebar: botón de opciones de carpetas ahora abre el menú de renombre/borrar - CarpetaSidebar: botón de configuración de carpetas renombrado para admini...
Establecer brandProductName a través de extra-paraparams en la implementación de Docs
Alambre de respuesta rápida Enviar Respuesta y Cancelar botones
El área de texto de respuesta rápida y los botones eran estáticos sin estado o en Manedores de clic. Ahora envía correctamente las respuestas a través del corre...
Utilícelo api.* para WOPISrc - WOPI enrutó a través de la pasarela APIService
Utilícelo docs-api.* para la URL de WOPISrc en lugar de api.*
Los endpoints WOPI (/wopi/files/**) en directo en DocsService, que es expuesto a la exposición en docs-api.kamocrm.com . no api.kamocrm.com (APIService). Docs h...
Establecer a aliasgroup a api.kamocrm.com y forzar https WOPISrc
- Docs aliasgroup1 debe coincidir con el anfitrión de WOPI (api.kamocrm.com) - URL WOPISrc predeterminada a http:// dentro de K8s; fuerza https y constructo a...
Fix kubectl no encontrado en la cápsula, añadir alias de los documentos, SUBDOMAINS proactivos
- Monte /usr/local/bin/kubectl desde el host via hostPath en lugar de fallar apt-get install (kubectl no in default Debian repos) - Añadir "docs" a la lista S...
Estal MinIO cubo a 'interno' y subir plantillas en blanco
El marcador de posición de cubo por defecto nunca fue configurado. Usar 'interno' cubo que tiene las plantillas de documentos en blanco subidas.
Abrir ficha del editor de doc sincrónico para evitar el bloqueador emergente
ventana.open() después de una captura de asintcoc se bloquea por los navegadores porque es ya no en el contexto de los usuarios. Abra una pestaña en blanco inme...
Añade DOCS-EDITOR a las características de org de retroceso en la ruta de diseño y API
El org del lado del servidor del trazado a menudo utiliza el org de retroceso (no auth contexto durante la SSR), que faltaba DOCS-EDITOR. Esto impidió la Nuevo ...
Actualizar ImageAccessLevelType.FULL a PUBLIC (enum fue refactorizado)
Eliminar COPY .mvn/ de Dockerfile para arreglar la construcción de CI
El directorio .mvn estaba vacío y sin rastrear, causando que las construcciones fallaran. Maven ya está proporcionado por la imagen de base.
Cita palabra clave reservada 'limit' en ImgStackingOrderDt nombre de columna
Habilitar la autocreación de esquema de Hibernate para email-metadata
Añadir ********** propiedad así Hibernate crea Faltan los esquemas PostgreSQL antes de crear tablas.
Cambiar ddl-auto de ninguna a la actualización para la gestión del esquema de automóviles
Hibernate no estaba creando el esquema y conversaciones de email-metadata mesa porque ddl-auto no se fijó en ninguno en el configmap k8s.
correcciones de revisión - dialecto, manejo de errores, CI/CD manifiestos
- Fija el dialecto Hibernate a CockroachDialect (matching K8s configmap) - Validación simulada separada de la lógica empresarial en checkFileInfo - Añadir Docs ...
Utilícese consultas nativas para marcaConversationLea para resolver el desajuste de tipo Hibernate 6.2
CURRENT-TIMESTAMP en JPQL devuelve java.sql.Timestamp que no coince el campo actualizado de tipo Instant. La consulta nativa con AHORA(Delude esto.
Utilista marcas de tiempo a nivel de base de datos en lugar de Instant.now()
Reemplaza todos los métodos de Apredeterminado Instant.now() y Actualización con "CreationTimestamp(source=DB") y "UpdateTimestamp(source=DB) por lo que la base...
Utilícese consulta nativa para la columna PostgreSQL texto[] en ConversationRepository
El miembro OF no es compatible con el apoyo de Hibernate para los campos de .JdbcTypeCode (ARRAY). Cambiar a SQL nativo con CUALQUIER () para la mirada de array...
Utilice StringRedisTemplate para leer los valores de OTK/sesión almacenados como cadenas simples
La app Next.js almacena valores de OTK y *** como cadenas simples en Redis. El redisTemplate predeterminado utiliza el serializador JSON que no logra analizarlo...
Utilícese URL interna de clúster para EmailService proxy en la producción
Resolver errores de TypeScript en useEmailWebConchoto de chaleco
- Eliminar la in-existencia connectHeaders property de Opciones de cliente - Reemplazar client.active con cliente.conectado para la compatibilidad con el piso/s...
Añadir las importaciones de jakarta.mail.event desaparecidos y atrape IOException en el manejador NATS
Partido Crear estilo de botón a los patrones globales existentes.css
Utilice los colores component=-Link con colores href, var (-color-primario), y dimensionamiento consistente para que coin conformidad con los actuales Botones d...
Move crear botones a la derecha de las barras de herramientas de pestañas de tuberías
Retire los botones duplicados del lado izquierdo donde los del lado derecho ya existían, y reposiciones recién añadieron botones a la derecha después de otros c...
Dar las columnas de datos de tuberías anchos explícitos con una columna flex
Reemplazar los rangos minWidth/maxWidth con valores de ancho explícitos para que las columnas se dimensionan adecuadamente para sus datos. Cada cuadrícula tiene...
Eliminar la brecha de margen de la barra de herramientas entre la fila de sub-tab y datagrid
Eliminar mb:1 de la envoltorio de barra de herramientas en Compromisos y Pestañas de Orden, y añadir p:3px al panel de sub-tab para el respiro.
Retire el acolado de los envoltorios de pestañas de tuberías para que datagrid coinija el ancho de la sub-tab
Etilidad de paneles de subtab y redes de datos en las pestañas del mercado de tuberías
Quitar el envoltorio de tarjetas de contenido para las pestañas del mercado para que no haya necesidad innecesaria panel detrás de la red de datos. Estilizar la...
Retire el posicionamiento pegajoso de MemberHeader para formar pergámenos con cabecera
El MiembroHeader fue atado a la parte superior del contenedor de pergívot con posición: pegajoso, haciendo que el contenido de la forma se desplace debajo de el...
Evitar páginas de detalles de tuberías extender el pasado de vista
Root Box cambió de minHeight: 100vh a altura: 100% con minAltura: 0 para que coincido con el patrón de vista de las pistas. Pervertidos de contenido dentro de l...
Como lo que ves enviaste?
Cada una de estas actualizaciones aterriza en su espacio de trabajo automáticamente. Empieza gratis y verlo crecer semana tras semana.