Notas de lançamento do Discourse 2.4.0.beta3

Novos recursos na versão 2.4.0.beta3

Permitir personalização do robots.txt

Este recurso permite que administradores personalizem/substituam o conteúdo do arquivo robots.txt em /admin/customize/robots. Essa página não está vinculada a nenhum lugar na interface do usuário — os administradores devem digitar manualmente a URL para acessar essa página:

Enviar no máximo 200 e-mails por minuto para convites em massa

Nota: invite.via_email foi descontinuado em favor de invite.emailed_status.

Este commit adiciona uma nova coluna emailed_status na tabela invites para rastrear o status de envio de e-mails.

 0 - não necessário
 1 - pendente
 2 - pendente em massa
 3 - enviando
 4 - enviado
  • Para convites por e-mail normais, o registro de convite é criado com emailed_status definido como ‘pendente’.
  • Quando convites em massa são enviados, o registro de convite é criado com emailed_status definido como ‘pendente em massa’.
  • Para convites que geram links, o registro de convite é criado com emailed_status definido como ‘não necessário’.
  • Quando o e-mail de convite está na fila, emailed_status é atualizado para ‘enviando’.
  • Assim que o e-mail é enviado via job InviteEmail, o emailed_status do convite é atualizado para ‘enviado’.

Autenticação externa ao resgatar convites

Este recurso (quando habilitado) permitirá que sites invite_only exijam autenticação externa antes que possam resgatar um convite.

  • Criada configuração oculta do site para alternar essa funcionalidade
  • Habilita o envio de convites com logins locais desabilitados
  • Botão OAuth adicionado ao formulário de convite
  • Exige que o endereço de e-mail do OAuth corresponda ao endereço de e-mail do convite
  • Impede o resgate do convite se a autenticação OAuth falhar

Permitir escolha de categoria ao tornar um MP público

Anteriormente, a categoria padrão seria Sem categoria, o que não era ideal em alguns fóruns. Agora, o membro da equipe pode decidir imediatamente em qual categoria mover o MP.

Permitir visualização de e-mails brutos para postagens em fila sujeitas a revisão

Se uma postagem chegar por e-mail, mas precisar ser revisada, agora exibimos um ícone clicável para visualizar o conteúdo bruto do e-mail.

Isso é útil se o analisador de e-mails do Discourse estiver agindo de forma estranha e o usuário que está revisando a postagem quiser saber quais eram os conteúdos originais antes de aprovar/rejeitar a postagem.

Melhorias nas palavras monitoradas

Novos recursos foram adicionados nesta versão.

Há dois novos botões. O primeiro permite que administradores baixem as palavras monitoradas por ação em um arquivo .txt; o segundo botão limpa todas as palavras excluídas por ação (por exemplo, bloqueio, sinalização etc.). Além disso, quando uma postagem é rejeitada por conter uma ou mais palavras bloqueadas, a mensagem de erro agora lista todas as palavras bloqueadas contidas na postagem.

Por favor, note que esses novos recursos também alteram o formato do arquivo para importar palavras monitoradas de .csv para .txt, tornando-o inconsistente com a extensão do arquivo quando as palavras monitoradas são exportadas.

Personalização de e-mails em HTML

Este recurso adiciona a capacidade de personalizar a parte HTML de todos os e-mails usando um modelo HTML personalizado e, opcionalmente, algum CSS para estilizá-lo. O CSS será analisado e convertido em estilos inline, pois o CSS é mal suportado por clientes de e-mail. Ao escrever o HTML e CSS personalizados, esteja ciente de quais clientes de e-mail oferecem suporte. Mantenha as personalizações muito simples.

As personalizações podem ser adicionadas e editadas em Admin > Personalizar > Estilo de E-mail.

Como o e-mail de resumo já é fortemente estilizado, há uma configuração para desabilitar estilos personalizados para e-mails de resumo chamada apply custom styles to digest encontrada em Admin > Configurações > E-mail.

Como parte deste trabalho, as localizações RTL agora são renderizadas corretamente para todos os e-mails.

Listar moderadores de categoria na página Sobre

Uma nova atualização para o recurso Category Group Review/Moderation. A partir de agora, os moderadores de categoria serão visíveis na página Sobre do site, juntamente com os membros da equipe.

Adicionar suporte ao nível de visibilidade dos membros do grupo e Enviar notificação quando um membro for aceito no grupo.

Outra adição ao gerenciamento de visibilidade do grupo. Agora existem 5 níveis de visibilidade (semelhante à visibilidade do grupo):

  • público (padrão)
  • usuários logados
  • apenas membros
  • equipe
  • proprietários

Administradores e proprietários de grupos sempre têm visibilidade dos membros do grupo.

Além disso, a partir de agora, notificações serão enviadas para usuários que são aceitos em um grupo.

Incorporar lista de tópicos em sites remotos via API JavaScript.

Este recurso adiciona suporte a uma tag <d-topics-list> que você pode incorporar em seu site, que será renderizada como uma lista de tópicos do Discourse. Quaisquer atributos na tag serão passados como filtros. Por exemplo:

<d-topics-list discourse-url="URL" category="1234"> filtrará para a categoria 1234.

Para usar este recurso, habilite a configuração do site embed topics list. Em seguida, no site onde deseja incorporar, inclua o seguinte JavaScript:

<script src="http://URL/javascripts/embed-topics.js"></script>

Onde URL é a URL do seu fórum Discourse.

Em seguida, inclua a tag <d-topics-list discourse-url="URL"> no seu documento HTML e ela será substituída pela lista de tópicos.

Para detalhes, veja Embedding a list of Discourse Topics in another site

Adicionar um webhook para notificações de usuário

Se habilitado, isso acionará um webhook sempre que uma notificação de um usuário for criada. Isso pode potencialmente gerar muitos dados, dependendo do seu fórum, e deve ser usado com cuidado, pois inclui tudo o que todos os usuários verão em seus feeds.

Tratar theme_uploads como configurações em JavaScript e Permitir que temas façam upload de arquivos js como ativos

Estas são outras melhorias para os temas. A primeira permite que temas e componentes acessem ativos do tema. Isso significa que, dentro do JS do tema, agora você pode obter a URL de um ativo com:

settings.theme_uploads.name

A segunda melhoria ajuda a desbloquear a capacidade dos temas de adiar o carregamento de payloads js maiores. A mudança é segura, pois os temas já são permitidos a incluir JS inline.

Configurações do site para vinculação com aplicativos nativos iOS/Android e Incorporar prompt de instalação PWA na interface do usuário do Discourse

Nesta versão, há novos recursos também para aplicativos Android e iOS.

Agora existem duas novas configurações do site para adicionar suporte a Links Universais do iOS via um endpoint apple-app-site-association e para Links de Ativos Digitais do Google no endpoint .well-known/assetlinks.json.

Além disso, impediremos que a barra de “mini-info” de instalação nativa apareça, capturaremos o evento que surge com ela e o adiaremos até que o usuário atenda aos nossos critérios, que atualmente é o nível de confiança 1.

Se o evento ocorrer e o usuário atender aos nossos critérios, exibiremos um banner de alerta do Discourse propondo a instalação ao usuário. O descarte do banner é registrado para que o usuário não seja mais incomodado no mesmo dispositivo.

Login com Discord

Adicionamos a funcionalidade do discourse-plugin-discord-auth ao núcleo. O plugin se desativará automaticamente quando o núcleo for atualizado, veja: discourse/discourse-plugin-discord-auth@fd08678?w=1.

Para instruções de configuração, visite Configure Discord Login for Discourse

Melhorar o desempenho do cache anônimo

Aqui estão 2 novos recursos para melhorar o desempenho:

  • DISCOURSE_COMPRESS_ANON_CACHE (true|false, padrão false): isso permite que você comprima opcionalmente as entradas do corpo do cache anônimo no Redis, o que pode ser útil para sites de alta carga com Redis que reside em um servidor separado dos servidores web.

  • DISCOURSE_ANON_CACHE_STORE_THRESHOLD (padrão 2), apenas insira entradas no Redis se as observarmos mais de N vezes. Isso evita situações em que um rastreador pode percorrer uma grande quantidade de tópicos e armazená-los todos no Redis para nunca serem usados. Nosso tempo padrão de cache anônimo para tópicos é de apenas 60 segundos. O cache anônimo está em vigor para evitar o efeito “Slashdot”, onde um único tópico é atingido por centenas de pessoas em um minuto.

26 curtidas

Ainda mais!

Mas espere, há mais! Fazemos o nosso melhor para destacar novos recursos e alterações para você, mas sempre há muitas mudanças para detalhar. Para uma lista completa de novos recursos, correções de bugs, melhorias de UX e muito mais, certifique-se de revisar os Recursos Adicionais e Correções listados abaixo.

Atualizações de Segurança

Esta versão beta inclui 10 correções de segurança para problemas relatados pela nossa comunidade e pela HackerOne.

  • Redefinir senha ao ativar uma conta via provedor de autenticação
  • Não enviar token CSRF na string de consulta
  • Atualizar nokogiri
  • Adicionar limitação de taxa ao relatório de erros JS anônimo
  • Não revelar detalhes da categoria para usuários sem acesso
  • Restringir acesso ao message-bus em sites com login_required
  • Exigir POST com token CSRF para a fase de solicitação OmniAuth
  • Sanitizar ID de e-mail para uso como chave de mutex
  • Adicionar tela de confirmação ao conectar contas associadas
  • Validar identificador de bloco de backup

Melhorias nos Plugins

Discourse Cakeday

  • Atualizar traduções

Discourse Checklist

  • Atualizar traduções

Discourse Math

  • Atualizar traduções

Discourse Saved Searches

  • Atualizar traduções

Discourse Policy

  • Atualizar ícone obsoleto

Discourse Invite Token

  • CORREÇÃO: invite.via_email está obsoleto em favor de invite.emailed_status

Discourse User Notes

  • Atualizar traduções
  • Atualizar nomes de ícones obsoletos
  • Remover package.json
  • Atualizar nomes de configurações e readme para refletir a renomeação para user notes
  • Atualizar README.md
  • CORREÇÃO: Renomear configuração do site no banco de dados também.
  • CORREÇÃO: usa o caminho correto
  • DEV: Renomear arquivos, funções e entradas do banco de dados, além de duas pequenas correções

Discourse Translator

  • Usar zh-Hans e zh-Hant como códigos de idioma para a API da Microsoft
  • CORREÇÃO: Usar opção HTML no tradutor da Microsoft
  • Corrigir specs

Discourse Steam Login

  • Deixar o Rubocop satisfeito

Discourse Amazon Login

  • CORREÇÃO: A Amazon verifica os endereços de e-mail.
  • Deixar o Rubocop satisfeito

Discourse Canned Replies

  • Atualizar traduções
  • Atualizar nomes de ícones obsoletos
  • REFAÇAO: pequena refatoração/formatação
  • DEV: remove a depreciação de sendAction
  • CORREÇÃO: limitar a altura do modal de edição de resposta no mobile

Discourse Oauth2 Basic

  • Atualizar traduções
  • RECURSO: Migrar para ManagedAuthenticator
  • CORREÇÃO: Ignorar user_ids duplicados ao migrar dados antigos
  • Deixar o Rubocop satisfeito
  • CORREÇÃO: Ignorar valores não numéricos ao migrar do formato de dados antigo

Discourse Chat Integration

  • Atualizar traduções
  • Atualizar nomes de ícones obsoletos
  • CORREÇÃO: Acessar parâmetros de transcrição corretamente
  • CORREÇÃO: variável local ou método site_setting_saved não definido
  • CORREÇÃO: Um erro seria gerado se houvesse menos de “skip_messages”

Discourse Graphviz

  • Adicionar ID à chamada da API decorateCooked
  • CORREÇÃO: registrar o plugin apenas se estiver habilitado
  • CORREÇÃO: não realizar qualquer trabalho se não estiver habilitado
  • CORREÇÃO: permite renderizar múltiplos gráficos na visualização
  • CORREÇÃO: remover automaticamente comentários da definição do gráfico
  • CORREÇÃO: permite que a definição do gráfico tenha linhas em branco
  • RECURSO: usar svg=true para forçar o Graphviz a evitar conversão de imagem
  • RECURSO: renderizar SVG para SVG real e substituir inline

Discourse Tooltips

  • REFAÇAO: remove o padrão this.$()
  • PERF: habilitar cache anônimo de 3 minutos para tooltips
  • RECURSO: adiciona suporte a limitação de taxa quando as solicitações estão em fila

Discourse Signatures

  • DEV: Não exigir reinicialização para habilitar assinaturas
  • CORREÇÃO: Serializar apenas campos personalizados de usuário específicos deste plugin

Discourse Patreon

  • Atualizar traduções
  • Atualizar ícone obsoleto
  • CORREÇÃO: Não gerar erro quando o grupo de patronos ou a insígnia já existem.
  • lint do arquivo

Discourse Code Review

  • Atualizar ícone obsoleto
  • Alterações após feedback de Sam
  • DEV: Renomear chaves i18n porque não são chaves de pluralização i18n
  • DEV: Mover sincronização de usuário para seu próprio módulo
  • DEV: Mover criação de categoria para seu próprio módulo
  • CORREÇÃO: Condição de corrida
  • CORREÇÃO: A busca de um commit individual foi quebrada por 079055c
  • RECURSO: Sincronizar commits não mesclados
  • RECURSO: Sincronizar exclusões de posts de volta para o Github
  • REFAÇAO: padrões antigos e depreciações
  • Deixar o Rubocop satisfeito
  • DEV: Adicionar helpers para sanitizar entrada
  • RECURSO: Sincronização de Pull Request
  • DEV: Deixar o Rubocop satisfeito
  • CORREÇÃO: Tornar constantes de string em maiúsculas com snake case
  • CORREÇÃO: Sincronizar apenas posts regulares
  • CORREÇÃO: Ignorar validação ao atualizar posts fechados
  • CORREÇÃO: Atualizar node_id após espelhar comentário
  • RECURSO: Página de Configuração de Webhook do Github
  • DEV: Adicionar testes para espelhar posts de PR no github como comentários
  • CORREÇÃO: Condição de corrida na criação de Post e Tópico

Discourse Styleguide

  • REFAÇAO: remove o padrão this.$()
  • Atualizar nomes de ícones FA 4.7 obsoletos e link
  • Atualização de link, detalhes adicionais para a seção de ícones
  • UX: Pequenas correções de estilo
  • Listar todos os ícones disponíveis nos Sprites SVG

Discourse Characters Required

  • Atualizar traduções

Discourse Solved

  • Atualizar traduções
  • UX: Integrar texto com botão para melhorar o espaçamento
  • Reverter “UX: Integrar texto com botão para melhorar o espaçamento”
  • UX: Se não puder desmarcar uma resposta, mostrar texto em vez de botão
  • Remover variável não utilizada
  • Correção de margem do texto do botão Solved
  • CORREÇÃO: Incluir tópicos previamente resolvidos no auto-bump
  • CORREÇÃO: Corrigir suite de testes após alteração nos padrões de categoria fabricada
  • Substituir ícone obsoleto

Discourse Calendar

  • Várias correções de bugs e melhorias de desempenho
  • Corrigir Prettier
  • Deixar o Rubocop satisfeito
  • CORREÇÃO: garantir que apenas usuários ativos possam estar de férias
  • DEV: vamos não introduzir testes heisenberg baseados em tempo
  • CORREÇÃO: não tentar validar um post de um tópico sem calendário
  • CORREÇÃO: garante que verificamos no OP e não em qualquer post
  • Pequena correção de estilo de código
  • CORREÇÃO: não markdownizar o calendário se o plugin não estiver habilitado
  • Corrigir prettier

Discourse Plugin Discord Auth

(A partir desta versão, o suporte ao Discord está incluído no núcleo do Discourse; este plugin não é mais necessário)

  • DEV: Aprovar usuários usando a API reviewable
  • CORREÇÃO: send_email deve ser falso
  • RECURSO: Migrar Discord para ManagedAuthenticator
  • DEV: Remover parâmetros de estratégia não utilizados
  • CORREÇÃO: Corrigir assinatura do método after_authenticate para permitir reconexão
  • DEV: Remover dependência do omniauth-discord
  • RECURSO: Alterar o método para restringir acesso a trusted_guilds
  • UX: Definir chave secreta do Discord como uma configuração de site secreta
  • Desabilitar automaticamente o plugin quando o núcleo for atualizado com suporte ao Discord
  • UX: Atualizar texto da configuração de site client_id

Discourse Prometheus

  • Deixar o Rubocop satisfeito
  • DEV: lint do arquivo, tentar isolar a raiz da exceção do banco de dados
  • DEV: tentar limpar conexões de forma agressiva
  • RECURSO: rastrear contagem de chamadas SQL por endpoint HTTP
  • RECURSO: rastrear desempenho do cache anônimo
  • DEV: log de banco de dados é exagero

Discourse Data Explorer

  • Atualizar traduções
  • REFAÇAO: padrões antigos, depreciações e código morto
  • Adicionar prettier
  • Corrigir prettier
  • CORREÇÃO: previne mutação de objeto de somente leitura

Discourse Akismet

  • Atualizar traduções
  • Atualizar nomes de ícones obsoletos
  • CORREÇÃO: não enviar IP/UA do usuário quando indisponível
  • CORREÇÃO: sempre verificar se há uma biografia antes de enviar para o Akismet
  • Verificar comment_content antes de remover
  • CORREÇÃO: Ignorar usuário se o client_ip não estiver presente
  • Atualizar descrição duplicada do teste
  • Corrigir rubocop
  • Reverter “Verificar comment_content antes de remover”
  • RECURSO: Linkar para o perfil do usuário, se possível, ao revisar AkismetFlaggedUsers
  • CORREÇÃO: tornar compatível com o recurso ‘assets CSS de plugin desvinculados’.

Discourse Assign

  • Atualizar traduções
  • DEV: usar IDs de grupo para permitir atribuição em grupos
  • REFAÇAO: padrões antigos do Ember, depreciações, código morto
  • DEV: usa nova API de botão de tópico
  • CORREÇÃO: usa a API taskActions e remove botões antigos
  • DEV: Grupos permitidos para atribuição são enviados junto com sugestões. Após a migração, ainda precisaremos ter acesso aos nomes dos grupos permitidos para podermos pesquisar usuários.
  • CORREÇÃO: remover importação não utilizada
  • Inicializar allowedGroups dentro do construtor
  • Deixar o Rubocop satisfeito
  • UX: Adicionar “Atribuído” ao título da página para a lista de tópicos atribuídos
  • CORREÇÃO: Usar can_assign em vez de staff para mostrar corretamente o modal de atribuição

Discourse Voting

  • Atualizar traduções
  • DEV: Definir category_custom_field como booleano
  • CORREÇÃO: Recuperar votos quando a votação é desabilitada em uma categoria
  • Deixar o Rubocop satisfeito
  • PERF: evitar N+1 no carregamento de categoria
  • DEV: usa nova API addNavigationBarItem
  • DEV: move parte do inicializador para o pré-inicializador
  • CORREÇÃO: envolve substituições em reloadable_patch
  • CORREÇÃO: Adicionar atributo can_vote a todos os serializadores de categoria.
  • linting
  • CORREÇÃO: garante que o container não foi destruído
  • CORREÇÃO: impede qualquer trabalho se não estiver habilitado
  • CORREÇÃO: manter plugin compatível com versões mais antigas do Discourse
  • REFAÇAO: limpeza de CSS do plugin
  • UX: envolver avatares no pop-up do eleitor

Discourse AD

  • Atualizar traduções
  • CORREÇÃO: tamanhos incorretos de anúncios DFP ao usar múltiplos tamanhos
  • DEV: migrar no_ads_for_groups para usar IDs em vez de nomes de grupo
  • CORREÇÃO: anúncios da Amazon nunca aparecendo
  • DEV: migrar no_ads_for_groups para usar IDs em vez de nomes de grupo
  • CORREÇÃO: anúncios aparecendo sempre em todos os placements para CodeFund e Carbon Ads
  • CORREÇÃO: anúncios do CodeFund entre posts em larguras estreitas
  • RECURSO: adicionar opção para desabilitar anúncios em categorias restritas

Recursos Adicionais e Correções

[details=“Clique para expandir”]

Novos Recursos

  • Suporte a outlet data-explorer na navegação de grupo
  • Rastrear data em que a chave da API foi usada pela última vez
  • Incorporar tópico com metadados detalhados
  • Cache anônimo reporta dados para registradores
  • Criar uma tarefa rake para destruir categorias
  • Novo cabeçalho HTTP ‘Discourse-Render’
  • Notificar autores ao restaurar posts sinalizados
  • Não substituir ↔ por um emoji
  • Publicar estado de leitura em mensagens de grupo. (Originalmente introduzido em #7989)
  • Adicionar hook após todos os inicializadores
  • Adicionar atributo de contagem regressiva a [date]
  • Proteger contra ataques de replay ao usar TLS 1.3 0-RTT
  • Permitir que plugins manipulem configurações do site durante a restauração de backup
  • Publicar estado de leitura em mensagens de grupo.
  • Emojis favoritos também aparecerão na autocompletar do compositor
  • Resultados de enquetes apenas para equipe
  • Adicionar uma visualização ao construtor de enquetes
  • Permitir que temas substituam variáveis de transformação de cor
  • Autenticação externa ao resgatar convites
  • Adicionar configuração para mostrar conteúdo de e-mails encaminhados em tópicos
  • Adicionar opção para sempre enviar excertos em e-mails
  • Menção em categoria segura para priorizar grupos
  • Permitir que o mutex de processamento de post seja mantido por mais tempo
  • Adicionar uma instalação de teste à interface administrativa de palavras monitoradas
  • Melhorar estatísticas fornecidas por rake db:stats
  • Gerar novas chaves VAPID quando base_url mudar
  • Sincronizar estado de não lido em tempo real para listas de tópicos
  • Adicionar anexos a e-mails de saída
  • Adicionar operador de busca para ver todas as mensagens diretas de um usuário
  • Permitir que usuários que não tiveram penalidades nos últimos 6 meses sejam TL3.
  • Criar uma tarefa rake para destruir categorias
  • Novos componentes de data/hora
  • Gz para zip para exportações
  • Exportações de admin/usuário são compactadas usando o formato zip
  • Criar uma tarefa rake para destruir categorias
  • Fazer o Discourse funcionar offline com WorkboxJS

Correções de Bugs

  • Melhorias no compositor do Safari mobile
  • Tornar o recurso ‘solicitações de associação de grupo’ compatível com a opção de nível de visibilidade ‘logged_on_users’.
  • Ajustar tamanho do compositor para iPhone Xs Max e Xʀ
  • Relatar controlador e ação em cache para registradores
  • Garante que o google classic tenha o emoji man_facepalming correto
  • Incluir ‘short_url’ como src se a URL de upload não existir
  • Fechar cartão de usuário após clicar no botão Mensagem
  • Tratamento de pop-up de autenticação para peculiaridades de cookie same-site do Safari
  • Notificações de usuário para posts sinalizados
  • O usuário deve ser notificado quando um post é excluído
  • Agendador quebrado ao alterar per_host <-> global
  • Permitir acesso a objetos aninhados dentro das configurações do tema
  • Em caso de registros de usuário órfãos, pular a insígnia
  • Heartbeat deve ser por host
  • Notificações não atualizando corretamente da guia em segundo plano
  • Registro de tema remoto não salvo ao verificar atualizações
  • Evitar publicar alterações se o tópico foi excluído
  • Incluir indicador de leitura quando o publish_group_state estiver habilitado
  • Um texto sobrescrito de uma chave plural inexistente resultou em erro
  • Garantir que o recarregamento em tempo real do CSS do tema funcione na primeira vez
  • Fazer o turbo_rspec exibir erros em grupos compartilhados corretamente
  • Condição de corrida durante implantações criando folhas de estilo
  • Não pesquisar por tags ao editar o título do tópico
  • Não causar erro se o tópico não existir mais
  • Ao ativar via omniauth, criar tokens após redefinição de senha
  • Ao ativar um usuário, garantir que a alteração seja refletida imediatamente
  • Permitir que o dashboard carregue mesmo quando a versão do git não for encontrada
  • Exibir leitores reais no primeiro post
  • Garantir que os tamanhos de avatar sejam inteiros
  • Usar argumento app apenas para banner oficial do aplicativo iOS
  • Mostrar quem leu apenas se o atributo estiver habilitado
  • Atualizar grupos de tópicos corretamente
  • Sobrescrever textos _MF não funcionou para en_US
  • Ao usar uma URL de autenticador personalizada, enviar solicitação usando GET
  • Add_to_serializer não contabilizando corretamente cadeias de herança
  • Não exibir banner PWA ao usar aplicativo nativo
  • Remover sinal de porcentagem duplicado de mensagens de erro
  • Verificação de heartbeat por processo sidekiq
  • Permite que o mini-tag-chooser busque tags em segundo plano
  • Filtrar posts ocultos para wordpress
  • Não definir cookie destination_url após excluir sua própria conta.
  • Loop infinito ao mencionar no IE11
  • Carregar corretamente assets CSS de plugin apenas para desktop e mobile.
  • Permitir edições de tópico ao usar uma tag oculta
  • Condição de corrida em manipuladores de fallback
  • Não tentar excluir administradores e moderadores estagiários e não utilizados
  • Resetar regularmente a extensão desconhecida de uploads
  • Limitar banner de instalação PWA para Android por enquanto
  • Indicador de leitura aparece apenas quando a configuração de grupo está habilitada
  • Garantir que locais extras estejam disponíveis apenas para equipe
  • Garantir que o deslocamento seja sempre positivo
  • Impede que a navegação mobile crie um erro ao desregistrar eventos de clique
  • Usa padrão mais simples para href personalizado em itens de navegação extras
  • Rack-mini-profiler não exibindo frames de plugin
  • Navegação J/K reinicia a seleção atual ao rolar rapidamente.
  • Definir corretamente níveis de notificação no convite de grupo
  • Ao convidar grupos para mensagem, respeitar o estado de rastreamento
  • Exigir explicitamente topic_query_params
  • Limpar cache de tópicos de banner após remapeamento
  • Garante que relatórios não possam modificar registros
  • Corrigir condição de corrida ao carregar biblioteca
  • Manter locks distribuídos relacionados ao S3 por mais tempo
  • Armazenar atributos personalizados necessários por plugins no payload de queuedpost
  • Tenta usar parâmetros de addDiscoveryQueryParam
  • Converter nomes de autenticador omniauth para símbolos antes de comparar
  • Não gerar exceção se o e-mail do autenticador estiver ausente
  • Converter para minúsculas o e-mail vindo do provedor de autenticação
  • Substituir uso de modelo por consulta SQL
  • Corrigir ordem para relatório post_edits e remover limite de consulta
  • Corrigir consulta para relatório de dashboard post_edits
  • Remover arquivos de inventário tmp após a verificação de uploads S3.
  • RIP menus de deslize para dentro no Android
  • Não atualizar notificações watching_first_post ao mover o primeiro post
  • Usuários confiáveis podem fazer com que o conteúdo seja oculto com uma única flag
  • Impedir remapeamentos falhos durante restaurações
  • Truncar topic_links.url para 500 caracteres durante remapeamento
  • Não criar notificação de like duplicada.
  • Segundo fator em branco recebe nome padrão
  • Polyfills String.prototype.repeat para IE
  • Proibir autoexclusão de usuário quando o usuário postou em MPs
  • Usar #dup em vez de #+@ já que o conteúdo pode ser uma instância de Nokogiri::XML::Element.
  • Remover função readonly ao remover tabela
  • Criar funções readonly durante backup
  • Detectar agente de usuário DiscourseHub.
  • Conceder insígnia ‘Primeiro Onebox’ apenas para URLs Oneboxed.
  • Corrigir ordenação de rotas OmniAuth
  • Notificar na atualização do Reviewable.
  • Tutorial do discobot errado iniciado para certos locais.
  • Remover dependência de present? na biblioteca distributed_mutex
  • Codificar corretamente nomes de arquivos não ASCII no cabeçalho HTTP
  • Não seguir redirecionamento no mesmo host com caminho /login ou /session
  • Permite substituição de emojis de dígitos e símbolos
  • Incorporação de tópicos falharia com algum HTML
  • Não ocultar/fechar tópicos se não atenderem à visibilidade mínima
  • Usar título sem escape como ID do combo-box
  • Uploads S3 estavam faltando um cabeçalho cache-control
  • Garante que o relatório flag-ratio mostre usuários com discordância > concordância
  • Mostrar link de solicitações de associação apenas para proprietários de grupo.
  • Controlador gerado deve estar em uma pasta com sublinhado
  • Garante que o seletor pikaday esteja mostrando em UTC
  • Permite copiar e colar arquivo no compositor com chrome
  • Erro de sintaxe em b1f5949
  • Tornar o caminho workbox compatível com multisite
  • Visualização do compositor no IE11
  • Renomear ícone “refresh” obsoleto para “sync”
  • Melhor detecção de navegadores Apple
  • Várias melhorias em palavras monitoradas
  • Não incluir caminho de upload de multisite na URL de origem se já existir.
  • Tornar recuperação de uploads compatível com multisite.
  • Atualizar corretamente respostas quando o primeiro post é movido
  • O modal onClose estava sendo chamado repetidamente
  • Reverter quando testes de multisite geram exceções
  • Não reutilizar conexões redis em threads diferentes em testes
  • Uploads do Gravatar dependendo de authorized_extensions.
  • DistributedMutex
  • Melhor mensagem de erro na atualização de nome de usuário da página de usuário Admin.
  • Adicionar de volta opção verbose a DbHelper.remap
  • Adicionar frozen_string_literal: true na migração
  • Impedir que user-notifications-dropdown cause alterações indesejadas
  • Post#each_upload_url gera caminho incorreto para o bloco quando CDN está habilitado.
  • Fazer o inicializador funcionar na primeira db:migrate
  • Identificar corretamente o Edge baseado em Chromium
  • Suportar folhas de estilo de múltiplos arquivos em componentes de tema
  • Melhor erro quando SSO falha devido a segredo em branco
  • Incluir rótulo padrão ao exportar relatórios
  • Fornecer mensagem de erro se nenhum tag válido foi selecionado
  • Erro de string congelada em TopicEmbed.import
  • Ocultar posts carregados em tempo real de usuários ignorados
  • Reverter #18e2816
  • Usar o mesmo ID para inventários originais e otimizados em configuração multisite.
  • Aplicar restrições padrão ao formato de rotas (tentativa 2)
  • Manter parâmetros de consulta presentes em auth_redirect
  • Garantir que jobs não sejam executados imediatamente após migrate_to_s3
  • Melhorar verificação de tags ao atualizar categoria de tópico
  • Remover contexto sem categoria se não permitido no compositor
  • Enviar featuredLink como featured_link para o backend para atualizar o valor correto
  • Enviar featuredLink como featured_link para o backend para atualizar o valor correto
  • Usar uniq em vez de uniq! ao verificar caminho raiz sem compactação. Usar convenção de nomenclatura rails para ZipUtils
  • Migrações tentaram alterar string congelada
  • Atualizar contagem de resposta ao mover posts
  • Excluir notificações que usuários não podem ver após mover posts
  • Notificações antigas não linkavam para o post correto após mover post
  • Permite especificar atributos camelCased no componente wrap
  • Definir tempo mínimo de leitura por post.
  • Sempre fazer backup de uploads locais além de arquivos armazenados no S3
  • Não solicitar atualização na solicitação ‘deslogar todos’
  • Mostrar mesmo nome de usuário ou nome para avisos de post.
  • Nomes de backup vazios com títulos de site unicode
  • Codificar em URL nomes de usuário em links de perfil de usuário em feeds RSS
  • Remover criação de registro de upload de post dentro do método ‘find_missing_uploads’.
  • Bugs que impediam o fechamento do modal de excluir conta com botão
  • String que não pode ser traduzida na interface de palavras monitoradas
  • Nomes de backup vazios com títulos de site unicode
  • Respeitar configuração logout_redirect em ‘Deslogar todos’
  • Quando ‘raw’ começava com URL de upload não imagem, não era convertido em short-url.
  • Converter URLs não imagem hotlinked para short url.
  • Remover todos os service workers de dispositivos Apple novamente
  • Renomear ícones obsoletos, permitir ícones personalizados em insígnias
  • Recompilar assets de tema extra_js quando COMPILER_VERSION mudar
  • Fallback para compressão gzip se brotli não for suportado
  • Ignorar conversão markdown para URLs não imagem hotlinked
  • Backups feitos por pg_dump >= 11 são não portáteis
  • Aplicar restrições padrão ao formato de rotas
  • Garantir que categorias suprimidas não produzam nenhum tópico em destaque.

Mudanças de UX

  • Usar Flexbox para incorporação de lista de tópicos
  • Usar vertical-align: middle em vez de unidades em
  • Usar variável de código de cor
  • Converter estrutura HTML de lista de tópicos incorporada de tabela para div
  • Melhorias no indicador de leitura.
  • Remover strings não utilizadas sobre notificações de desktop
  • Pequeno acompanhamento de #8047
  • Melhor alinhamento para tags no cabeçalho
  • Solução para bug de autocompletar do chrome na busca
  • Correção de layout para caixas de categoria com nomes longos de subcategorias
  • Impede que imagens não lightboxed em citações estiquem/apertem
  • Ocultar opção “Criar Tag” se o usuário não puder criar tag.
  • Colocação consistente do plugin outlet category-title-before
  • Adicionar link para editor de robots.txt na descrição da configuração do site
  • Fallback para nome de provedor de autenticação não localizado se necessário
  • Impedir iframes de onebox do twitter de serem mais altos que a viewport móvel
  • Melhorar tratamento de erro para exceções comuns do OmniAuth
  • Modificar modelo de e-mail de admin para ter mais espaço para o formulário
  • Limpar nome de usuário ao abrir modal de duração de ignorar
  • Ocultar botões de cabeçalho de login/cadastro durante fluxos de autenticação
  • Adicionar ícone de botão de login para página no_ember
  • Melhorar layout do modal do construtor de enquetes
  • Melhorar datas na interface de exportação de relatórios
  • Usar rótulos de dias da semana mais curtos no plugin local-dates
  • Usar rótulos de dias da semana mais curtos no seletor de data
  • Renomear “Manter Post” para “Manter Post Oculto” quando oculto
  • Correções de estilo para página de visualização de e-mail de resumo de admin
  • Remover borda confusa na lista de usuários ignorados
  • Tornar visualizações de perfil consistentes com outros elementos
  • Impede que datas cozidas quebrem
  • Mostrar um aviso quando admin clica em salvar sem adicionar grupo ao alterar permissões de categoria
  • Aumentar contraste do texto de motivo de fixação/rastreamento, melhorar layout
  • Melhorar associação de conta quando descrição da conta está ausente
  • Adicionar classe expandida/recolhida a post-controls
  • Corrigir alinhamento vertical do favicon onebox
  • Melhorar layout de títulos longos de tags no mobile
  • Refatorar modal de upload de avatar para melhor espaçamento no mobile
  • Atualizar mensagem de convite ‘não encontrado’
  • Corrigir espaçamento do controle de upload de imagem de perfil no mobile
  • Adicionar tag <a> com href aos títulos de caixa de categoria
  • Remover cópia duplicada nas preferências de dois fatores
  • Usar variáveis de cor SCSS
  • Desabilitar notificações de edição do sistema por padrão
  • Trocar seções de ignorar e silenciar para mover o botão ‘Salvar alterações’ para o fundo
  • Usar altura relativa à viewport para textarea de robots.txt
  • Reorganizar controles em modais de edição

Desempenho

  • Usar URL do CDN para proxy de favicon
  • Executar múltiplas threads para agendamentos de jobs regulares
  • Reduzir janela de consistência em ações de usuário
  • Evitar filtrar rascunhos compartilhados quando não usados
  • Selecionar apenas o campo que usamos
  • Pré-calcular o último post lido por um membro do grupo
  • Cálculo de comprimento mais rápido do corpo do compositor
  • Evitar N+1 na visualização de tópico
  • Rake posts:rebake_uncooked_posts executa inline
  • Message_bus será adiado pelo servidor quando inundado
  • Adicionar mais restrição no uso do Cache Storage
  • Melhorar velocidade de consulta ao procurar MPs diretos
25 curtidas