Você está dizendo que anteriormente tinha regras que faziam thread e, com a atualização mais recente que você fez, isso não está mais funcionando? Ou é que você esperava que, com a atualização, o sistema começasse a fazer thread nas mensagens, mas isso não está acontecendo?
Estou executando o Discourse 093ee1d80c e o discourse-chat-integration na versão da91061 (atualizada) e meu canal com regras de thread está fazendo thread nas respostas corretamente, apenas para canais configurados com regras de thread.
Você pode mostrar sua configuração para uma regra de thread? Em Admin → Plugins → Integrações de Chat, você deve ver regras que dizem
Você verá acima a justificativa para isso ser uma configuração por regra, e não por site.
Ao configurar uma regra usando o comando /discourse no Slack (ou qualquer outro comando que você escolheu ao configurar a integração), use thread em vez de watch ou follow, conforme documentado em Discourse Chat Integration
Certo, então preciso revisar as integrações do Slack e alterar cada instância de: Todas as publicações e respostas < Todas as publicações com respostas em thread.
Até agora, estamos exibindo todas as publicações e respostas na maioria das integrações de canal. Isso vai causar algum problema se, a partir de agora, exibirmos apenas todas as publicações com respostas em thread? Pergunto isso porque temos muitos canais para reconfigurar, então é melhor eu reatribuir corretamente na primeira tentativa.
Se eu entender corretamente sua pergunta: não, isso não vai “estragar nada” — a intenção é que seja seguro, pois nunca impedirá o envio de uma nova notificação para o Slack. O que acontece é que, se a integração souber sobre um tópico (thread), ela enviará a mensagem para o thread em vez de para o canal. Caso não haja conhecimento de um contexto de thread por qualquer motivo, a mensagem será enviada para o canal conforme configurado na regra.
“Todas as postagens com respostas em thread” significa o seguinte:
Quando uma nova postagem é adicionada a um tópico existente:
Se um ID de thread já foi armazenado para o tópico, use-o para postar no thread.
Se nenhum ID de thread foi armazenado para o tópico, após enviar a notificação para o Slack, use o ID de thread daquela nova postagem no Slack para postagens futuras sobre o tópico. A partir desse ponto, as mensagens começarão a ser enviadas como threads.
Quando um novo tópico é postado no Slack, armazene o ID de thread resultante para que postagens adicionais sobre esse tópico sejam enviadas ao Slack como respostas em thread.
Resumindo: “aja exatamente como a regra ‘watch’, exceto que, se souber sobre um thread para onde postar, faça isso em vez disso”.
Além disso, ao usar o recurso “transcript” para postar conteúdo do Slack como um novo tópico no Discourse, independentemente de quaisquer configurações de regra, ele sempre tenta armazenar o ID de thread. Assim, se uma regra de threadjá existir ou for adicionada no futuro, as respostas às postagens no novo tópico no Discourse serão anunciadas no thread correspondente do Slack.
Tenho certeza de que suas regras existentes poderiam ser alteradas com alguns comandos em bin/rails c, mas não quero fazer isso no meu site em produção, onde escolhi intencionalmente quais canais devem usar threads e quais não devem. Além disso, sou muito iniciante em Ruby para digitar comandos aleatórios em Ruby como conselho de ajuda em um fórum e esperar que não cause problemas . Fora que, provavelmente começa com DiscourseChat::Rule.where(, não poderei ajudar muito. Desculpe!
@sunjam, a propósito, agradeço por validar que você considerou essa funcionalidade desejável e valiosa! (Especialmente dada a ironia de que eu mesmo não gosto muito de threads no Slack e fiz esse trabalho para outras pessoas que as consideram mais valiosas do que eu!)
Posso imaginar que faria sentido adicionar um botão na interface para converter todas as regras watch em regras thread. No entanto, não sei o suficiente para fazê-lo e nem o usaria pessoalmente. Sou realmente um desenvolvedor de back-end que está se aventurando no Discourse, então nem seria um revisor útil para um PR que adicionasse tal botão. Tudo o que posso fazer é ser um torcedor ineficaz se alguém quiser implementar essa funcionalidade.
Encontrei um problema, @mcdanlj. Ao criar uma nova integração de canal, as respostas em thread não aparecem nos testes do 2.6 beta1 para filtros. Após a criação da integração, ela se torna uma opção ao editar a integração.
Vejo a mesma coisa agora; eu nem tinha percebido a interface de usuário para isso e criei minhas regras usando comandos com barra do Slack.
Na medida do meu conhecimento limitado sobre código de front-end, acho que isso é um artefato do código que @david pediu para ocultar thread de outros tipos de integração:
Mas sou realmente um desenvolvedor back-end e não sei como corrigir isso. Não sei por que o channel.provider seria slack apenas ao editar uma regra existente e não ao criar uma nova.
@sunjam Aliás, depois de decidir mover a maioria, mas não todas, das minhas regras de integração do Slack de watch para thread, senti sua dor. Meus olhos definitivamente se perderam e fiquei feliz por ter terminado. Então, não tenho certeza de que faria algo diferente no meu trabalho, mas não subestimo o esforço necessário para a conversão. Pelo menos é um custo único.
Se houvesse um comando de uma linha que se pudesse executar no console do Rails para converter todas as regras normais de watch em regras de thread, eu não teria descoberto — ou já o teria usado e, em seguida, revertido as poucas regras que eu queria manter como regras de watch.
As respostas de tópicos estão aparecendo em Todos os Não Lidos e Tópicos na sua barra lateral do Slack? Já vi que novas postagens aparecem, mas as respostas de tópicos não parecem acionar essas notificações.
As mensagens publicadas no Discourse não notificam de forma diferente de qualquer outro thread no Slack, mas isso realmente foge do escopo do Discourse e entra na forma como as notificações de threads no Slack funcionam. Acredito que as regras de notificação de threads do Slack não são boas, mas não é como se o Slack fosse um projeto de código aberto no qual pessoas aleatórias possam contribuir com melhorias. É necessário participar ou se inscrever em um thread do Slack para receber notificações sobre novas mensagens nesse thread. Pelo menos, essa é a regra desta semana. Acredito que, quando os threads foram introduzidos inicialmente no Slack, eles seguiam as regras de notificação dos canais. Não consigo encontrar nada no Slack para ativar notificações em threads que sigam os canais, e isso me deixa louco, pois acabo perdendo informações importantes no trabalho por causa disso.
Eu detesto tanto a implementação de threads do Slack que é verdadeiramente irônico que tenha sido eu quem implementei essa funcionalidade. Mas também acho que estou em minoria, e a implementei para tornar o Discourse mais atraente para a maioria, que realmente aprecia os threads do Slack.
Obrigado pela esclarecimento. Parece que aqueles envolvidos no ThreadExample verão as respostas em thread, o que funciona bem. De qualquer forma, essa é uma opção muito útil para despoluir as coisas no lado do Slack, além de espero que inspire outras integrações de chat a incorporar variações semelhantes desse conceito!
Isso é verdade, onde ‘os envolvidos’ inclui aqueles que clicam no menu de três pontos verticais no tópico e escolhem ‘Seguir tópico’ (a primeira opção).
Acabei de perceber que havia mockups mais cedo no tópico, mas nunca compartilhei um exemplo disso em ação. Então, a partir de hoje, no canal do Slack para https://forum.makerforums.info/c/k40, temos isso:
Muito obrigado a @david por corrigir meu bug que fazia com que a postagem de transcrições ignorasse a configuração de thread_id e, em vez disso, fosse postada no canal!
Muito obrigado por ativar a sincronização de threads do Discourse no Slack. Uma questão que notei é que, se eu postar um link com onebox colando o link em sua própria linha, ele é completamente eliminado na mensagem postada no thread do Slack, e tudo o que vejo é uma linha em branco. No meu caso, o link estava entre duas linhas de texto, e elas foram postadas corretamente.
Nada do que fiz alterou o conteúdo da mensagem postada, apenas define às vezes um thread de destino.
Sugiro abrir um relatório de bug separado, em um thread separado, para problemas de formatação em mensagens postadas no Slack. Não examinei nem toquei nisso.
Resumo: Mover tópicos é problemático ao encadear respostas no Slack.
Uma coisa que notei é que mover um tópico entre categorias no Discourse parece quebrar o encadeamento nos canais do Slack. Isso está relacionado a pessoas criando um tópico em uma categoria e, em seguida, movendo-o para uma categoria diferente configurada para outro canal do Slack.
Como o Post A foi movido, ele não está mais enviando respostas encadeadas para o mesmo local no Slack. Isso significa que as respostas não são mais visíveis no lado do Slack. Se você mantiver as respostas individuais (não encadeadas), evitará esse problema potencial.
Incerto, mas acho que vale a pena notar. Uma solução alternativa é tornar a integração disponível em um canal adicional específico do Slack sem threads, apenas para que ela apareça em pelo menos um canal.