Ocultar subcategorias sem ocultar seus tópicos na lista de tópicos?

Em geral, você deve evitar substituições completas de modelos, pois elas exigem manutenção: se uma atualização do Discourse quebrar seu tema, você precisará executar um diff e verificar o que mudou.

O que você pode fazer é dar um passo para trás e modificar os dados que são passados para o modelo.

O topic-list-item é um componente Ember, então você pode usar api.modifyClass para fazer as alterações desejadas.

Por exemplo, aqui está um trecho que exibirá o emblema da categoria pai em tópicos de subcategorias abaixo do título. Se o tópico estiver na categoria principal, o código não terá efeito.

<script type="text/discourse-plugin" version="0.8">
  const { on } = require("discourse-common/utils/decorators");

  // IDs das categorias pai
  const targetCategoryIds = [9, 15, 50];

  const useParentCategory = function () {
    const parentCategory = this.attrs.topic.category.parentCategory;
    const switchToParent = parentCategory && targetCategoryIds.includes(parentCategory.id)

    if (switchToParent) {
      this.attrs.topic.set("category", parentCategory);
    }
  };

  api.modifyClass("component:topic-list-item", {
    @on("didReceiveAttrs")
    setCategory() {
      useParentCategory.call(this);
    }
  });

  api.modifyClass("component:latest-topic-list-item", {
    @on("didReceiveAttrs")
    setCategory() {
      useParentCategory.call(this);
    }
  });
</script>