Changelog
Qué hay de nuevo.
Cada mejora de la plataforma, a medida que se envía.
· kamo-shared-library
DecisionGate.appliedThreshold expone el listón de confianza real
La puerta se aplica internamente max(indiva de los inquilinos, seguridadPiso, suelo de la etapa) pero Los que llamaban sólo tenían la pared del inquilino pre-gate. b) para que una decisión de registro pueda persistir el umbral-IN-EFFECT (examinante- reproducible) en lugar de un valor que la puerta plantea silenciosamente. Aditivo; evaluar () Sin cambios. DecisionGateTest 14/14 pase.
· kamo-internal
Enterprise Materials workspace (P0) . carpetas, búsqueda, granel, vista previa real, compositor de correo electrónico compartido
Sustituya la cuadrícula plana de 200 ítems por un espacio de trabajo de documento completo sobre las imágenes existentes backend (que ya soporta carpetas, basura, compartir, historia, volumen para MATERIALES): - Barra lateral de carpeta (crear/rename/delete, arrastrar hasta la carpeta) - Todas / Trash vistas - Búsqueda, tipo, conmutador de cuadrícula, paginado 'cargar más' (elimina la tapa de 200) - Seleccione a granel . Descarga a granel (ZIP) / email / move / borrar / borrar - Cajón de detalles a la derecha: vista previa real, nombre en línea de descripción, muda a carpeta, intercambio interno (miembro, permitir-editar, caducidad) e historial de actividad - Email reutiliza ahora el compositor de MessageTool compartido a través de la herramienta global: evento abierto (De/mailbox, CC/BCC, cuerpo rico, firmas, borradores) en lugar de una forma a medida - Nuevas rutas de representación de imágenes: la carpeta create/[id] rename.delete/move-doc, renombre, descripción, restauración, a nivel de acceso - Eliminó la Biblioteca de Materiales reemplazados; todas las características de Canva (crear/importar/autolleno/ horarios) transportados. imgIds manejados como cuerdas precisas en todo.
· kamo-internal
Overhaul /messages - rendering iframe rendering, list context menú de lista, roscado, carreras, a11y
Implementa la auditoría de la página /messages de punta a punta. Cuestiones denegadas: - Responder/Respuesta Todos los botones ahora mostrar etiquetas de texto; eliminados de las más acciones desplegable (son botones adyacentes) mientras el nuevo menú de la lista los mantiene. - Las filas de la lista de mensajes ahora abren el menú de acción compartida en el clic derecho y el tacto largas prensa ************* hileras ganan un anillo de enfoque (j/k), casilla de verificación de selección (x) y scroll-into-view. - El correo electrónico ahora se entrega en un iframe de altura automática (srcdoc) en lugar de en línea peligrosamenteSetInnerHTML. Esto aísla el correo electrónico CSS/layout, que corrige el "rebote" de lectura y la pérdida de la selección de texto a mitad de la tabla, cierra la aplicación en todo el mundo CSS-filtración, y añade una "imágenes externas bloqueadas" por defecto la puerta de seguimiento-pixel. Corresión/biblichos: - Full-compose Respond Reply/Reply-All ahora establecido In-Reply-To/ Referencias (Unificado DraftMessage Tipo) para que las respuestas se mantengan enhebradas; hilos de respuesta rápida Referencias . parent id, HTML- seca del cuerpo y envía desde el buzón activo compartido/miembro. - Adelante lleva los adjuntos originales; responder/adelante resolver el mensaje completo (cuerpo de control para las acciones de listas) en lugar de citar lo que sea abierto. - Guardias de carreras (úmenos-ganas) en la cargaMensajes / seleccione / carga de hilo / carga de conversación; votación ya no yanks páginas usuarios de la página 0; WS recarga filtrado a la carpeta activa; searchPage resquete en el cambio de consulta. - ThreadDetail expandir la tecla de estado por folder.uid (colisión de la cartera cruzada); markLee Sólo cuando se desenvece; retry utiliza el prop de la carpeta. - Compose: destinatario mecanografiado pero sin compromiso en Send/Draft; attachment dedupe. 40MB de tapa agregada y actualizaciones funcionales; soltar el cliente redundante OTK. - Proxy: Range delantero validadores de caché para el streaming de fijación/inline; cierre la talla de varias partes en caminos de aprovisionamiento vigilados. - Email WebSocket: parada real después de max reach, backoff exponencial, conexión estable retry reset; valor de contexto memoizado para rehacer el churn de los consumidores. Calidad: unificado ************* a11y (marcasarias, filas / gafas / gafas a presión con aria prensado); i18n (nombres de carpeta, fechas de lista, pagers, ICU plural); eliminados código muerto y entradas de corte corto de teclado fantasma.
· kamo-internal
Panel de rediseño de instrumentos - familias de acento, masthead, nav de sección-index, tarjeta de vidrio unificada
Rediseña los dos aterrizajes más visitados en una consola de operador en forma de permiso. Fundación - Enciende el ya agrupado Geist Sans/Mono (fueron descartados por un repaso de Arial); ruta MUI tipografía a través de Geist. - Añadir blanco-emarca-segura --accent-* tokens-familia, una escalera de elevación, un borde superior de cristal iluminado, Operador-Etiqueta y utilidades .tabular, y una ficha de casa. Fix --gradiente-primaria-transparente (era azul codificado duro ahora derivado de --color-primario). Compartido FeatureCard (un componente, teclado-correcto) - Ahora un verdadero ancla (NextLink): El trabajo de pestaña/entrar/palabra y el anillo visible de enfoque puede finalmente disparar. Añade usoReducedMotion guard, mientras que la entrada de InView en la casa se relaja, chip iluminado de acento familiar, pip de contador de atención, niveles de peso y onClick passthrough. Revive la intención de color pormóme que fue descartada en render. Elimina la tarjeta de inicio en línea bidida. Hogar - Masthead (mono kicker - tiempo/noche de saludo - tira de estado tabular) reemplaza la bandera de solo org; oklab Backdrop sustituye a la marca de agua multipícada de escala gris; permiso en forma de permiso de lanzamiento de dos niveles (jeto primario cargado de basura - directorio agrupado) con una tira de atención "Needs you today" y "Jump back in" (nuevo usoHomeCuenta . global . . . . . . . . . . .- Lugares de referencia. Ajustes - Reemplaza la Registro bloques de colapso de 18 bloques de colapso pegados: carril de índice de sección pegajoso .IntersecciónOtBéntalo sroll-spy - conteos en vivo, 4 supergrupos, divulgación progresiva (Apertura abierta, reciente, restaurada de última sección, expandición/colapso todos), filas de instrumentos de SecciónHeader y un acceso rápido fijo (correcto MAX-RECENT - tiempo relativo . Preserva toda la puerta de permiso/flag del producto exactamente. Recorte transversal: esqueleto . VatyState, prefiere-reducido-transparencia - rutas de movimiento reducido, por-localoperador-caps opt-out opt-out. Nuevas cuerdas de IU aterrizan en el kamo-traducción-diccionario (en) en un compromiso de acompañante.
· kamo-shared-library
**************** actualización dirigida
Conversión de asinácte (helos virtuales) y barridos programados sostienen un ImgDat desprendida; salvarse()/merge en cascadas en la colección de imágenes y lanzas huérfanasRemoval=true imágenes Una colección con cascada= todo-delete-orphan ya no era referenciada por la propiedad instancia de entidad'. Una actualización a granel de las columnas de la miniatura evita el gráfico de la entidad totalmente y está a salvo de cualquier hilo.
· kamo-internal
Añadir Responder Todos a los mensajes que leen pantasembre y vista de hilo
Responder Todo se anunciaba (llave etiqueta de corte de teclado - tecla i18n) pero no tenía manejador. Alcáñelo: nuevo computeReplyAllRecipients helper pone al remitente en A y cualquier otro destinatario original en Cc, excluyendo a sí mismo y desmangando caso insensiblemente. Añade un botón, el atajo de A y una entrada de tipo contextual en MessageBrowser, además de un botón de mensajería en ThreadDetailView.
· InitializerService
Indice parcial-único que impone un paquete de cierre activo por préstamo (eClose de doble cierre)
CREATE UNIQUE INDEX uk-mlos-closing.pkg.active-loan ON mlos-closing-package (lean.file-uid) DONDE status "CANCELLED". Durable parada detrás de la la guardia de idempotencia in-app del ensamblador: un paquete de cierre activo duplicado conducir su propio registro de MERS. Juegos de cierre vive en la lib compartida con sólo entradas no únicas de Index y no puede expresar un restricción parcial-única vía JPA, por lo que está escrito a mano DDL aquí (KI posee esquema). Idempotente; se aplica en la siguiente carrera de KI.
· MediaService
Materiales en proceso programados en la garfibina
Un barrido sin cabeza no puede conducir el oleoducto de la miniatura OTK de ConversionService, así que generar una miniatura de PNG de página-0 vía ImageIO justo después de almacenar la exportación. Los materiales programados ahora se vuelven en la cuadrícula como cualquier otro, sin relleno necesario.
· kamo-internal
Crones de generación recurrentes IU
ScheduleManager: crear/lista/deletar horarios (receta diaria/semenal / mensualidad Hora/día de los objetivos de autopost opcionales subtítulos); lanzado desde Materiales, cerrado en la capacidad de relleno automático de Canva (Enterprise). CanvaApi /api/canva/schedules proxies.
· MediaService
Generación programada . barrido de barrido destara recetas en cadencia
- CanvaScheduleController: CRUD para horarios de org (receta cadencia - hora/día de CanvaScheduleController: CRUD para horarios de org (receta , hora/día de . objetivos sociales opcionales), calcula a continuaciónRunAt - CanvaGenerationService: sin cabeza **************** como a Material (incronal en proceso Imagenervice; sin miniatura hasta que se rellene) - CanvaScheduleSweep: barrido programado, reclamación atómica por cronómetro, genera y el mejor-esfuerzo auto-posta el resultado de las conexiones sociales objetivo a través de la firma de costura pública-URL
· kamo-shared-library
Entidad CanvaSchedule . repo (generación recurrente)
Horario recurrente de org-scoped (receta cadencia - objetivos sociales opcionales) con una consulta de reivindicación atómica para que un barrido de MediaService funcione cada horario de vencimiento una vez.
· kamo-internal
Transcripción de susuperso expandible en el buzón de voz de sucista - filas de historia de llamadas
Cada fila grabada (voicemail y historial de llamadas) obtiene un 'Transcript' para alternar que consigue la transcripción de Whisper de la grabación bajo demanda y la muestra en línea, así que Los miembros pueden leerlo sin abrir el jugador. Cachado por grabación.
· kamo-internal
Guardar y reutilizar recetas de autocarga
TemplateAutofill: chips de "recetas salvadas" cargan una plantilla y asignación precargada; "Salvar como receta" persiste la plantilla actual y los valores de campo de campo en todo el mundo. - canvaApi list/save/delete . /api/canva/recipes proxies.
· MediaService
Recetas de autocarga guardadas CRUD (org-scopio)
CanvaRecipeController: GET/POST /api/media/canva/recipes . DELETE /-id. guardar/lista/sóft-delete una marca llamada de marca-tenlate y mapeo de campo, con el alcance de la Llamada org.
· kamo-shared-library
CanvaAutofillRecipe entity . repo (recetas de autocargadas salvadas)
Org-combido unión de una plantilla de la marca Canva a valores de campo (literal texto o una imagen de Materiales), para que los mayordomos puedan volver a ejecutar un médiente de datos estándar.
· kamo-internal
Añadir el campo de Identificación de Materiales para crear formulario, página de detalles e importaciones
Los hilos de un material nuloId (máximo 40) a través del tipo de plomo, leadsApi (crear las solicitudes de cable de actualización), y el sistema-campo de plomo compartidoFields lista que impulsa tanto el asistente de importación manual como la API/vendor asignación de entrada de interfaz de usuario (más la plantilla CSV descargable). Añade la entrada a /leads/nuevo y una fila de vista/editar en la página de detalles del plomo, conectado al mapa realtime pane-flash. Etiquetas a través de leads.new.fields / leads.view.fields / leads.view.rows (materialId).
· kamo-internal
Enterprise autofill UI . plantillas de marca de estamero de datos
TemplateAutofill: elegir una plantilla de la marca Canva, llenar cada campo con literal texto, un token org/cumplimiento (NMLS -, Equal Housing disclosure, org name/phone/ sitio web/dirección, nombre de miembro), o una imagen Materiales; generar una médular de datos diseñé y importarlo de nuevo en Materiales. Bañado en el Canva. Capacidad (empresa). - métodos de canvaApi y /api/canva/-marca-templates, ************* próxinos.
· MediaService
Autofill de Enterprise . plantillas de marca de estamero de datos
- CanvaApiClient: listas de plantillas de marca (dataset=non-empty), obtener un conjunto de datos, empleos de carga de activos, crear/conseguir puestos de trabajo de autolleno - CanvaController: GET /brand-tenlates, GET /brand-templates/-E-dataset, POST /autofill . resuelve los campos de imagen subiendo los MATERIALES de referencia material a Canva como activo, luego fusiones de datos; encuestas al nuevo diseño. Canva 403 (sin capacidad de autolleno) sale a la superficie como autofill.not.available.
· SecurityService
Identificación de Material mapeado persista en la importación manual de importación de API
Ambos conmutadores de setDirectFieldOnCreateSolicidad carecen de un caso predeterminado, por lo que un Sistema sin mapaFieldPath se deja caer silenciosamente. Añadir un caso materialId al manual-importación (LeadImportController) y proveedor/API-intake (LeadIntakeController) Los despachadores para que una columna/campo de Identificación de Materiales mapeado persista.
· kamo-shared-library
Añadir Material ID campo de extremo a extremo en la lib compartida
Añade un material anulado, max-40-charId a la entidad de plomo (MATERIAL-ID VARCHAR(40)), lo registra en la categoría de campos de plomo (categoría de perfiles) por lo que las ediciones son auditadas, lo enhebra a través de DTOs Create/Update/Lea y LeadService create/actualización (trim . truncate a 40, compañía de espejo), y la conserva a través de la conversión de plomo de base.
· kamo-internal
Acoplado social - correo electrónico-a-material - enlaces públicos
Distribución para materiales de comercialización, construida sobre la nueva costura pública-URL firmada. - materialesApi.publicLink(imd) /api/materials/link proxy - Materiales: "Copiar enlace público" y "Email este material" (adita el archivo a un envío de salida a través de la existente multiparta /api/email/send, cerrada en el correo electrónico org) - MaterialPickerDialog (reutilizable rejilla sobre el culo MATERIALec) - SocialCompositor: el botón de fotos una vez discapae ahora abre el secadora y se fija un material como correos a través de su URL pública (obras para Meta/Telegram/Discord)
· MediaService
Brevicho firmada URLs públicas para activos de comercialización
Deje que los proveedores sociales (Meta) y el correo electrónico traen un material específico para un límite ventana sin exponer el cubo privado de materiales de imagen. - MaterialUrlSigner: HMAC-SHA256 (platform.enc-key) token = imgId:orgId:exp, 1h TTL - MaterialsController: POST /api/media/materials/link (auth . URL de menta para un Imagen MATERIALES de propiedad de org) GET **************** (unauth . servir bytes para un token válido; org . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pase de los existentes sin sesiones /api/media/** forward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
· kamo-shared-library
prestatario de primera clase auto-des-desmitar transición ****************
PROYECTO DE APPLICATION.TAKEN para un prestatario (un parte de préstamo, no un operador, por lo que no LOS.- APPLICATION). Rutas a través de la transición () con un predicado de alcance que otorga SOLAMENTE la aplicación correcta y un atrapado a StatusId, así que el prestatario someterse se convierte en una transición adecuada del oleoducto. hito encadenado con hach oh, el ApplicationSubmission (INITIAL-DISCLOSURE), y el después deCommit STATUS-CHANGE event - en lugar de un archivo de préstamo silencioso poke. La membresía del partido de préstamo es verificada por el llamante.
· kamo-internal
Elimina la vista previa de importación-a-Canva
- eliminar un material (atado en MANAGE-MATERIALS) con confirmación - haga clic en una miniatura para previsualizarlo en una caja de luz - "Import a file" convierte un PDF/PPTX/image en un diseño editable de Canva (proxy reconstruye el cuerpo multiparte como el subidor de imágenes)
· MediaService
Importar un archivo en Canva como diseño editable
- **************** (importación de diseño binario) - CanvaController POST /imports (multiparto) . create-poll import job . editor enlace profundo con correlación-estado para retorno-nav - gota importación de Base64 en CanvaOAuthController
· InitializerService
Migración añade la columna de recordings.transcript TEXT
· VOIPService
Transcripción devuelve en metadatos de grabación para el reproductor de sucavista
· kamo-internal
Mostrar transcripción de Whisper en el reproductor de medios de suave
· ConversionService
Compartir TranscripciónService - endpoint genérico; transcribe grabaciones VOIP
- Extraer un TranscriptionService reutilizable (sfácil de normalizar - . . . . . . . . . . . . . . . . . . . genérico POST /api/conversion/transcribir endpoint, reemplazando el punto de encuentro específico controlador. Conoce a VOIP ahora comparte una ruta de transcripción. - RecordingProcessController: transcribir cada grabación/voicemail VOIP finalizada en el proceso (no mortal en el fracaso) y almacenar la transcripción en la grabación.
· kamo-shared-library
Columna de transcripción en la grabación . GrabaciónMetadata
Añade una columna TEXTO TRANSCRIPT a la entidad de grabación e enhebra una transcripción a través de **************** (con compat. Los constructores para que los que llaman existentes de 5 y 9 agarres no se vean afectados). Populado por el flujo de grabación-finalizar a través de Whisper; creado por la migración de KI.

Tu universo está esperando.
Comience gratis en minutos y agregue productos cuando esté listo, sin migración ni nuevos inicios de sesión.
Gratis para siempre: no se requiere tarjeta de crédito