Changelog
Qué hay de nuevo.
Cada mejora de la plataforma, a medida que se envía.
· kamo-internal
"Llamas de miembros del equipo AI" en su propio perfil (SP95 T27)
El perfil de una persona gana una tarjeta en su sala de trabajo: si su los miembros del equipo AI de la organización pueden llamarlos, y en cuál de sus números. El interruptor gira un consentimiento permanente en el número elegido (el primero por defecto) o apagado, y elegir otro número mientras que está en movimiento el consentimiento allí; ambos a salvo a la vez a través del nuevo BFF relé de la ruta de contacto de SecurityService. Un consentimiento dejado en número que ya no está en el perfil lee como fuera, con "Tu número cambiado"; un perfil sin número pide uno primero. La tarjeta dice un llamada solicitada en un chat se permite incluso cuando esto está apagado, y re-reads cuando el registro del miembro cambia en otro lugar. Un administrador de seguridad ve la tarjeta de un colega sólo de lectura, captado para alguien más y nombrar quién puede cambiarlo. Las puertas son aiCallsView (self or MANAGE MEMBER SECURITY, on a save person who is a miembro del equipo) y aiCallsEdit (la persona que ellos mismos), con una fila de paleta.
· kamo-internal
"Llamas de miembros del equipo AI" en su propio perfil (SP95 T27)
El perfil de una persona gana una tarjeta en su sala de trabajo: si su los miembros del equipo AI de la organización pueden llamarlos, y en cuál de sus números. El interruptor gira un consentimiento permanente en el número elegido (el primero por defecto) o apagado, y elegir otro número mientras que está en movimiento el consentimiento allí; ambos a salvo a la vez a través del nuevo BFF relé de la ruta de contacto de SecurityService. Un consentimiento dejado en número que ya no está en el perfil lee como fuera, con "Tu número cambiado"; un perfil sin número pide uno primero. La tarjeta dice un llamada solicitada en un chat se permite incluso cuando esto está apagado, y re-reads cuando el registro del miembro cambia en otro lugar. Un administrador de seguridad ve la tarjeta de un colega sólo de lectura, captado para alguien más y nombrar quién puede cambiarlo. Las puertas son aiCallsView (self or MANAGE MEMBER SECURITY, on a save person who is a miembro del equipo) y aiCallsEdit (la persona que ellos mismos), con una fila de paleta.
· SecurityService
El equipo sub-resources (miembros, derechos, roles) y el endpoint de recalculación (KamoCollab CP01 T11)
Ten paciencia. /derechos y /roles, y PUESTOS ******************* (especie § 5.7). Las lecturas son abierto a cualquier sesión de la org; escribe necesidad CONFIGURE SYSTEM o un abierto Dios, mirado antes de que el equipo sea buscado. Cada PUT reemplaza su una lista requerida a través de TeamWriter, ejecuta TeamService. después deWrite y responde a la lista como se lee ahora con derechosRecalculado: miembros recalcula quién se unió y quién dejó sólo, derechos y roles del equipo miembros. La recalculación responde {recalculado: n}, el miembro cuenta, y un fracaso es un 500 que no filtra nada.
· kamo-internal
SP96 la tarjeta de voz AI en el perfil, y la sección VOICE de la carta sin el pin TTS
La sala de identidad de un miembro de AI gana su tarjeta de voz: una línea por discurso modelo que puede utilizar, en el orden que los intenta, con la voz que habla ahora y cómo fue elegido, el modelo usó primero, un modelo sin voz de su sexo, y voz que cambia la próxima vez que habla, con ¿Por qué? Un espectador AIService permite cambiarlo elige otra voz (una ventana de diálogo) las voces que se adapten) o el modelo utilizado primero; ambos guardar a la vez a través de los nuevos relés BFF de los puntos finales de voz miembros de AIService. El tarjeta lee sus voces de nuevo cuando el sexo salvado cambia. Su puerta, aiVoiceView, es la regla de lectura de AIService, y tiene una fila de paleta. La sección VOICE del editor de cartas es sólo texto de estilo: el selector TTS y el catálogo de voz de alquiler (llamada cliente y ruta BFF) se han ido, la sección dice que la voz es elegida en el perfil, y un artículo todavía Llevar un pin de voz está marcado como compartido-lib lo rechaza.
· kamo-internal
SP96 la tarjeta de voz AI en el perfil, y la sección VOICE de la carta sin el pin TTS
La sala de identidad de un miembro de AI gana su tarjeta de voz: una línea por discurso modelo que puede utilizar, en el orden que los intenta, con la voz que habla ahora y cómo fue elegido, el modelo usó primero, un modelo sin voz de su sexo, y voz que cambia la próxima vez que habla, con ¿Por qué? Un espectador AIService permite cambiarlo elige otra voz (una ventana de diálogo) las voces que se adapten) o el modelo utilizado primero; ambos guardar a la vez a través de los nuevos relés BFF de los puntos finales de voz miembros de AIService. El tarjeta lee sus voces de nuevo cuando el sexo salvado cambia. Su puerta, aiVoiceView, es la regla de lectura de AIService, y tiene una fila de paleta. La sección VOICE del editor de cartas es sólo texto de estilo: el selector TTS y el catálogo de voz de alquiler (llamada cliente y ruta BFF) se han ido, la sección dice que la voz es elegida en el perfil, y un artículo todavía Llevar un pin de voz está marcado como compartido-lib lo rechaza.
· AIService
El breve lidera el propósito de un equipo con el nombre del equipo (KamoCollab CP01 T17)
Una línea TEAM PURPOSE ahora lee "Como miembro del equipo {title}: ", después de la título de trabajo, como el ROLE, DEPARTAMENTO y JOB TITLE conduce. VERSION stays (D19): ningún breve tiene una capa TEAM todavía, así que nada necesita recompilar.
· SecurityService
TeamController — list, create, read, update and delete (KamoCollab CP01 T10)
Obtener vidaPOST /api/seguridad/teams y obtener vidaPUT sometidaDELETE /api/seguridad/teams/{id} (specific §5.7). Todo manejador resuelve primero el callador (401 sin org); las lecturas están abiertas a cualquier sesión de la org; escribe necesidad CONFIGURE SYSTEM o abrir ventana de dios (403 MISSING RIGHT con requeridoRight), chequeado antes de la El equipo es buscado. Un camino no UUID, un id desconocido y otro equipo de org son todos 404 TEAM NOT FOUND. Una escritura se ejecuta en la transacción de TeamWriter, entonces TeamService.afterWrite fuera de él; crear y actualizar respuesta {team (el detalle, con los artículos de alquiler), rightsRecalculated}, delete {Deleted: true, rightsRecalculated}. Refusals keep TeamErrors' body, charter rechazos Forma de CharterErrors, y una limitación que la base de datos impone contra un ahorro concurrente es un 409 pidiendo una recarga, no un 500.
· MediaService
El camino interno de DM pasa por la política de chat y el protector de giro AI, y cada línea de chat dice quién lo escribió (KamoCollab CP00 T7)
PUESTOS ************* Ahora requiere el MEMBER de la fuente o SYSTEM (else 400 SOURCE REQUIRED). Una línea MEMBER es revisada por la política de chat como el propio envío de un miembro (abrir-then-send cuando no existe DM; el DM existente guid for the ONE WAY reply window), refused 403 CHAT POLICY, and an AI La línea del remitente es contada por el guardia de turno (429 AI TURN LIMIT). El AI línea a su propio supervisor humano nunca se cuenta, y pasa las reglas mientras protegeManagerLine está encendida. Una línea SYSTEM ( avisos de calendario) salta ambos. El manejador no abre ninguna transacción: el límite de giro se lee primero, luego InternaDirectMessageWriter (@Transactional @RetryOnDbConflict) abre el DM, admite el turno, escribe la línea y prepara el fan-out; el el anuncio sigue el compromiso. media objs.source está escrito: MEMBER by member sends and Exec2Exec posts, SISTEMA por líneas internas SYSTEM y la bienvenida Exec2Exec, SERVICIO por alertas. Una línea SISTEMA o SERVICIO no es un giro humano, por lo que ya no resetea el contador AI. Los marcos de ventilación, la respuesta de envío, su NATS frame and history rows carry source (MEMBER for a NULL row).
· kamo-internal
SP96 formulario de alquiler pide el sexo de un AI y deja que el alquiler abandone su extensión del teléfono o estación de trabajo; la gente consigue un sexo opcional; la lista de verificación Configuración ahora (SP96 T18)
- AI de alquiler: un Female/Male obligatorio (el botón de alquiler lo espera), y Extensión de teléfono / interruptores de estación de trabajo, ambos encendidos; la carga de pago siempre envía aiPhoneExtension y aiWorkstation como booleanos, y la lista de verificación del formulario Listas de previsualización sólo lo que este contrato establecerá. - Personas (propietario, 2026-10-04): ambos crean formas ofrecen un sexo opcional (No especificado / Mujer / Hombre) a un creador que puede escribirlo (sexEditAtCreate = sexEditar para un nuevo registro); enviado sólo cuando es elegido. - La nota de contacto AI promete su propio buzón de correo. - Lista de verificación de la compra: NOT REQUESTED AT HIRE se dice en palabras; un salteado-a-hire ofertas de fila Ahora, la misma retícula, con su propio brindis.
· kamo-internal
SP96 formulario de alquiler pide el sexo de una AI y permite que el alquiler abandone su extensión o estación de trabajo del teléfono; la gente consigue un sexo opcional; la lista de verificación se establece ahora (SP96 T18)
- Contratación de IA: una selección femenina/mala requerida (el botón de alquiler lo espera), y Extensión de teléfono / interruptores de estación de trabajo, ambos encendidos; la carga de pago siempre envía aiPhoneExtension y aiWorkstation como booleanos, y la lista de verificación del formulario Listas de previsualización sólo lo que este contrato establecerá. - Personas (propietario, 2026-10-04): ambos crean formas ofrecen un sexo opcional (No especificado / Mujer / Hombre) a un creador que puede escribirlo (sexEditAtCreate = sexEditar para un nuevo registro); enviado sólo cuando es elegido. - La nota de contacto AI promete su propio buzón de correo. - Lista de verificación de la compra: NOT REQUESTED AT HIRE se dice en palabras; un salteado-a-hire ofertas de fila Ahora, la misma retícula, con su propio brindis.
· MediaService
MediaService abre el gráfico de org, lee los hechos de política de chat y el alcance de seguimiento gestionado es todo el subárbol (KamoCollab CP02 T17)
MediaService declara el cargador de gráficos de org y su caché de 60 s, y un oyente en security.orggraph.changed.* que desaloja el gráfico y luego la política de chat instantánea en cada cápsula. La política de chat construye sus hechos miembros del caché grafica en lugar de sus propias consultas. El alcance gestionado del seguimiento de marketing es ahora el caller más a todos debajo de ellos a cualquier profundidad que es récord-activo y no sintético, la misma lectura que el alcance TEAM de un informe.
· KBService
La lectura de un supervisor de las notas de un miembro de AI está escrita a phi access log (KamoCollab CP00 T8)
Obtener /api/notes/memberId}, .../{noteId} y .../{noteId}/versions now grabar la lectura después de que tenga éxito, a través de PhiAccessRecorder: uno LIST fila por nota lista (un registroTodos los lotes), una fila de VIEW para una nota o su historia; recursoTipo NOTA, la org del callador y miembro, propósito OPERACIONES, justificación ************* Una lectura rechazada (403, 404) o una lista vacía no escribe nada; VER y LIST falla abrir, así que un fallo de escritura nunca llega a la respuesta del supervisor. kbservice gana su PHI escritor: PhiAuditPersistenceConfig declara Con destruir a Method. and KBServiceApplication scans com.kamo.z.shared.phi.audit in the same commit (la lección 2026-08-03; KbPhiAuditWiringTest sostiene los dos juntos). Los sellos de auditoría ocurrieronEn sí mismo: PhiAccessRecorder reconstruye un evento sin su propósitoOfUse.
· SecurityService
El dominio del equipo — alambre, validación, escritor, servicio y la costura de org-graph (KamoCollab CP01 T9)
TeamWire lee un tri-estado del cuerpo del equipo (absent / null / value); TeamValidator comprueba títulos, descripciones, plazos, roles, derechos (normalizados como nivel), miembros del personal, la dirección y las gorras contra la organización antes todo está escrito; TeamWriter hace cada equipo escribir en uno retrigado transacción, sustitución de funciones y derechos por clave bajo los índices únicos (deletes flushed before inserts, a kept right updated in place); TeamService sirve las lecturas y después deWrite: la recalculación atada su propia transacción, el anuncio de la carta, y TeamChangeListener para (R1-25). LayerCharterSupport gana equipoCounts. Nada. lo sirve todavía (Task 10).
· kamo-shared-library
Construir los hechos miembros del gráfico de org, junto al viejo camino de consulta (KamoCollab CP02 T5)
ChatPolicySnapshotLoader gana un constructor tomando LongFunction (3)OrgGraph confiar. Con él, load() mapea el gráfico de la organización a MemberFacts a través de los nuevos MemberFactsFromGraph, asking for the graph once per load of an org with an activo. El ChatPolicyFactsRepository constructor y loadFacts son Sin cambios; la tarea 18 los elimina una vez que ambos servicios han cambiado. ********** alimenta las mismas filas a una copia literal de Carga de hoyFacts y OrgGraphRows. deSql + OrgGraphBuilder + MemberFactsFromGraph, over 2,000 random orgs and the fixed loop, dangling and casos fuera de rango, y afirma que los dos mapas son iguales.
· kamo-shared-library
Recalculación forzada por id miembro, y ediciones de roles que llegan a los miembros del equipo (KamoCollab CP01 T7)
¿Qué? recalcula exactamente estos miembros: leído por id en pedazos de 500 (nunca los miembros de la organización), cada pedazo de recalcChunk (el Nivel TEAM cargado una vez por pedazo; sólo un miembro cambiado está escrito y notificado. Null y repetidas ids se bajan, ninguna izquierda es 0 sin consulta, más de 1.000 ids distintos es rechazado, y un miembro proxiado se descompone antes de la cascada. updateRoleMemberRightsApplied también recalcula los miembros de cada equipo que lleva el papel (findTeamIdsByRoleId, encontrarMemberIdsByTeamIdIn), cada vez, nunca un titular directo Dos veces, tomado de los miembros de la organización que ya leyó, en pedazos de 500.
· SecurityService
SecurityService's org graph beans, the after-commit change publisher, its listener and the two internal routes (KamoCollab CP02 T7)
OrgGraphBeanConfig declara el cargador (una operación de sólo lectura) Plantilla de su propio, Clock.systemUTC()) y el 60 s OrgGraphCache. OrgGraphChangePublisher recoge los cambios de una transacción por org, y al terminar desaloja esto La política de gráficos y chat de pod y publica ************* una vez per org; un rollback no anuncia nada, ninguna transacción funciona a la vez, y Nunca tira. OrgGraphEventListener desaloja ambos caches en cada cápsula evento. OrgGraphInternalController sirve GET .../org-graph/{orgId} y .../{orgId}/Pair behind X-Internal-Auth; an unknown org is an empty graph.
· kamo-shared-library
El cargador, sus ocho consultas llenas de org, la caché de 60 s, el evento de cambio, el codec de alambre y el mapeo de cabeza del departamento (KamoCollab CP02 T4)
- OrgGraphFactsRepository (donotmodify.dao.repos): ocho consultas nativas, cada una atada por org id a través de un índice; los usuarios y las mesas de equipo de CP01 se fijan en sus llaves (verificado por EXPLAIN). - OrgGraphRows.fromSql: los mapas de minúsculas a filas, de forma indulgente (enums desconocidos leídos como la entidad defaults, ChatPolicySnapshotLoader's number and boolean rules). - OrgGraphLoader: una transacción de sólo lectura por carga; TransientDbRetry fuera de una transacción, una Intente dentro de uno. - OrgGraphCache: Caffeine, 60 s después de escribir, a la mayoría de 1.000 orgs, una carga por org; fresco() lo paga. - OrgGraphEvents. su cuerpo, y una suscripción de despachador que baja sujetos malformados y contiene fallas de manejador. - OrgGraphWire: los mapas de la instantánea interna (ids as strings) y la espalda, se negaron en un desajuste de sello. - Departamento.headMemberId (sólo cartografía), los campos principales del DepartamentoDTO, el TEAM compartir Javadoc y el comentario de la cascada.
· kamo-shared-library
The TEAM level of the rights and session-timeout waterfalls (KamoCollab CP01 T6)
TeamLevels (puro, no un frijol) lee un conjunto de equipos de miembros en cuatro consultas sea cual sea su número (uno cuando ninguno está en un equipo): miembros, equipos, sus roles con los derechos de cada rol, y sus derechos directos. Cada equipo un miembro pertenece a los pliegues en UNo nivel de pares por la propia cascada addSettingToLevel rule (GRANTED beats NUKE), overlaid after the job title and ante el miembro; FORCE, closure and the AI guardrails still follow. El tiempo de sesión gana el mismo nivel: el tiempo más corto del equipo no anual anula el título de trabajo, y el propio miembro lo anula. Sólo personal, como departamento y título de trabajo: un cliente no cuesta ninguna consulta de equipo. Sendas de un solo miembro cargan el nivel de un miembro; recalcChunk carga el pedazo una vez. Los cuatro repositorios de equipo son opcionales; sin ellos, o para un miembro en ningún equipo, cada cascada resuelve exactamente como antes: los oros T1 permanecen verde y sin editar en ambos modos.
· kamo-internal
Enlace las pantallas AI a sus artículos de ayuda por vía, y fijar los consejos de configuración AI que mostraron los marcadores de posición (SP98 T23)
- /help-center/directpath (app/help-center/[...path]): abre el artículo en /kb cuando la propia base de conocimiento del lector sostiene el centro de ayuda (el organización de la plataforma), el centro de ayuda pública en el lector lenguaje. Las propias referencias cruzadas del centro de ayuda usan la misma dirección. Sólo se aceptan manchas simples; cualquier otra cosa va al centro de ayuda primera página. - AyudaArtículoLink: misma pestaña; "Más información en el centro de ayuda" o un nombre sujeto; tinta para la superficie que se sienta (la columna de Consejos Rápidos es luz en una paleta. - Vinculado: las ocho pestañas de Configuración > Inteligencia Artificial, Hosted Computadoras - ordenadores, Configuración Esencial - Papeles de seguridad, Departamentos y Títulos de trabajo, la habitación AI del perfil, y la consola AI llama. - La pestaña Modelos de Seguridad lee "modelos de seguridad", y sus consejos rápidos y los de Usage y Resúmenes leen "Qué Título" / "Personal independiente": copia real de nuevas llaves. - HELP ARTICLES se lleva a herramientas/ayuda-centro/manifest.json por una prueba.
· kamo-internal
Enlace las pantallas AI a sus artículos de ayuda por vía, y fijar los consejos de configuración AI que mostraron los marcadores de posición (SP98 T23)
- /help-center/directpath (app/help-center/[...path]): abre el artículo en /kb cuando la propia base de conocimiento del lector sostiene el centro de ayuda (el organización de la plataforma), el centro de ayuda pública en el lector lenguaje. Las propias referencias cruzadas del centro de ayuda usan la misma dirección. Sólo se aceptan manchas simples; cualquier otra cosa va al centro de ayuda primera página. - AyudaArtículoLink: misma pestaña; "Más información en el centro de ayuda" o un nombre sujeto; tinta para la superficie que se sienta (la columna de Consejos Rápidos es luz en una paleta. - Vinculado: las ocho pestañas de Configuración > Inteligencia Artificial, Hosted Computadoras - ordenadores, Configuración Esencial - Papeles de seguridad, Departamentos y Títulos de trabajo, la habitación AI del perfil, y la consola AI llama. - La pestaña Modelos de Seguridad lee "modelos de seguridad", y sus consejos rápidos y los de Usage y Resúmenes leen "Qué Título" / "Personal independiente": copia real de nuevas llaves. - HELP ARTICLES se lleva a herramientas/ayuda-centro/manifest.json por una prueba.
· kamo-internal
El área del Equipo AI, quince artículos KamoAI, refrescante AI y artículos de notificación, y enlaces que trabajan en el sitio público (SP98 T23)
Contenido (autorizado, bajo contenido/): - Equipo AI de nueva categoría (después de AI Assistant) con tres secciones y 15 artículos: AI miembros del equipo explicaron, contratar, supervisar, la carta, plantillas de trabajo y personas, aprobaciones; el centro Workforce, allanando AI miembros, Routing and Budgets, AI estaciones de trabajo; AI llamadas telefónicas y consentimiento, miembros de AI en reuniones, listas de verificación y tareas, eventos repetidos y AI bloques de trabajo, menciones y miembros de AI en chat. Las etiquetas son Las pantallas son propias del diccionario. - Remitido a lo enviado: proveedores de AI (el Registro de Proveedores de AI), añadir un proveedor, servidores MCP (sólo herramientas de lectura-sólo llegan a cualquier persona), Agentes de ventas AI (personas), modelos de seguridad AI, configuración general AI, políticas de acceso, uso de AI, encabezados de correo electrónico y firmas (el AI divulgación), los tres artículos de notificaciones, correo de voz y crear un evento (Repeat, Find a time). - Dos artículos corregidos a mano (843d0291b) no fueron autorizados, por lo que una reconstrucción los revertía; ahora lo son. Pipeline: - Enlaces de referencias cruzadas a /help-center/directpath (lib/paths.mjs) en su lugar de /kb/Seguido, que es un 404 en el sitio público. Dentro del producto la ruta /help-center abre el mismo artículo. - import.mjs: --sólo toma una lista separada por coma (primero de los padres); --posiciones mueve sólo lo que difiere del manifiesto (las categorías debajo de uno insertado); --relations- only sets see-also links sin un nueva versión. - Un artículo escrito relacionado: [slugs] semillas sus enlaces de véase también (lib/relacionado.mjs), y una mancha que no nombre nada falla en la construcción. Manifiesto.json y relaciones.json reconstruido.
· kamo-internal
El área del Equipo AI, quince artículos KamoAI, refrescante AI y artículos de notificación, y enlaces que trabajan en el sitio público (SP98 T23)
Contenido (autorizado, bajo contenido/): - Equipo AI de nueva categoría (después de AI Assistant) con tres secciones y 15 artículos: AI miembros del equipo explicaron, contratar, supervisar, la carta, plantillas de trabajo y personas, aprobaciones; el centro Workforce, allanando AI miembros, Routing and Budgets, AI estaciones de trabajo; AI llamadas telefónicas y consentimiento, miembros de AI en reuniones, listas de verificación y tareas, eventos repetidos y AI bloques de trabajo, menciones y miembros de AI en chat. Las etiquetas son Las pantallas son propias del diccionario. - Remitido a lo enviado: proveedores de AI (el Registro de Proveedores de AI), añadir un proveedor, servidores MCP (sólo herramientas de lectura-sólo llegan a cualquier persona), Agentes de ventas AI (personas), modelos de seguridad AI, configuración general AI, políticas de acceso, uso de AI, encabezados de correo electrónico y firmas (el AI divulgación), los tres artículos de notificaciones, correo de voz y crear un evento (Repeat, Find a time). - Dos artículos corregidos a mano (843d0291b) no fueron autorizados, por lo que una reconstrucción los revertía; ahora lo son. Pipeline: - Enlaces de referencias cruzadas a /help-center/directpath (lib/paths.mjs) en su lugar de /kb/Seguido, que es un 404 en el sitio público. Dentro del producto la ruta /help-center abre el mismo artículo. - import.mjs: --sólo toma una lista separada por coma (primero de los padres); --posiciones mueve sólo lo que difiere del manifiesto (las categorías debajo de uno insertado); --relations- only sets see-also links sin un nueva versión. - Un artículo escrito relacionado: [slugs] semillas sus enlaces de véase también (lib/relacionado.mjs), y una mancha que no nombre nada falla en la construcción. Manifiesto.json y relaciones.json reconstruido.
· EmailService
Las líneas de chat de calendario dicen que son líneas de sistema (KamoCollab CP00 T5)
MediaChatClient.sendDirect now posts "source": "SYSTEM" al lado de Member Id, aMemberId y mensaje: una invitación calendario o cancelación es un aviso escrito en nombre del organizador, no en palabras del organizador. MediaService (CP00 Task 7) lo almacena como MEDIA OBJS.SOURCE = SYSTEM y lo mantiene fuera de chat la política y la IA giran guardia; hasta entonces ignora la clave desconocida. Prueba: El cuerpo de cuatro llaves.
· KlusterServices
Los oyentes de gráficos de org pueden suscribirse al sujeto de cambio de org-graph
KamoCollab CP02 Task 6A (master R1-23, CP-D75). Seguridad Servicio publica ********** después de cada escrito de org-graph; cada servicio que cachea el gráfico de org desaloja en él. Ningún usuario de NATS puede suscribirse al sujeto, así que cada oyente habría golpeado una violación de suscripción y su Cache habría desalojado sólo por la TTL de 60. Añade "security.orggraph.changed. usuarios de escucha: svc security, svc media, svc kamoai (CP02), svc kb, svc email, svc voip, svc docs (CP05), svc mcpgateway (CP07) y svc rag (CP11). svc docs suscritos a nada (deny "jó"); ahora puede suscribirse a ese sujeto solo. No tiene contraseña, publica lista u otros cambios de usuario.
· kamo-shared-library
CharterLevel.TEAM, entre el título de trabajo y el miembro (KamoCollab CP01 T5)
Anexa TEAM a CharterLevel (después de DEFAULT; ORG de CP03 viene siguiente, R1-11) y afirma en su Javadoc que el orden de resolución es CharterLayer. rango, nunca la orden de declaración. CharterItems.validate no necesita cambio: TEAM es ni ROLE ni MEMBER, así que sigue las reglas del título de trabajo. Pruebas: un equipo puede ocultar y bloquear; cada sección valida en TEAM como en JOB TITLE; dos capas de TEAM entre pares entre un título de trabajo y un miembro (primero en orden de lista gana una tecla SPECIFIC y el conflicto nombre el otro, ADDITIVE uniones, un equipo esconde un artículo de derecho laboral, el miembro esconde un equipo, compañeros no se pueden ocultar el uno al otro; las líneas Ldura/I sobrevivir de una cadena sin equipo canónica texto de sello igual a las líneas capturadas en el principal (no hash pinned, R1-1); un TEAM capa agrega sólo sus propias líneas. CharterEnumsNombres los niveles en cualquier orden (R1-11).
· SecurityService
Servicio de limpieza de mesa derecha cubre org team rights (KamoCollab CP01 T8)
RoleRightsSync Nombres de servicio org team rights en las tres listas, así que en cada bota un CHECK congelado en él se deja caer, una fila que nombra a una derecha removida es eliminada, y una derecha dividida es sembrada para los equipos que otorgaron a su padre, exactamente como dept rights. El guardia de la semilla NO EXISTS está encendido (team id, tipo), el índice único de la tabla, por lo que nunca duplica el equipo o el índice.
· kamo-internal
La política de salida del servidor telefónico en Ajustes: llamadas externas de nuevas extensiones, y los guardias de carga (SP93 T14)
La tarjeta de voz AI en un servidor FreePBX gana los dos ajustes SP93 VOIPService ya tiendas: si una nueva extensión comienza a marcar fuera, y los cuatro guardias opcionales de caracol (internacionales, premium, códigos de área de alto riesgo, personalizados prefijos), bajo una partida que dice 911 y 933 nunca se puede bloquear. - Todos los ahorros envían los cinco, como requiere el PUT de reemplazo completo de V10 (SP93-T4-3). - Un prefijo personalizado VOIPService se negaría (no 1-15 dígitos, o 911, 933 o el inicio de cualquiera) se niega en Add y en Save, antes de que se envíe cualquier cosa; un prefijo escrito pero no se añade también; la lista se detiene a los 25. - Un Kamo PBX no muestra ninguno de ellos, ya que sólo el plan de línea de FreePBX los impone, y todavía envía los valores almacenados de nuevo en un ahorro (SP93-T14-1). - La caja de previsualización de los calladores toma un token de tema, por lo que un tema oscuro puede leerlo.
· kamo-shared-library
El núcleo gráfico de org pura: OrgGraph, su constructor, nodos y relaciones (KamoCollab CP02 T3)
Paquete com.kamo.z.shared.org.graph (pure, no beans), per KamoCollab master §6.2 y CP02 spec §5.2-§5.3: - enums OrgRelationship, CounterpartKind, OrgGraphChangeCause (STRING, en el apéndice); - registros OrgNode, OrgDepartment, OrgTeam y OrgGraphRows con sus ocho registros de fila anidado; - OrgGraphBuilder.build: árbol departamental y caminos de raíz a hoja (chat's ancestry reversed), nodos, niveles efectivos (D5), luego OrgGraph.of; - OrgGraph: relaciones (lo que b es a), managementChain (BFS sobre gerente y los bordes de supervisión de IA), managerChain (camino de Chat), informes, Team, más bajoCommonManager (D9), outranks (D6, CP-D15), efectivoNivel, jefe de departamento, jefe de equipo, departamentoManagerCandidates (D12), y un sello de contenido de 24hex. Seguro de ciclo. Pruebas marcan cada fila de la tabla de respuestas esperadas de la espectro §5.3 en la referencia org, los casos de ciclo, 2.000 formas aleatorias bajo un presupuesto de 5 s, los cinco invariantes, y el sello. Rulings CP02-T3-1..5.
· kamo-shared-library
Las entidades de equipo, repositorios y límites (KamoCollab CP01 T4)
Team (org teams), TeamMembership (org team members, @IdClass Key), TeamRole, TeamRight (tipo a través de RoleRightTypeIdConverter) y TeamCharterItem (team charter items, columna de texto 'texto'), los cinco repositorios con espectro los métodos de la sección 5.2 y JPQL, y TeamLimits (D11). Las tablas son creadas por el DDL aplicado a mano del servicio de seguridad ¿Qué? Pruebas marcan cada columna, nulabilidad y longitud al DDL, analizan cada consulta contra la cartografía real (tipos seleccionados y formas de fila de Objeto[] incluidos), resolver cada buscador derivado, y comprobar el @IdClass; verde en Hibernate 6.5.3 y en la flota 6.2.13.
· SecurityService
El DDL aplicado a mano para los jefes de departamento y los índices de carga de org-graph, y su prueba de contrato (KamoCollab CP02 T1)

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