Opcionalmente, encadenar publicaciones al tema principal en la integración de Slack

¿Estás diciendo que anteriormente tenías reglas que generaban hilos y, con la actualización más reciente que realizaste, ya no se están generando? ¿O es que esperabas que con la actualización comenzara a generar hilos y no lo está haciendo?

Estoy ejecutando Discourse 093ee1d80c y discourse-chat-integration da91061 (actualizado a la fecha), y mi canal con reglas de thread está generando correctamente respuestas en hilos, solo para canales configurados con reglas de thread.

¿Podrías mostrar tu configuración para una regla de hilo? En Administración → Plugins → Integraciones de Chat, deberías ver reglas que dicen

y si haces clic en el lápiz de editar, deberías ver

Si tienes reglas que en su lugar dicen:

entonces esas reglas no utilizarán hilos.

Arriba verás la justificación de que esto sea una configuración por regla, no por sitio.

Cuando configuras una regla desde el comando /discourse en Slack (o el comando que hayas elegido al configurar la integración), utilizas thread en lugar de watch o follow, según se documenta en Discourse Chat Integration

2 Me gusta

Vale, así que necesito revisar las integraciones de Slack y cambiar cada instancia de:
Todos los mensajes y respuestas a Todos los mensajes con respuestas en hilo.

Hasta ahora estamos mostrando todos los mensajes y respuestas en la mayoría de las integraciones de canales. ¿Algo se romperá si a partir de ahora solo mostramos todos los mensajes con respuestas en hilo? También pregunto porque tengo muchos canales que reconfigurar, así que es mejor que lo vuelva a asignar correctamente desde la primera vez. :+1:

Si entiendo bien tu pregunta: No, no va a “estropear nada” — está diseñado para ser seguro en el sentido de que nunca impedirá enviar una nueva notificación a Slack; simplemente, si la integración conoce un hilo, enviará el mensaje a ese hilo en lugar de al canal. Si, por cualquier motivo, no tiene conocimiento del contexto de un hilo, entonces enviará el mensaje al canal configurado en la regla.

“Todas las publicaciones con respuestas en hilo” significa lo siguiente:

  • Cuando se agrega una nueva publicación a un tema existente:
    • Si se ha almacenado un ID de hilo para el tema, úsalo para publicar en ese hilo.
    • Si no se ha almacenado ningún ID de hilo para el tema, después de enviar la notificación a Slack, usa el ID de hilo de esa nueva publicación en Slack para las publicaciones futuras sobre ese tema. A partir de ese momento, comenzará a agrupar las publicaciones en hilos.
  • Cuando se publica un nuevo tema en Slack, guarda su ID de hilo resultante para que las publicaciones adicionales sobre ese tema se envíen a Slack como respuestas en hilo.

Lo resumiría así: “actúa exactamente como la opción ‘vigilar’, excepto que si sabe que hay un hilo al que publicar, haz eso en su lugar”.

Además, al usar la función “transcripción” para publicar contenido de Slack como un nuevo tema en Discourse, independientemente de cualquier configuración de regla, siempre intenta guardar el ID de hilo. De esta forma, si una regla de thread ya existe o se agrega en el futuro, las respuestas a las publicaciones en el nuevo tema de Discourse se anunciarán en el hilo de Slack correspondiente.

Estoy seguro de que tus reglas existentes podrían modificarse escribiendo algo en bin/rails c, pero no quiero hacer eso en mi sitio en vivo donde he elegido intencionalmente qué canales deben agruparse en hilos y cuáles no. Además, soy demasiado nuevo en Ruby como para escribir código Ruby al azar como consejo en un foro y esperar que no te cause problemas. :sadpanda: Más allá de que probablemente empiece con DiscourseChat::Rule.where(, no podré ayudarte mucho. ¡Lo siento!

4 Me gusta

@sunjam por cierto, ¡aprecio mucho que hayas validado que esta funcionalidad es deseable y valiosa! (¡Especialmente dada la ironía de que a mí no me gustan demasiado los hilos de Slack y hice este trabajo para otros que los encuentran más valiosos que yo!)

Puedo imaginar que tendría sentido agregar un botón en la interfaz para convertir todas las reglas watch en reglas thread. Sin embargo, en realidad no sé lo suficiente para hacerlo y ni siquiera lo usaría yo mismo. En realidad soy un desarrollador de back end que se entretiene con Discourse, por lo que ni siquiera sería un revisor útil para un PR que agregue tal botón. Lo único que puedo hacer es ser un animador ineficaz si alguien más quiere implementar dicha funcionalidad. :slight_smile:

1 me gusta

Encontré un problema @mcdanlj. Al crear una nueva integración de canal, las respuestas encadenadas no aparecen en las pruebas de 2.6 beta1 para filtros. Una vez creada la integración, se convierte en una opción al editarla.

Ahora veo lo mismo; ni siquiera había notado la interfaz de usuario para eso y creé mis reglas usando comandos con barra desde Slack.

En la medida de mi limitado conocimiento sobre código de front-end, creo que esto es un artefacto del código que @david solicitó para ocultar thread de otros tipos de integración:

  @computed("channel.provider")
  available_filters(provider) {
    const available = [];

    if (provider === "slack") {
      available.push({
        id: "thread",
        name: I18n.t("chat_integration.filter.thread"),
        icon: "chevron-right"
      });
    }

Podría estar equivocado.

Pero en realidad soy desarrollador de back-end y no sé cómo solucionar esto. No entiendo por qué channel.provider sería slack solo al editar una regla existente y no al crear una nueva. :grimacing:

Creo que esto debería funcionar:

https://github.com/discourse/discourse-chat-integration/commit/945c0a6e4f2a844ce66be711d6342ef982541206

Avísame si te funciona :slight_smile:

3 Me gusta

Confirmo que para mí está solucionado. Gracias @david por limpiar lo que yo no sabía.

1 me gusta

@sunjam Por cierto, después de decidir mover la mayoría (pero no todas) de mis reglas de integración de Slack de “watch” a “thread”, entendí perfectamente tu dolor. Mis ojos definitivamente se nublaron y me alegré de haber terminado. Así que no estoy seguro de que haría algo diferente en mi trabajo, pero no resto importancia al esfuerzo necesario para la conversión. Al menos es un costo único.

Si existiera un comando de una sola línea que se pudiera ejecutar en la consola de Rails para convertir todas las reglas normales de “watch” a reglas de “thread”, no lo habría descubierto… o lo habría usado, y luego habría revertido manualmente las pocas reglas que quería mantener como reglas de “watch”. :smiling_face:

2 Me gusta

¿Aparecen las respuestas de los hilos en Todos los no leídos y Hilos en tu barra lateral de Slack? He visto aparecer nuevas publicaciones, pero las respuestas de los hilos no parecen activar estas notificaciones.

Los mensajes que publica Discourse no generan notificaciones de manera diferente a cualquier otro hilo de Slack, pero esto realmente sale del ámbito de Discourse y entra en cómo funcionan las notificaciones de hilos en Slack. Creo que las reglas de notificación de los hilos de Slack no son buenas, pero Slack no es un proyecto de código abierto al que cualquier persona pueda contribuir con mejoras. Debes participar en un hilo de Slack o suscribirte a él para recibir notificaciones de publicaciones adicionales en ese hilo. Al menos, esa es la regla esta semana. Creo que, cuando los hilos se introdujeron por primera vez en Slack, seguían las reglas de notificación de los canales. No he encontrado nada en Slack que permita que las notificaciones de los hilos sigan las de los canales, y esto me vuelve loco porque, como resultado, me pierdo información importante en el trabajo.

Me disgusta tanto la implementación de los hilos en Slack que es realmente irónico que haya sido yo quien implementó esta función. Pero también creo que estoy en la minoría, y lo hice para hacer que Discourse sea más atractivo para la mayoría de las personas que realmente aprecian los hilos de Slack.

1 me gusta

Gracias por la aclaración. Parece que los involucrados en ThreadExample verán las respuestas en hilos, lo cual funciona bastante bien. De todos modos, esta es una opción muy útil para desordenar las cosas en el lado de Slack, ¡y espero que inspire a otras integraciones de chat a incorporar variaciones similares de este concepto!

1 me gusta

Esto es cierto, donde “los involucrados” incluye a quienes abren el menú de los tres puntos verticales en el hilo y seleccionan “Seguir hilo” (la primera opción).

Acabo de darme cuenta de que había bocetos anteriores en el hilo, pero nunca compartí un ejemplo de esto en acción. Así que a partir de hoy, en el canal de Slack para https://forum.makerforums.info/c/k40 tenemos esto:

3 Me gusta

Lo probé por primera vez hoy… bastante genial.

2 Me gusta

¡Muchas gracias a @david por corregir mi error que hacía que al publicar transcripciones no se respetara la configuración de thread_id y, en su lugar, se publicara en el canal!

2 Me gusta

Hola @mcdanlj

Muchas gracias por habilitar la sincronización de hilos de Discourse en Slack. He notado un problema: si publico un enlace con onebox pegando el enlace en una línea independiente, este desaparece por completo en el mensaje publicado en el hilo de Slack y solo veo una línea en blanco. En mi caso, el enlace estaba entre dos líneas de texto y estas se publicaron correctamente.

Nada de lo que hice cambió el contenido del mensaje publicado, solo a veces establece un hilo de destino.

Sugiero abrir un informe de error separado, en un hilo diferente, para problemas de formato en los mensajes publicados en Slack. No he revisado ni tocado eso.

1 me gusta

TL;DR; Mover temas es problemático al enlazar respuestas a Slack.

He notado que mover un tema entre categorías en Discourse parece romper la hilación en los canales de Slack. Esto ocurre cuando alguien crea un tema en una categoría y luego lo mueve a otra categoría configurada para un canal de Slack diferente.

Al haber sido movido el Publicación A, ya no envía las respuestas en hilo al mismo lugar en Slack. Esto significa que las respuestas ya no son visibles en Slack. Si mantienes las respuestas individuales (no en hilos), evitarás este problema potencial.

Eso tiene cierto sentido. Ni siquiera sé cuál sería lo correcto que hacer en ese caso…

1 me gusta

No estoy seguro, pero creo que vale la pena mencionarlo. Una solución alternativa es hacer que la integración esté disponible en un canal adicional específico de Slack sin hilos, solo para que aparezca al menos en un canal. :+1: