Atualmente existe uma opção para ter vários canais associados a uma categoria.
Se instalarmos o plugin de código aberto, haverá uma transferência transparente quando ele for integrado ao core/public?
O plugin é um plugin oficialmente suportado. Caso seja migrado para o core (sem planos atuais), haverá um caminho de migração adequado, sim.
Seria ótimo se os canais pudessem ser criados como privados/públicos e tivessem URLs públicas para indexação por motores de busca. Isso traria tráfego adicional para a comunidade.
Após a atualização e 10 segundos de teste: agora consigo fechar canais desnecessários, inclusive e especialmente os privados.
Como nossos amigos britânicos costumam dizer: esplêndido, de fato.
Encontrei algo que parece ser um bug de UX. Ao passar o mouse sobre uma mensagem e, em seguida, sobre a barra de ferramentas de interação da mensagem, e clicar no botão de emoji - a sobreposição de emoji permanecerá na tela mesmo após clicar nos botões de resposta ou reticências - no entanto, clicar fora da barra de ferramentas faz com que a janela de emoji desapareça.
Aqui está um clipe do comportamento, e como podemos ver, a sobreposição de reticências está oculta atrás da sobreposição de emoji.

Obrigado por adicionar os botões X para ocultar chats. Alguns pontos de feedback:
- os botões X não aparecem no celular (porque ficam ocultos até você passar o mouse?), então você não pode sair de chats pessoais no celular no momento
- não é possível adicionar um novo chat pessoal no momento - este erro ocorre, tanto no desktop quanto no celular
Este é um compromisso por enquanto, em alguns meses implementaremos uma ação de deslizar no celular para sair
Você pode reconstruir e tentar novamente?
+1 para a questão dos requisitos de desempenho.
Atualmente estou executando um pequeno droplet que está constantemente com recursos limitados. (sim, eu sei que deveria fazer um upgrade para um droplet maior
)
raramente. Cerca de 19 em 20 tentativas de reconstruir, um dos 50 comandos git durante a reconstrução trava para sempre. Muito estranho. Não começou a acontecer até algumas semanas atrás.
Discourse Chat e category-lock (o do Pavilion) são incompatíveis na minha instância.
Log de erro Backtrace:
app/models/concerns/has_custom_fields.rb:173:in `[]'
plugins/discourse-category-lockdown/plugin.rb:16:in `block (2 levels) in activate!'
(eval):33:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:456:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
plugins/discourse-chat/app/serializers/chat_channel_serializer.rb:38:in `chatable'
(eval):4:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:456:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer/associations.rb:124:in `block in serialize'
active_model_serializers (0.8.4) lib/active_model/serializer/associations.rb:123:in `map'
active_model_serializers (0.8.4) lib/active_model/serializer/associations.rb:123:in `serialize'
lib/freedom_patches/ams_include_without_root.rb:57:in `include!'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:368:in `block in include_associations!'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:367:in `each_key'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:367:in `include_associations!'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:362:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
app/controllers/application_controller.rb:486:in `serialize_data'
app/controllers/application_controller.rb:495:in `render_serialized'
plugins/discourse-chat/app/controllers/chat_channels_controller.rb:6:in `index'
actionpack (6.1.4.1) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (6.1.4.1) lib/abstract_controller/base.rb:228:in `process_action'
actionpack (6.1.4.1) lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack (6.1.4.1) lib/abstract_controller/callbacks.rb:42:in `block in process_action'
activesupport (6.1.4.1) lib/active_support/callbacks.rb:117:in `block in run_callbacks'
app/controllers/application_controller.rb:387:in `block in with_resolved_locale'
i18n (1.8.11) lib/i18n.rb:314:in `with_locale'
app/controllers/application_controller.rb:387:in `with_resolved_locale'
activesupport (6.1.4.1) lib/active_support/callbacks.rb:126:in `block in run_callbacks'
activesupport (6.1.4.1) lib/active_support/callbacks.rb:137:in `run_callbacks'
actionpack (6.1.4.1) lib/abstract_controller/callbacks.rb:41:in `process_action'
actionpack (6.1.4.1) lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack (6.1.4.1) lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'
activesupport (6.1.4.1) lib/active_support/notifications.rb:203:in `block in instrument'
activesupport (6.1.4.1) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (6.1.4.1) lib/active_support/notifications.rb:203:in `instrument'
actionpack (6.1.4.1) lib/action_controller/metal/instrumentation.rb:33:in `process_action'
actionpack (6.1.4.1) lib/action_controller/metal/params_wrapper.rb:249:in `process_action'
activerecord (6.1.4.1) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (6.1.4.1) lib/abstract_controller/base.rb:165:in `process'
actionview (6.1.4.1) lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler (2.3.3) lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'
actionpack (6.1.4.1) lib/action_controller/metal.rb:190:in `dispatch'
actionpack (6.1.4.1) lib/action_controller/metal.rb:254:in `dispatch'
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:33:in `serve'
actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:842:in `call'
railties (6.1.4.1) lib/rails/engine.rb:539:in `call'
railties (6.1.4.1) lib/rails/railtie.rb:207:in `public_send'
railties (6.1.4.1) lib/rails/railtie.rb:207:in `method_missing'
actionpack (6.1.4.1) lib/action_dispatch/routing/mapper.rb:20:in `block in <class:Constraints>'
actionpack (6.1.4.1) lib/action_dispatch/routing/mapper.rb:49:in `serve'
actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:842:in `call'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
rack (2.2.3) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.3) lib/rack/conditional_get.rb:27:in `call'
rack (2.2.3) lib/rack/head.rb:12:in `call'
actionpack (6.1.4.1) lib/action_dispatch/http/permissions_policy.rb:22:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:356:in `call'
rack (2.2.3) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.3) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/cookies.rb:689:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (6.1.4.1) lib/active_support/callbacks.rb:98:in `run_callbacks'
actionpack (6.1.4.1) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
logster (2.10.1) lib/logster/middleware/reporter.rb:43:in `call'
railties (6.1.4.1) lib/rails/rack/logger.rb:37:in `call_app'
railties (6.1.4.1) lib/rails/rack/logger.rb:28:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
request_store (1.5.0) lib/request_store/middleware.rb:19:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/request_id.rb:26:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
rack (2.2.3) lib/rack/method_override.rb:24:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/executor.rb:14:in `call'
rack (2.2.3) lib/rack/sendfile.rb:110:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/host_authorization.rb:92:in `call'
rack-mini-profiler (2.3.3) lib/mini_profiler/profiler.rb:249:in `call'
message_bus (4.0.0) lib/message_bus/rack/middleware.rb:60:in `call'
lib/middleware/request_tracker.rb:198:in `call'
railties (6.1.4.1) lib/rails/engine.rb:539:in `call'
railties (6.1.4.1) lib/rails/railtie.rb:207:in `public_send'
railties (6.1.4.1) lib/rails/railtie.rb:207:in `method_missing'
rack (2.2.3) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.3) lib/rack/urlmap.rb:58:in `each'
rack (2.2.3) lib/rack/urlmap.rb:58:in `call'
unicorn (6.1.0) lib/unicorn/http_server.rb:634:in `process_client'
unicorn (6.1.0) lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn (6.1.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn (6.1.0) lib/unicorn/http_server.rb:143:in `start'
unicorn (6.1.0) bin/unicorn:128:in `<top (required)>'
vendor/bundle/ruby/2.7.0/bin/unicorn:25:in `load'
vendor/bundle/ruby/2.7.0/bin/unicorn:25:in `<main>'
Info Log de Erro
StandardError (Tentativa de acessar o campo personalizado não pré-carregado 'redirect_url'. Isso é proibido para evitar consultas N+1)
app/models/concerns/has_custom_fields.rb:173:in `[]'
(eval):33:in `_fast_attributes'
(eval):4:in `_fast_attributes'
lib/freedom_patches/ams_include_without_root.rb:57:in `include!'
app/controllers/application_controller.rb:486:in `serialize_data'
app/controllers/application_controller.rb:495:in `render_serialized'
app/controllers/application_controller.rb:387:in `block in with_resolved_locale'
app/controllers/application_controller.rb:387:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:356:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:198:in `call'
Log de erro Não Capturado [object Object]
Uncaught [object Object]
Url: https://www.domainname.com/assets/vendor-96a5eaa8d436066b954c21ae5afb7f504310945c679465a2f1ba46b429a95edf.js
Line: 30
Column: 180630
Window Location: https://www.domainname.com/
Quando o chat está ativado, como ele se relaciona com as métricas de um usuário? A participação no chat conta de alguma forma para o crescimento/engajamento do nível de confiança?
E há planos para adicionar métricas ao painel do administrador para rastrear a participação no chat?
Estou usando o Discourse Chat apenas para membros trust_level_3 e baseado em categoria (uma categoria disponível apenas para membros trust_level_3). Posso, como administrador, fazer com que todos os membros trust_level_3 entrem no canal automaticamente sem que eles precisem passar pela lista de canais e entrar por conta própria?
Não.
Não.
Não se relaciona de forma alguma.
-
O chat está sujeito às mesmas regras de bloqueio de palavras que as postagens?
-
Existe alguma forma de os administradores verificarem o chat pessoal de outros usuários? (Preocupado com o abuso potencial. Mensagens privadas podem ser limitadas e monitoradas, mas o chat parece uma forma fácil de abuso)
Ainda não, mas faremos isso acontecer
Temos planos de longo prazo para suportar criptografia do Discourse com chat
Os dados no momento não são criptografados no banco de dados
Não. Sempre haverá bugs. Existem bugs no Discourse hoje, assim como existem bugs no chat. Nós os corrigimos assim que eles nos são reportados.
O chat é seguro o suficiente para ser instalado? Sim. Estamos usando-o extensivamente internamente, e temos feito isso exclusivamente por quase 2 meses. (Anteriormente usávamos o Mattermost, e o desativamos no início de dezembro) Existem pequenos bugs aqui e ali, e muitos recursos que ainda queremos adicionar, mas certamente é seguro de usar.
Olá, e obrigado pelo ótimo plugin, ele realmente adiciona algo interessante ao Discourse!
Pergunta rápida: é possível ou planejado ter o ícone de chat dentro do perfil ou no cartão do usuário?
Também não está claro como as mensagens de chat acabam notificando os usuários por e-mail e quando? (a questão subjacente sendo: poderíamos simplesmente substituir as mensagens diretas pela funcionalidade de chat?)
Quando dentro de um canal de chat no celular, notei que continuo clicando na bolha de chat no cabeçalho para tentar voltar para a lista de canais de chat e isso não me leva a lugar nenhum. Quando não estou no chat e clico nele, ele me leva para a lista de canais de chat.
Existe alguma maneira de tornar isso uniforme, para que o ícone da bolha de chat no cabeçalho sempre me leve para a lista de canais de chat no celular, quer eu esteja dentro de um canal de chat ou não?

