Feedback sobre a nova fila de revisão (2019)

Uma sugestão para o sistema de revisão: ao aprovar uma postagem que remove o silenciamento de um usuário, seria possível adicionar uma Nota do Usuário para o evento? Algo como '@nome_de_usuário removeu o silenciamento desta conta' seria muito útil. No momento, vemos apenas metade da história nas notas.

3 curtidas

É melhor simplesmente excluí-los por completo, é o que eu faço. Geralmente estão errados de qualquer forma, e eu não gosto de anotações ruidosas que não agregam valor.

2 curtidas

Na fila de revisão, para o tipo ‘Postagem na Fila’, se eu tentar excluir um usuário com muitas postagens, recebo um erro de tempo limite 502.

Não tenho certeza qual é o limite superior, mas nos testes de hoje, o menor número que não funcionou foi uma conta com 288 postagens.

Por exemplo: no cenário em que uma postagem foi sinalizada (tipo: Postagem na Fila) por conter uma palavra na lista de Palavras Monitoradas → Requer Aprovação.

Atualmente, as opções disponíveis são:
Aprovar Postagem | Rejeitar Postagem | Excluir Usuário | Editar

Acredito que adicionar as opções de silenciar e suspender a esses tipos de postagens na fila seria bastante útil. Por exemplo: rejeitar postagem + silenciar ou suspender. Isso daria aos administradores a escolha entre silenciar/suspender um usuário ou apagá-lo diretamente da fila de revisão.

Além disso, se excluir usuários com mais de X postagens da fila de revisão não for viável devido a erros 502, ter suspender e silenciar como opções alternativas seria realmente ótimo.

3 curtidas

Algumas informações adicionais:

Ao abrir ‘Agrupado por Tópico’ na fila de revisão, recebo este erro:

Erro do Servidor
ao tentar carregar /review/topics
Código de erro: 500 Erro Interno do Servidor

Observe que há cerca de 30 mil itens na fila de revisão, muitos dos quais mais antigos foram adicionados pelo Akismet antes que eu o desinstalas.

Problema de rolagem/paginação (provavelmente deveria ter postado aqui em vez disso): Review Queue Pagination/Infinite Scrolling after Taking an Action

Em relação aos itens do tipo (type: Queued Post) e ao recebimento de um timeout 502 ao usar a opção de excluir usuário. Posso confirmar o erro com uma conta que tem 166 postagens.

Ideias:

  1. Seria uma economia de tempo útil ter um link direto para a página de administração do usuário a partir da fila de revisão em algum lugar.

  2. Acredito que atualmente não é possível optar por não receber o e-mail diário de lembrete “x itens precisam ser revisados”. Seria útil poder desativar essa opção.

2 curtidas

Você pode revisar seus /logs e nos informar qual é o erro?

3 curtidas

Ok, acho que é isso:

ActiveRecord::SubclassNotFound (O mecanismo de herança de tabela única falhou ao localizar a subclasse: ‘ReviewableAkismetPost’. Esse erro é gerado porque a coluna ‘type’ é reservada para armazenar a classe em caso de herança. Por favor, renomeie essa coluna se você não pretendia usá-la para armazenar a classe de herança ou sobrescreva Reviewable.inheritance_column para usar outra coluna para essa informação.)
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3/lib/active_record/inheritance.rb:234:in `rescue in find_sti_class’

2 curtidas

Você pode confirmar se o seu plugin Akismet está na versão mais recente e, se não estiver, atualizá-lo?

4 curtidas

Talvez itens antigos adicionados por outros tipos de revisão não possam ser lidos se a definição do revisável desaparecer (como ao desinstalar um plugin). Parece que os erros começaram a ocorrer após a desinstalação:

4 curtidas

Posso confirmar que o Akismet está atualmente desinstalado. Eu o removi há bastante tempo.

1 curtida

Isso é interessante, como o @featheredtoast suspeita. @Roman, como você acha que devemos lidar com isso se os registros existirem, mas o plugin foi removido?

4 curtidas

Acho que é possível determinar quais tipos de reviewable devem ser filtrados fazendo algo assim:

class Reviewable < ActiveRecord::Base
  def self.exclude_types
     db_types = Reviewable.distinct.pluck(:type)

     @exclude_types ||= db_types - Reviewable.types
  end
  
...
end

Depois, podemos usar esses tipos para aplicar um escopo padrão. Provavelmente teremos que adicionar um índice de type na tabela.

5 curtidas

@Roman, você pode dar uma olhada nisso quando tiver um tempo?

5 curtidas

Estou recebendo muitas imagens invisíveis na fila de revisão. Algumas funcionam bem, é uma questão de 50/50. Algumas mostram algo assim na inspeção e nada é exibido:

src="/images/transparent.png" alt="" data-orig-src="upload://fwf1zrfwefWEqGer2W3xz1ed.jpeg"

Isso ocorre tanto em instâncias usando CDN + S3 quanto apenas com armazenamento local.

1 curtida

Sim, o problema afeta apenas postagens em fila.

Tenho um PR com uma correção aguardando revisão, então as imagens devem voltar a aparecer em breve.

Avisarei assim que o mesclarmos.

4 curtidas

A correção já está disponível nas branches tests-passed e stable.

No entanto, ainda há outro problema: imagens de postagens em fila rejeitadas continuam não aparecendo na fila de revisão. O sistema as remove automaticamente, pois não há necessidade de mantê-las. Planejamos substituí-las por um texto explicando isso.

8 curtidas

Muito obrigado por corrigir isso, @Roman!

Outra coisa que pode ser um bug em tests-passed: Cenário: Aceitar um post na fila de revisão e, em seguida, voltar e rejeitá-lo. O post permanecerá listado e visível no site.

Edição: os dois últimos parágrafos deste comentário também explicam outro problema possível relacionado a algumas opções da fila de revisão e limites de taxa em todo o site: Discourse No Bump - #27

1 curtida

Outra coisa que notei em relação ao ‘auto handle queued age’. Tenho muitos itens antigos em algumas filas de revisão que são significativamente mais antigos que a configuração de dias do ‘auto handle queued age’ (usando o padrão) e que parecem não estar sendo processados automaticamente. Parece que nenhum dos itens está sendo tratado automaticamente. Não tenho certeza se estou perdendo algo.

Além disso, ao ordenar a fila de revisão por ‘Criado em (reverso)’, estou recebendo um erro 500. Todos os outros filtros de ‘ordenar por’ funcionam corretamente.

1 curtida

Você pode verificar seus logs e nos informar qual é o erro ao alterar a ordem de classificação?

3 curtidas

Obrigado, @eviltrout, sim, claro. Este é o erro que vejo:

ActiveRecord::SubclassNotFound (O mecanismo de herança de tabela única falhou ao localizar a subclasse: ‘ReviewableAkismetPost’. Esse erro é gerado porque a coluna ‘type’ é reservada para armazenar a classe em caso de herança. Por favor, renomeie essa coluna se você não pretendia usá-la para armazenar a classe de herança ou sobrescreva Reviewable.inheritance_column para usar outra coluna para essa informação.)
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/inheritance.rb:234:in `rescue in find_sti_class’

Note que o plugin Akismet foi removido há bastante tempo neste fórum específico.

2 curtidas

Ah, então ainda está relacionado a isso. @Roman, parece que ainda pode haver um bug aqui relacionado à presença desses tipos de revisáveis antigos no banco de dados?

4 curtidas