Vielen Dank für Ihre Arbeit hier! Ich freue mich wirklich darauf, dies einzuschalten, und danke, dass Sie es zum Testen freigegeben haben, damit diejenigen von uns mit verschiedenen Setups zumindest das Testen in einer breiteren Palette von Szenarien beitragen können.
Wenn ich darüber nachdenke, wann ich dies für meine Website einschalten soll, versuche ich, darüber nachzudenken, was die “Einwegtüren” sein könnten.
Unterkategorien
Ich habe 8 Hauptkategorien, aber zusätzlich habe ich 21 öffentliche Unterkategorien. 29 Akteuren folgen zu müssen, um die gesamte öffentliche Website-Aktivität zu verfolgen, erscheint viel. Außerdem könnte es für Benutzer eine Überraschung sein, dass das Folgen einer Kategorie nicht die Unterkategorien verfolgt.
Wenn ich in den ActivityPub-Einstellungen einer Kategorie eine Option für “auch öffentliche Unterkategorien föderieren” auswählen könnte, würde ich das tun. Ob Unterkategorien separat föderiert werden sollen, fühlt sich meiner Meinung nach aus Benutzersicht hauptsächlich wie eine Einwegtür an. Wenn Sie also eine Option “auch Unterkategorien föderieren” in Betracht ziehen würden, könnte dies meine Pläne beeinflussen. Unsere Standard-Seitenleiste zeigt nur die obersten Kategorien an, und die Discourse-Standardeinstellung, wenn man sie betrachtet, zeigt alle Inhalte der obersten Ebene und der Unterkategorien zusammen an, sodass dies den Erwartungen von Discourse einigermaßen entspricht.
Alles föderieren!
Ich denke, es wäre interessant, auch eine website-weite Einstellung für einen ActivityPub-Akteur hinzuzufügen, der alle öffentlichen Beiträge auf einer Website föderiert. Das würde ich selbst nutzen. Aber ich sehe das nicht als Einwegtür an – ich würde die Kategorienföderation einrichten, sobald sie ansonsten fertig ist, auch wenn ich später einen “all@” Akteur hinzufügen würde, um alles zu föderieren.
Bearbeitungsbeschränkungen
Eines der Dinge, die aus Ihrem Beitrag nicht ersichtlich sind, ist, dass er so gelesen werden kann, dass nur der wörtliche [note]...[/note] Abschnitt nicht bearbeitet werden kann. Für andere hier bedeutet es wirklich, dass, wenn Sie föderieren, die Bearbeitung derzeit für alle Beiträge deaktiviert ist, sobald sie föderiert sind (außer für Beiträge mit einem wörtlichen [note]...[/note] Abschnitt); diese Meldung wird nur angezeigt, wenn Sie versuchen, Ihre Bearbeitung zu speichern:
Meine Website erlaubt absichtlich ausreichend vertrauenswürdigen Benutzern, unbegrenzt zu bearbeiten, daher kann ich dies nicht einschalten, ohne die Möglichkeit zu haben, diese Kontrolle zu deaktivieren (oder die Kontrolle zu entfernen, da Bearbeitungen föderiert werden). Als allgemeines Beispiel, das über solche vertrauenswürdigen Websites hinausgeht, wird jede Kategorie mit Wiki-Modus-Beiträgen durch die Einrichtung der Föderation für diese Kategorie beschädigt.
Ich habe versucht, einen föderierten Beitrag, den ich zu einem Wiki gemacht hatte, zu löschen, und erhielt Folgendes:
Der Beitrag wurde jedoch gelöscht und die Löschung wurde föderiert.
Persönlichkeit
Es wäre schön, jedem bestimmten Akteur ein Profilbild zur Verfügung zu stellen. In Mastodon sehe ich nur das graue Elefantenbild für jeden Kategorie-Akteur, und ich würde hier gerne ein wenig Persönlichkeit hinzufügen. 
Fehlerprotokolle
Ich habe bisher zwei Arten von Fehlern in meinen Protokollen vom ActivityPub-Plugin erhalten:
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'
Nochmals vielen Dank für Ihre Arbeit daran!