¡Gracias por tu trabajo aquí! Tengo muchas ganas de activar esto y gracias por lanzarlo para pruebas, para que aquellos de nosotros con diversas configuraciones podamos contribuir al menos con pruebas en un conjunto más amplio de escenarios.
Mientras pienso en cuándo activar esto para mi sitio, estoy tratando de pensar en cuáles podrían ser las “puertas de sentido único”.
Subcategorías
Tengo 8 categorías de nivel superior, pero además tengo 21 subcategorías públicas. Tener que seguir a 29 actores para seguir toda la actividad pública del sitio parece mucho. Además, podría ser una sorpresa para los usuarios que seguir una categoría no siga las subcategorías.
Si pudiera seleccionar una opción en la configuración de ActivityPub de la categoría “federar también subcategorías públicas”, lo haría. Si federar subcategorías por separado parece ser principalmente una puerta de sentido único desde el punto de vista del usuario, creo. Por lo tanto, si considerara una opción de “federar también subcategorías”, eso podría informar mis planes. Nuestra barra lateral predeterminada muestra solo las categorías de nivel superior, y la configuración predeterminada de Discourse al mirarlas es todo el contenido de nivel superior y subcategoría junto, por lo que esto parece razonablemente consistente con las expectativas de Discourse.
¡Federar todo!
Creo que también sería interesante agregar una configuración a nivel de sitio para un actor de ActivityPub que federara todas las publicaciones públicas en un sitio. Yo mismo lo usaría. Pero no lo veo como una puerta de sentido único: configuraría la federación de categorías tan pronto como estuviera lista, incluso si luego agregara un actor “all@” para federar todo.
Limitaciones de edición
Una de las cosas que no es obvia en tu publicación es que se puede leer que solo la sección literal [note]...[/note] no se puede editar. Para otros aquí, lo que realmente significa es que si federas, la edición está actualmente deshabilitada en todas las publicaciones tan pronto como se federan (excepto para las publicaciones con una sección literal [note]...[/note]); este mensaje aparece solo cuando intentas guardar tu edición:
Mi sitio permite intencionalmente a los usuarios suficientemente confiables editar indefinidamente, por lo que no puedo activar esto sin la capacidad de deshabilitar este control (o que el control sea eliminado porque las ediciones se federan). A modo de ejemplo general aplicable más allá de tales sitios confiables, cualquier categoría con publicaciones en modo wiki se romperá al configurar la federación para esa categoría.
Intenté eliminar una publicación federada que había convertido en wiki y obtuve esto:
Sin embargo, la publicación se eliminó y la eliminación se federó.
Personalidad
Sería bueno proporcionar una imagen de perfil para cada actor designado. En Mastodon, solo veo la imagen del elefante gris para cada actor de categoría, y me encantaría agregar un poco de personalidad aquí. 
Registros de errores
Hasta ahora, he obtenido dos tipos de errores en mis registros del plugin activitypub:
Message (3 copies reported)
NoMethodError (undefined method `ap_type' for nil:NilClass)
(eval):7:in `_fast_attributes'
app/controllers/application_controller.rb:418:in `block in with_resolved_locale'
app/controllers/application_controller.rb:418:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:367:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:228:in `call'
Backtrace
plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:18:in `object'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/activity_serializer.rb:18:in `_object'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/activity_serializer.rb:9:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/object.rb:50:in `json'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/collection/ordered_collection_serializer.rb:7:in `map'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/collection/ordered_collection_serializer.rb:7:in `ordered_items'
(eval):7:in `_fast_attributes'
Message
Job exception: undefined method `model' for #<DiscourseActivityPubActivity id: 2, ap_id: "https://social.makerforums.info/cf2e1e8d-83e3-447e...", ap_key: nil, ap_type: "Follow", local: nil, actor_id: 3, object_id: "1", object_type: "DiscourseActivityPubActor", summary: nil, published_at: nil, created_at: "2023-06-01 02:23:13.798564000 +0000", updated_at: "2023-06-01 02:23:13.798564000 +0000">
Backtrace
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activemodel-7.0.4.3/lib/active_model/attribute_methods.rb:458:in `method_missing'
/var/www/discourse/plugins/discourse-activity-pub/app/models/discourse_activity_pub_activity.rb:79:in `after_deliver'
/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_deliver.rb:42:in `perform_request'
/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_deliver.rb:13:in `execute'
/var/www/discourse/app/jobs/base.rb:249:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rails_multisite-5.0.0/lib/rails_multisite/connection_management.rb:82:in `with_connection'
/var/www/discourse/app/jobs/base.rb:236:in `block in perform'
/var/www/discourse/app/jobs/base.rb:232:in `each'
/var/www/discourse/app/jobs/base.rb:232:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.9/lib/sidekiq/processor.rb:202:in `execute_job'
¡Gracias de nuevo por tu trabajo en esto!