Saltar al contenido
KAMOUniverse

Changelog

Qué hay de nuevo.

Cada mejora de la plataforma, a medida que se envía.

  1. · SecurityService

    Comience una sesión de codificador en la nube, y diga qué terminales son

    repositorio como cwd) y respuestas `cloud: true`; la máquina construye el una sesión en la nube puede empezar. El listado de terminales lleva el agente `cerrar ` marcar a través, para la nube en el icono de la ventana.

  2. · KlusterServices

    Comience una sesión de coder en la nube desde un checkout local

    repositorio. El paquete es forzado porque nuestros remotos son Forgejo, no GitHub, y el punto es el checkout en este disco. No --permission-mode (el CLI gots bypassPermissions for a cloud session) and no --session-id o recibo (la nube nombra la sesión y no mantiene ninguna transcripción aquí). La sesión de tmux está marcada @kamo cloud por lo que los informes de lista de terminales `cloud: true` y la consola puede poner una nube en el icono de la ventana después ~/Kamo/Proyectos, más recientemente trabajado en el primero, para el menú de elegir.

  3. · kamo-internal

    Los adjuntos se sientan por encima del cuerpo, como los propios archivos

    Un correo electrónico cuyo único contenido era un PDF no tenía manera de abrir o descargar el archivo: el papelclip apareció en la fila de la lista, y el panel de lectura mostró nada. EmailService había marcado la línea PDF porque la aplicación Gmail dio es un Contenido-ID (fijo allí en 0de0823); el panel cayó cada inline parte sin preguntar si el cuerpo realmente lo pintó. La regla ahora vive en un lugar, enumeradosApegos: una parte se queda fuera de la lista sólo cuando el cuerpo HTML referencia su cid:. El panel de lectura, la línea de tiempo principal y el reenvío todo lo utilizan, por lo que un mensaje reenviado no más larga silenciosamente deja ese archivo tampoco. No confía en el servidor bandera, que cuerpos caché en el navegador todavía llevan desde antes de la fijación. El sanitizante resuelve el cid: referencias con la misma normalización, por lo que todo lo que queda fuera de la lista es siempre algo que el cuerpo muestra. El estante adjunto, primera cosa bajo la cabecera: - cada archivo es una tarjeta que muestra el archivo en sí: página uno de un PDF (con su cuenta de página), la foto, o el glifo del tipo en papel en blanco - un clic preve en un visor de pantalla completa: PDF a pdf.js con zoom y un mostrador de página, imágenes ajustadas a pantalla con click-to-zoom, vídeo y reproductores de audio, texto y CSV/TSV como mesa; las teclas de flecha y una movimiento de películas entre archivos - las descargas pasan por el fetch, llevando el encabezado de la sesión per-tab ■a descarga nunca pudo, con un anillo de progreso y una garrapata dibujada - "Descargar todas" manos cada archivo sobre como uno .zip escrito en el navegador - teclado-primero, movimiento reducido honrado, hacha limpia; dos tarjetas por fila en un panel estrecho

  4. · kamo-shared-library

    Arive como segunda pérdida externa, y una costura de proveedor que es real

    Arive es accesible sólo a través de su aplicación de sólo invitación Zapier, por lo que la conexión es Zapier en ambas direcciones: Kamo post comandos (crear préstamo, actualización préstamo etapa, actualización de plomo, convertidor de plomo) a ganchos de captura por mercado, y Arive activa post de nuevo a un token de entrada por conexión. El adaptador, campo mapper (tres namings Arive, leído en la aplicación en vivo), mapa de escenario, encriptado secretos y el registro de actividad viven en integraciones. arive / integrations.los. LeadService ya no ejecuta el código MeridianLink para cada enlace. Empujados van a el enlace propio LosProviderAdapter; un proveedor sin uno es saltado y conectado en lugar de recibir un sobre SOAP. Inbound aplica tom a proveedor-neutral LosLeadPatch (contacto, dirección de correo, hechos de hipoteca, estado) y historial de atributos al proveedor. El resolver busca a un miembro credenciales del proveedor de la conexión, y un mercado ahorrado con un desconocido MLOS valor es un 400 en lugar de un NO MLOS silencioso. Las columnas de estos mapas ya existen en Yugabyte (LosAriveSchemaMigration's se aplicaron declaraciones antes de este empuje).

  5. · kamo-internal

    Una pantalla de lanzamiento diseñada, en la propia marca de la organización

    Abrir una computadora mostró una línea de texto plano en una página blanca, escrita directamente en la pestaña con `document.body.textContent`. Por hasta noventa segundos — un curriculum vitae lee toda la imagen de la memoria invitada retroceder un volumen replicado — esa frase fue toda la experiencia, y se lee como un navegador error en lugar de como el propio software del miembro. Una página que parece rota es una gente cerca de cuarenta segundos, que no cancela nada. Es una pantalla ahora, construida al cañón de esta aplicación en lugar de inventada: el lavado radial primario/secundario en blanco, una tarjeta blanca en el radio 14 con --elev-hover, el héroe de 90 grados gradiente como su regla, - Almacén, modo de luz. El logo de la organización y su vida ************* anillo contando hasta la estimación que el SERVER dio en lugar de una conjetura, y lavados ambiente que prefiere el movimiento reducido se apaga completamente. Un fracaso ahora tiene una salida. Muestra la propia frase del servidor: "ningún nodo tiene actualmente 8 GiB "libre" vale la pena leer — y un Prueba de nuevo que vuelve a ejecutar el lanzamiento en la misma pestaña. El TAB es el ICON de la ORGANIZACIÓN, que es la otra mitad de esto. Navegando a la puerta de entrada entrega todo el documento a Guacamole, cuyo propio `link rel="icon" href="images/logo-64.png" posee la ficha: un miembro que abrió la computadora de su empresa vio que se convirtió en el logotipo de Guacamole. El sesión se enmarca dentro de esta página, por lo que el icono y el título permanecen el org y la entrega-over es una moda en lugar de un flash blanco. Guacamole no envía ni X-Frame-Options ni un acercamiento de marcos política — comprobada, no asumida — y si el marco no puede ser creado la pestaña navega de la manera que siempre lo hizo, porque una pestaña más bonita no vale la pena que un miembro no llegue a su computadora. Los iconos no se reconstruyen de un camino: son los elementos `directlink conveniente` DynamicMetaLoader ya tiene resuelto para esta organización, clonado. Re-conducir cuál de los dos directorios favicon utiliza una org sería una segunda respuesta que puede derivar de la primera. Cada cuerda es una llave, empujada al diccionario primero. La copia se inyecta en lugar de mirar hacia arriba — la página está escrita en otra ventana por una función sencilla, donde no se pueden ejecutar las traducciones; y no hay deliberadamente ninguna falta de Inglés, por lo que un callador que olvida no compila en lugar de enviar inglés a cada lugar. Trece pruebas, incluyendo que un mensaje de servidor se escapa en lugar de escribir como marcador.

  6. · kamo-login

    Indique un miembro que escriba su email de trabajo en su personal

    Los reseteos de contraseña olvidada van a la dirección en la cuenta de usuario, por lo general un personal, pero los miembros escriben la dirección de trabajo que su organización les dio. SecurityService reconoce ahora una dirección de trabajo y responde 409 WORK EMAIL con personalEmailHint, la dirección de la cuenta enmascarada. No se envía nada. El mago muestra que en lugar de "ver su buzón de entrada": la dirección que escriban, la insinuación enmascarada en una línea propia, y el campo aclarado, relabelled "Dirección de correo electrónico personal", enfocada, con la indirecta como su titular. El *** se mantiene resuelto, ya que el miembro está siendo ayudado en lugar de rechazado. Entrar en la dirección personal lleva al paso del código como antes. /recover's email step muestra la misma respuesta como un mensaje de información en lugar de "Failed to send recovery email".

  7. · SecurityService

    Una dirección de trabajo en olvido-password pide la cuenta propia, mostrada enmascarada

    Los miembros abren su cuenta con una dirección personal (gmail, yahoo) y son más tarde dada una dirección de trabajo por su organización, que es la que recuerdan y tipo en contraseña olvidada. Eso sólo se resolvió en su propio host de inicio de sesión de org, y luego la carta fue a la caja de trabajo. Para 20 de los miembros de KamoCRM que es un KamoMail buzón de correo, que se lee dentro del producto que acaban de ser encerrados fuera. En cualquier otro host la dirección no coincidió con nadie, y la página dijo "si esta El correo electrónico está registrado, se ha enviado un enlace" sin haber enviado nada. /api/recover/email/initiate ahora responde el correo electrónico de la cuenta exactamente como antes. Para cualquier otra dirección busca una dirección de trabajo miembro: primero en la org cuya página de inicio de sesión es (Primary buzón de correo, luego miembros.email), entonces en cualquier org. Cuando eso nombre una cuenta con una dirección propia, nada se envía. El respuesta es un 409 con razón WORK EMAIL y personalEmailHint, la dirección de la cuenta con cada carácter del nombre entre el primero y el último protagonizado, y el dominio completo. Es un 409 a propósito: una página de inicio de sesión que precede a la El indicio muestra el mensaje para un no-2xx, y el mensaje dice lo mismo en palabras. Una cuenta sin dirección propia todavía recibe la carta en la bandeja de trabajo en el host de su org, ya que esa es la única bandeja de entrada registrada. La pista dice que una dirección pertenece a alguien, que la respuesta genérica nunca lo hizo, así que cada uno es contado por CodeAttemptLimiter: cinco horas por dirección escriba, más el límite de dirección del callador compartido con los cheques de código. Pasado eso la solicitud recibe un 429.

  8. · EmailService

    Mover el correo del sistema y el propio dominio de la plataforma org enviar a kamouniverse.com

    plataforma.mail.domain ahora predeterminado a kamouniverse.com (valor de archivo, no cambio predeterminado del código) y las puertas de cada dominio unverificado como antes. El org de plataforma (kamocrm) utilizado para pasar esa propiedad y enviar como su propio OrgDomain verificado en su lugar - ahora PlatformOrgResolver lo fuerza a través del mismo retroceso, así que ambos seguir una propiedad en lugar de correr dos filas diferentes. ¿Qué? consigue la pieza de juego para miembros: el buzón primario de la plataforma org obtiene un sintético kamouniverse.com prepended (same buzón de correo, klusterservices mail/ lo alia de nuevo al verdadero kamocrm.com maildir) como nuevo compositor predeterminado, mientras que la dirección original kamocrm.com se mantiene completamente envíable - Aditivo, no un reemplazo. Cada otra org no es afectada de ninguna manera. Bulk/campaign mail (bulk-email.platform-relay.*, hello.kamocrm.com) is un camino de código separado e intacto.

  9. · KlusterServices

    Añadir kamouniverse.com como segundo dominio de correo ordinario

    Añade kamouniverse.com a postfix's virtual alias domains con un local-part-preserving regexp so any address on it lands in the idéntico kamocrm.com buzón de correo (sin configuración por usuario, funciona para buzones de correo creado más tarde también), y para relay sender domains para que los miembros/servicios pueden enviar como kamouniverse.com a través de este relé. rspamd consigue su propio DKIM keypair y bloque de firma para el dominio ( mail selector, publicado como ¿Qué? Hola.kamocrm.com / postfix-bulk son Tocado.

  10. · KlusterServices

    Forward kamouniverse.com a kamocrm.com

    DNS para el ápice y www ahora apuntan a la IP pública de k1m1. Añadir a la direcciónRegex ruta en ambos puntos de entrada (301, trayectoria/quería preservada, ACME desafía ruta de desafío en :80) y sembrando a ambos anfitriones en Auto-cert's STATIC-DOMAINS para que se contraten de certs a pesar de no ser un dominio org registrado, igual que sign.pink.

  11. · kamo-internal

    Seleccione todo/deseleccione para los estados filtro de plomo, por defecto a todos

    La dimensión de los estados del panel de audiencia de la campaña y el desencadenante de goteo filtro de plomo no mostraba nada comprobado por defecto, a pesar de que un desconectado lista ya significa "todo estado" en el alambre "no restricción" mercado de convenciones/vendor/vendor-producto ya utilizado. Eso hizo que el El seleccionador parece que se estaba filtrando a cero pistas en lugar de todos, y no dieron una manera rápida de empezar de "todo estado" o "ninguno" antes de elegir a mano unos cuantos. leadAudienceFilter.ts gana Estados efectivos (qué mostrar comprobado: el lista almacenada, o cada estado cuando está desconectado) y con Estadoss (qué tienda de vuelta: el conjunto completo se derrumba a indefinido en lugar de explícito Lista de cincuenta códigos, por lo que una pista con un estado en blanco en el archivo todavía coincide "todo el estado" de la manera en que una ausencia real de un filtro hace un explícito En la lista no lo haría). Ambos paneles obtienen un "Seleccionar todo" / "Deseleccionar a todos" par junto al seleccionador de los estados solamente; las otras tres dimensiones son Sin cambios, ya era correcto su encuadración vacía por defecto.

  12. · kamo-internal

    DKIM y DMARC pasos, por lo que el email que enviamos para una org está completamente autenticado

    Dos nuevos pasos después del SPF existente, escrito para un propietario no técnico de la misma manera que SpfCard ya es — lenguaje claro, una caja "por qué esto importa", y nunca pidiendo un cambio que en realidad no necesitamos: - DkimCard: SecurityService genera una clave de firma para el dominio el primero tiempo esta carga, entonces lee si el registro TXT se publica. Sólo dos. estados reales (nada publicado aún, o algo publicado que no coincidencia) ya que un registro DKIM nunca puede collide con nada del cliente ya tiene —a diferencia de SPF, no hay ninguna distinción "add vs. edit" que hacer. DmarcCard: sólo lectura. Porque el correo de Kamo siempre utiliza el dominio del org como tanto el remitente de sobre como visible Desde, el control de alineación de DMARC ya está satisfecha una vez que se hace el SPF, cualquiera que sea la política que el org haya elegido, de modo que esto sólo muestra lo que se publica (o sugiere un punto de partida), nunca pide un cambio. Los dos nuevos... los proxies siguen existente spf/route.ts exactamente — no atrapar-all aquí, por lo que un camino sin su propio route file 404s antes de llegar a SecurityService. DnsSetupStudio ahora muestra 6 pasos en lugar de 4; número de paso a través de actualizado para los casos de propiedad y no propiedad. Depende de kamo-translation-dictionary 2f143f94 (the setup.dns.studio.dkim.* y configuración.dns.studio.dmarc.* copia) y puntos finales de asesoramiento del servicio de seguridad.

  13. · EmailService

    DKIM-sign de correo transaccional enviado como dominio propio de un org

    Una vez que SecurityService confirma un registro DKIM de dominio se publica (org domains.dkim verified), reseteos de contraseña, invitaciones y otros las cartas de transacción enviadas como dominio NoReply@{org} ahora llevan un DKIM firma junto con la autorización SPF existente, reutilizando la misma El correo de la campaña DkimSigner ya está firmado, sin modificar. EmailSmtpService obtiene una nueva sobrecarga de envío(...) tomando un MessageSigner, espejo de la ruta firmada de SendVia: saveChanges() una vez, firme, luego un Transporte gestionado manualmente, desde el transporte estático.send() utilizado por cada otra llamada() saveChanges() de nuevo internamente y se acuesta a nuevo Mensaje-ID después de la firma se computó sobre el viejo. El existente 6-arg enviar(...) ahora delegados a él con un firmante nulo, así que cada otro llamador no cambia. ********** gates on dkimVerified specifically (no sólo una clave existente) y sólo se aplica cuando ya estamos enviar como dominio propio del org — nunca bajo el dominio de la plataforma, y nunca en la red de dirección de la plataforma cuando el propio envío de la org falla. Depende de la biblioteca con forma de kamo 5de57705 y DKIM del servicio de seguridad asesor endpoint, que genera y verifica la clave que esto lee.

  14. · SecurityService

    Puntos finales consultivos DKIM y DMARC para /setup/dns

    Añade dos puntos finales junto con el SPF existente, por lo que el transaccional de un org correo (reiniciaciones de contraseña, invitaciones, notificaciones) puede llevar una firma DKIM y el propietario puede ver su postura DMARC: - GET /api/security/domains/{id}/dkim - genera la clave DKIM de un dominio primera vez que se pide (nunca regenerado después, ya que el intercambio de clave rompería la verificación de cualquier cosa ya firmada con el viejo), comprueba si el registro TXT es publicado, y almacena el veredicto en ******************* the same check-state shape spf verified ya utiliza. Sólo lectura. Cada mensaje que Kamo envía como NoReply@{domain} utiliza ese dominio como remitente en sobre y visible De, por lo que la comprobación de alineación de DMARC ya está satisfecha una vez que se hace SPF, cualquier política que el cliente haya elegido. Esto solo reporta lo que es publicado (o sugiere un registro inicial cuando nada es) — nunca pregunta para un cambio, ya que nunca hay una Kamo necesita. ¿Qué? Espejo SpfAdvisoryService's shape (una inspectiva pura), una costura createLookup() para las pruebas) y DkimAuthorization Servicio Espejos SpfAuthorizationService (persists the verdict, leaves it alone on a búsqueda fallida). DkimDomainRepository es un JpaRepository plano de la misma manera SpfDomainRepository es, por la misma razón: se envía con un redespliegue en lugar de un parachoque de versión compartido. Depende de la biblioteca con forma de kamo 5de57705 (los nuevos campos dkim * de OrgDomain).

  15. · kamo-shared-library

    DKIM campos clave para el correo transaccional de un dominio de org

    - ¿Qué? to org domains, mirroring the spf verified/spf checked at pair already there — por lo que un dominio puede contener un teclado DKIM generado y si su registro TXT tiene se confirmó, la misma forma de estado comprobado que SPF ya utiliza.

  16. · EmailService

    Reducir el público de una campaña y los desencadenantes de goteo por mercado, proveedor, producto y estado

    La caja "All Leads" del editor de campaña y el filtro de plomo del gatillo de goteo podrían sólo coincide con cada pista que el remitente puede ver, sin manera de apuntar a un mercado, vendedor, producto o estado del vendedor - la red /leads ha tenido los cuatro durante semanas. - Nuevo LeadAudienceFilter ¿Qué? hilos a través de CampaignAudienceInput - Propiedad PúblicoDefinition - usuario AudienceQueries.shape()'s Caso LEADS, reflejando los predicados de LeadGridSpecifications (el mercado tiene pistas directamente o a través de un producto vendedor; estado es propiedad de conocimiento de hipoteca vs correo, cambiar de alcance sí. /estimar y /browse tomar los mismos cuatro filtros que Params de consulta separados por coma, así que el recuento en vivo del editor refleja un Filtro también. - TriggerConfig gana un campo de estados junto al mercado existenteIds/vendorIds/ productIds; DripTriggerMatcher.leadFilter() lo comprueba. La ruta de pago del evento nunca transportó vendedor o estado, por lo que el estado se resuelve vivo por plomo (DripContacts. stateOfLead), de la misma manera el vendedor ya era del producto vendedor. Cada sitio existente de llamadas 3/6/8-arg sigue compilando sin cambios a través de añadido sobrecargas y constructores secundarios; sólo AudienceGatherer, que siempre rosca el filtro de una definición a través, necesita sus sitios de llamada actualizados.

  17. · kamo-internal

    **************** filtros en pistas de campaña y desencadenantes de goteo

    La fuente de audiencia de "All lead" del editor de la campaña no tuvo forma de estrechar a los que alcanzó más allá del alcance de la visibilidad. Añade un panel de filtro (Market - Vendedor - Vaca de producto de proveedores, además de una dimensión de Estado independiente) que estrecha el conteo en vivo, el vistazo de la vista previa y el público salvado, Enhebrado a través de la campañaAudienceLa estimación/browse llamadas de AudienceApi. El filtro de plomo del gatillo del goteo ya tenía el Market/Vendor/Product cascada; añade la misma dimensión del Estado allí, junto a la existente tres, no encasillado.

  18. · KlusterServices

    El propio host de computadoras de org obtiene un certificado y una ruta

    ordenadores es un alias estándar ahora - cada etiqueta blanca org se dice que apuntar uno en Kamo en /setup/dns, la forma en que apuntan y firman, por lo que dos cosas tuvieron que seguirlo o el registro resolvería y no haría nada. Un certificado. computadoras se unen a SUBDOMAINS, que es la lista per-org este servicio cuestiones de. Sin él un host de org tiene DNS y no TLS, que es un aviso del navegador en su marca en lugar de un escritorio. Un ROUTE. La puerta de entrada coincide con Host(`computers.kamocrm.com`) y nada más, así que una org podría agregar el disco, ver el estudio de configuración girar verde y todavía aterrizar en algún lugar que No es esta puerta de entrada. Las nuevas rutas utilizan HostRegexp(`^computers[.].+$`), la misma forma Y la corriente. las rutas ya usan. SEPARATE IngressRoutes en lugar de ampliar las reglas existentes, y la razón es TLS. Las rutas de la plataforma llevan un secreto explícitoName, que es el único certificado que puede ser nombrado antes del tiempo; un inquilino llega cuando su dominio va en vivo. Ampliación de esos reglas habrían hecho una llamada respuesta secreta para cada dominio inquilino - un certificado advirtiendo sobre la marca de otro, que es peor que ninguna ruta porque parece como Kamo consiguió su dominio mal. Las rutas de inquilino dejan TLS a la tienda de Traefik y SNI, como lo hace la reunión, y se sienta en menor prioridad para las computadoras. kamocrm.com mantiene su propio. Servir cada org de un regex no da nada: la conexión es elegida por el ficha firmada, nunca por el nombre de host, y un símbolo de un ordenador para un miembro un período de sesiones.

  19. · kamo-internal

    El registro de las computadoras en el estudio DNS

    Una tarjeta más en /setup/dns, por lo que una org configurar su dominio se dice sobre el host sus Computadoras Anfitrionas abren. Sin ella una org podría seguir la página a la carta, terminar con cada tarjeta verde, y todavía tiene un ordenador que produce una pestaña del navegador que abre y cierra – el enlace se construye a partir de las computadoras. host sin registro falla antes de cualquier petición deja la máquina. Se requiere como cualquier otra etiqueta en lugar de sólo para orgs que sostienen la aplicación. El registro es lo que hace que la aplicación funcione el día en que se activa, y una org enviado de nuevo a su meses más tarde para un registro es un org cuya primera computadora no se abre. La etiqueta tiene que coincidir con KnownAliases en el servicio de seguridad exactamente — DomainAliasContractTest los pins, porque una etiqueta que el estudio requiere pero verificar-dns nunca emite un estado para no reporta como falta: la falta de búsqueda cae a "pendiendo" y la tarjeta se sienta en "esperando DNS" para siempre, sea lo que diga la zona del cliente.

  20. · SecurityService

    Las computadoras son un alias estándar, y el enlace utiliza el propio org

    Cada etiqueta blanca apunta un conjunto fijo de etiquetas en Kamo y las computadoras no era una de ellos, por lo que una org podría seguir /setup/dns a la carta y todavía tener un Hosted Computadora que nadie puede abrir. El enlace se construye desde ese host; un enlace a un host sin registro es una pestaña del navegador que abre y cierra antes de cualquier petición deja la máquina, con nada conectado en Kamo y el ordenador en sí sano y despierto por todas partes. Cuatro listas se mueven juntas o no. DomainAliasContractTest afirma exactamente igualdad entre KnownAliases, SSL PROBE LABELS y su propio espejo del estudio catálogo, porque el fracaso contra el que protegen es silencioso: una etiqueta que el estudio requiere pero verificar-dns nunca emite un estado para caer a "pendiendo", por lo que la tarjeta se sienta en "esperando DNS" para siempre sin importar lo que diga la zona del cliente. Eso es lo que pasó a "media" durante cuatro meses en 2026. Se requiere como cualquier otra etiqueta en lugar de sólo para orgs que sostienen la aplicación. El registro es lo que hace que las computadoras anfitrionas funcionen el día en que se enciende, y una org enviado de vuelta a su registrador meses después, para un registro, es un org cuya primera computadora no abierto. La línea ahora utiliza el ORG más grande buildLink toma la organización y construye https://computers. OrgLinkHosts.liveRootDomain — el mismo ayudante que el portal prestatario utiliza, y para el misma razón: un dominio configurado pero no verificado enviaría a un miembro a un anfitrión que no resuelve. A diferencia del portal prestatario, caer de nuevo al host de la plataforma es CORRECT aquí en lugar que un enlace roto. Una puerta de entrada sirve a cada inquilino y la máquina es elegida por la ficha firmada, nunca por el nombre de host, así que una org sin dominio en vivo todavía consigue un trabajo ordenador — simplemente se abre en las computadoras. kamocrm.com hasta que su propio dominio esté en vivo.

  21. · SecurityService

    Lista sólo los pasos de inicio de la organización se pide

    Una organización cuyo modelo de seguridad fija cada respuesta de Cumplimiento (no producto que un miembro puede cambiar, un rango de edad para cada tipo de miembro) contado con nueve pasos. Tenía que "salvar" un noveno paso vacío antes de su wizard latched as finished (reportado 2026-09-21, Gnosia). OrgSetupStepApplicability decide qué pasos se aplican, desde el modelo aplicado. Hoy sólo el Cumplimiento puede abandonar. Pasos del resumen, pasos TotalSteps, el completadoEn latch y LastStep todos corren por encima de esa lista. A paso registrado antes de dejar de aplicar estancias almacenadas pero no se cuenta, así que vuelve cosquillado si el modelo siempre ofrece una opción allí de nuevo. Si modelo no se puede leer, el paso se muestra: un paso mostrado puede ser saltado, un oculto uno no puede ser alcanzado. La regla refleja el getComplianceStepUi (lo que dibuja el paso); ambos están marcados por la misma tabla de casos. AppliedModelController ahora lee políticas de productos y rangos de edad a través de los mismos ayudantes, por lo que el punto final y la regla no puede apartarse.

  22. · kamo-internal

    Un paso que no se pide a la organización no se muestra ni se cuenta

    Una organización cuyo modelo de seguridad fija cada respuesta de Cumplimiento (no producto que un miembro puede cambiar, un rango de edad para cada tipo de miembro) muestra un noveno paso diciendo que no había nada que configurar. Tenía que "salvar" que paso antes del mago contaba como terminado (reportado 2026-09-21). SecurityService ahora lista sólo los pasos que se pide a una organización, y el página sigue esa lista: el carril, el "x de y" cuenta, donde el mago reanudar, lo que viene después del último paso, y un '?step=` nombrar un paso que no está lista. Una carga útil sin lista usable todavía lee como cada paso, por lo que un La respuesta malformada nunca deja un mago vacío. cumplimientoStepApplies.test.ts pins getComplianceStepUi al mismo caso Mesa como OrgSetupStepApplicabilityTest de SecurityService. El servidor decide si el paso está listado, y esta función decide lo que dibuja, por lo que el Dos deben estar de acuerdo.

  23. · KlusterServices

    Etape y espesepe el certificado para computadoras.kamocrm.com

    Abrir una computadora hospedada produjo una pestaña del navegador que apareció y desapareció. El enlace de lanzamiento es correcto y también lo es el símbolo: SecurityService builds ******************* de KAMO-HC-GUAC-BASE-URL, El huésped es el huésped. El anfitrión no tiene certificado ni registro A, así que la cuenta muere antes de que algo en Kamo sepa de ello. No hay petición que llegue a Traefik, nada es logged, y la computadora se sienta AWAKE y saludable todo el tiempo. The hc-https IngressRute ya hace referencia tls-computers-kamocrm-com por su nombre; el secreto simplemente nunca fue acuñado, porque este servicio se emite para una lista explícita y computadoras.kamocrm.com no estaba en él. desktop.kamocrm.com está listado para exactamente el la misma razón. Nada golpea a ningún anfitrión hasta que alguien recibe un enlace, así que tampoco alguna vez descubiertos en los registros de Traefik como lo es un dominio de inquilino. También se refleja en las computadoras de acogida, porque la Ruta de Ingresa vive allí y hace referencia el secreto por su nombre en su propio espacio de nombres. Esta menta NOvIR hasta que exista el registro A. El bucle se salta a un huésped cuyo DNS no resolver, porque un desafío HTTP-01 contra ella no puede ser respondido: Skipping media.b11capital.com (DNS no resuelve; HTTP-01 fallaría) computadoras.kamocrm.com necesita el mismo registro de kamocrm.com y desktop.kamocrm.com, 47.181.8.84. Esa parte está en el proveedor de DNS, no aquí. Una vez resuelve, esto se emite en un bucle y refleja el secreto sin más acción.

  24. · kamo-internal

    La lista de mensajes nombra una pista o contacto, no su dirección

    Una fila estaba encabezada por el nombre de la pantalla del remitente, o la parte de la dirección antes de la " cuando no había ninguno, una pista que escribió en lectura como "jlrivera1984" por encima de "jlrivera1984-mail.example". El chip de cabeza ya prefería el nombre de nuestro propio registro, pero la lista nunca preguntó. VirtualMessageList ahora resuelve a los corresponsales de cada página cargada junto a sus avatares (una petición por lotes, en caché por dirección para la sesión) y cabezas la fila con el nombre en el registro: un colega, un contacto guardado, o - nuevo con EmailService d3d6e03 - una pista. El monograma deletramo del mismo nombre. La tarjeta de corresponsalte etiqueta una pista "Lídica" y ofrece "Ver plomo".

  25. · kamo-internal

    La lista de mensajes nombra una pista o contacto, no su dirección

    Una fila estaba encabezada por el nombre de la exhibición del remitente, o la parte de la dirección antes de la " cuando no había ninguno, así que una pista que escribió en lectura como "rodarisdolgovanton" por encima de "rodaririsdolgovanton.gmail.com". El chip de la cabecera ya prefirió el nombre de nuestro propio expediente, pero la lista nunca preguntó. VirtualMessageList ahora resuelve a los corresponsales de cada página cargada junto a sus avatares (una petición por lotes, en caché por dirección para la sesión) y encabeza la fila con el nombre en el registro: un colega, un contacto guardado, o - nuevo con EmailService d3d6e03 - una pista. El monograma deletramo del mismo nombre. La tarjeta de corresponsal descaro etiqueta una pista "Lead" y ofrece "Ver plomo".

  26. · EmailService

    Una pista que escribe en nombre del corresponsal

    La lista de buzones encabezaba un mensaje de plomo con la parte de su dirección antes de la " ("jlrivera1984") cuando su cliente de correo no envió ninguna pantalla nombre, aunque el org los tiene como ventaja ("Jordan Rivera"). El solucionador conocía a mis colegas y solo guardaba contactos. CorrespontResolver gana un cuarto nivel, LEAD (después de CONTACTO), con el nombre, compañía y ledId (una cuerda: uids pasen MAX-SAFE-INTEGER). LeadCorrespondents responde sólo lo que la cuadrícula principal mostraría al lector: VERDAECS requeridas, un plomo no asignado necesita VER-UNASSIGNED-LEADS (fallas" cerrados en productos gratuitos para todos, sin teléfonos (contacto de información está pisoteado por derechos de esta tarjeta no comprueban), y cada plomo nombrado está escrito a Como LIST se lee en un PHI org, vía Audito audición. las pistas no tenían un índice en la dirección: la búsqueda caminó por todos los 790k de la Las pistas del reportero en 9.8 s. ix.leads.org.email. (org.id HASH, inferior(trim(email))))) está en db/leads-email-lookup-index.sql y era APPLIED BY HAND como el propietario antes de este despliegue; el plan genérico ahora toma 3,4 ms.

  27. · EmailService

    Una pista que escribe en nombre del corresponsal

    La lista de buzones encabezó un mensaje de plomo con la parte de su dirección antes de la " ("rodarisdolgovanton") cuando su cliente de correo no envió ninguna pantalla nombre, aunque el org los sostiene como una pista ("Anton Dolgov"). El solucionador conocía a mis colegas y solo salvó los contactos. CorrespontResolver gana un cuarto nivel, LEAD (después de CONTACTO), con el nombre, compañía y ledId (una cuerda: uids pass MAX-SAFE-INTEGER). LeadCorrespondents responde sólo lo que la cuadrícula principal mostraría al lector: Se requiere VERDAECS, un plomo no asignado necesita VER-UNASSNED-LEADS (fracasa" cerrados en productos gratuitos para todos), sin teléfonos (contacto de información está pisoteado por derechos esta tarjeta no comprueba), y cada plomo nombrado está escrito a Fáctelo como LIST leído en un PHI org, vía Audito audito. las pistas no tenían un índice en la dirección: la búsqueda caminó todo 790k de la Las pistas de org del reportero en 9.8 s. ix.leads.org.email. (org.id HASH, inferior(trim(email)))))) está en db/leads-email-lookup-index.sql y era APPLIED BY HAND como propietario antes de este despliegue; el plan genérico ahora toma 3,4 ms.

  28. · kamo-internal

    El miembro que causó una notificación abre su tarjeta de ella

    "Dana Reyes te rendió", "Weekly sync" Dana Reyes, una tarjeta de chat no leí cuyo cuerpo es el remitente: EmailService (29cb21e) ahora envía al actorMemberId (como texto) y actorName, el nombre exactamente como el título o cuerpo lo deletrete, y la campana dibuja ese tramo de texto como nombre del miembro. - NotificaciónText elimina el nombre del título (debido al cuerpo) una vez, en su primer hecho; todo lo demás lee exactamente como antes. Utilizado por la tostada, la fila de la historia (clic enToggles=-false-: la fila abre la notificación) y el cuadro de diálogo de detalle. - Se abre una tarjeta de tostadas a nivel de cubierta. MemberHoverCard/MemberName tome zIndex, y el brindis pasa NOTIFICATION-DECK-Z (1500, ahora una constante con la propia cubierta). En la tarjeta es 1305 abierto debajo de la cubierta de la que vino; al mismo nivel pinta sobre ella (se adjunta a Más adelante y todavía bajo sus propias puntas de herramientas (aparecida más tarde). - UnreadChatNotifier envía al remitente como el actor, nunca para Exec2Exec. El servidor también mantiene un actor solo de la propia organización del que llama. - Espect "construido": el párrafo de las notificaciones. Verificado: tsc; eslint (nada en líneas cambiadas); los 19 guardias del repo; vitest (notificaciones, miembros, lib, ajustes, chat; los pocos que cronometieron bajo el paso de carga de la máquina por su cuenta); y un Sonda de cromo que el nombre se mantiene en línea en el título de dos líneas de tostadas y la fila de la historia La elipsis aún aguanta.

  29. · kamo-shared-library

    La aplicación Notas es "Notas y listas de verificación"

    La aplicación Notas también tiene listas de verificación desde el 2026-09-23 (pasos despegados como están hecho, un paso que espera hasta los pasos previos terminado, una lista de verificación programada en el calendario), y se llama "Notas y listas de verificación" en todas partes se llama. ServiceType.NOTES lleva el nuevo nombre de visualización y una descripción que cubre ambos, que es lo que Apps & Características, Tipos de Rama y el mago de la cremosa se muestran una vez SecurityService es reconstruido. Copiar solamente: el nombre constante y el identificado no cambian, por lo que no se concede ni se almacenan ni movimientos de filas. ServiceTypeCustomerCopyPelPlata el nombre y que el descripción menciona listas de verificación.

  30. · MediaService

    La invitación de Hold'em y el recordatorio de la reunión dicen de quiénes son

    MiembroNotificationClient.raise gana una sobrecarga que transporta al actorMemberId/actorName (el id enviado como texto; la firma antigua no cambia y no envía ninguna). HoldemInviteMessenger pasa al concesionario ("Dana Reyes te reparte"); MeetingReminderSweep pasa el creador del encuentro cuando el título los nombra ("Seca sincronización de Dana Reyes"), leyendo al creador una vez en lugar de dentro del título (). EmailService se queda con el Par y kamo-internal dibuja ese nombre como la tarjeta del miembro. Un EmailService más antiguo que los campos los ignora. Pruebas: HoldemInviteMessengerTest (1; sus verificaciones de aumento toman la nueva sobrecarga), MeetingReminderActorTest (2), ************* (2). Suite completa: 1060 carrera, 0 fallos.

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