Sobrescribir los métodos existentes de Discourse en plugins

Nuevo en el desarrollo de Discourse y Rails. Estoy usando el entorno Dev Container (en VS Code) localmente. Las guías y la documentación han sido útiles.

Me preguntaba si alguien tiene algún consejo sobre cómo anular las clases principales de Discourse, específicamente cómo hacer que persista en un entorno de desarrollo local.

En mi plugin, estoy intentando anular un método en la clase principal de Discourse TopicEmbed. (usando el enfoque general bien documentado por @angus arriba). Funciona una vez cuando reconstruyo y recargo VS Code, pero en solicitudes HTTP posteriores, mi anulación nunca se invoca.

Mi anulación está definida en /plugins/my-plugin/app/models/override.rb y uso require_relative para incluir este archivo en mi plugin.rb.

#override.rb:
class ::TopicEmbed

  # un módulo que se antepondrá a la singleton_class de TopicEmbed.
  module TopicEmbedOverrideModule
    # método en TopicEmbed
    def first_paragraph_from(html)
      Rails.logger.info(“¡mi anulación está sucediendo! ”)

      # continuar con la implementación original proporcionada por TopicEmbed.
      super

    end
  end

  # hacer el prepend aquí
  singleton_class.prepend TopicEmbedOverrideModule
end

Sospecho que este desafío de persistencia puede deberse a mi entorno de desarrollo y a cómo se compila/almacena en caché el código ruby.
También probé rm -rf tmp; bin/ember-cli -u y bundle exec rake tmp:cache:clear.