Todas as postagens contendo palavras observadas são ocultadas automaticamente — score_to_hide_post é 0.0

Estudei o código cuidadosamente e descobri que score_to_hide_post é determinado pelos seguintes três métodos:

def self.sensitivity_score_value(sensitivity, scale)
  return Float::MAX if sensitivity == 0

  ratio = sensitivity / sensitivities[:low].to_f
  high =
    (PluginStore.get("reviewables", "priority_#{priorities[:high]}") || typical_sensitivity).to_f

  # Queremos que isso seja difícil de alcançar
  ((high.to_f * ratio) * scale).truncate(2)
end

def self.sensitivity_score(sensitivity, scale: 1.0)
  # Se a pontuação for menor que a visibilidade padrão, aumente-a para esse nível.
  # Caso contrário, teremos a situação confusa em que uma postagem pode ser ocultada e
  # os moderadores nunca a verão!
  [sensitivity_score_value(sensitivity, scale), min_score_for_priority].max
end

def self.score_required_to_hide_post
  sensitivity_score(SiteSetting.hide_post_sensitivity)
end

Em outras palavras,
score_to_hide_post = ((high.to_f * ratio) * scale).truncate(2)

onde

  • high.to_f pode inesperadamente ser 0 (normalmente deveria ser um valor positivo),
  • ratio = sensitivity / sensitivities[:low].to_f,
  • sensitivity vem da configuração (por exemplo, 3, 6 ou 9),
  • sensitivities[:low] = 9,
  • scale = 1.0.

Isso significa que score_to_hide_post nunca deve ser 0, portanto, se ele se tornar 0, isso indica claramente um bug.