プラグイン「ActivityPub」が7.6.0に更新された。

ActivityPub – WordPress plugin | WordPress.org
https://wordpress.org/plugins/activitypub/#developers

7.6.0 – 2025-11-11

Added

  • Add bidirectional transforms between reply and embed blocks for improved user experience.
  • Add Command Palette integration for quick navigation to ActivityPub admin pages
  • Added a new ap_object post type and taxonomies for storing and managing incoming ActivityPub objects, with updated handlers
  • Added a privacy option to hide followers and following lists from profiles while keeping follow relationships intact.
  • Added a scheduled task and setting to automatically purge old inbox items, helping maintain site performance and storage control.
  • Added fallback to trigger create handling when updates fail for missing posts or comments, ensuring objects are properly created.
  • Added immediate dispatch for Accept activities to speed up quoted posts while keeping scheduled processing for compatibility with other instances.
  • Added new configuration options to better manage traffic spikes when federating posts, allowing finer control over retry limits, delays, and batch pauses.
  • Added support for FEP-8fcf follower synchronization, improving data consistency across servers with new sync headers, digest checks, and reconciliation tasks.
  • Add LiteSpeed Cache integration to prevent ActivityPub JSON responses from being cached incorrectly. Includes automatic .htaccess rules and Site Health check to ensure proper configuration.
  • Add quote visibility setting for Classic Editor users.
  • Add unified attachment processor for handling ActivityPub media imports from both remote URLs and local files, with automatic media block generation and Classic Editor support.
  • Integrate Federated Reply block with WP.com Reader’s post share functionality, allowing users to reply to ActivityPub posts directly from the Reader.

Changed

  • Added support for FEP-3b86 Activity Intents, extending WebFinger and REST interactions with new Create and Follow intent links.
  • Added support for the latest NodeInfo (FEP-0151), with improved federation details, staff info, and software metadata for better ActivityPub compliance.
  • Extended inbox support for undoing Like, Create, and Announce activities, with refactored undo logic and improved activity persistence.
  • Improved Classic Editor integration by adding better media handling and full test coverage for attachments, permissions, and metadata.
  • Improved delivery of public and follower activities by expanding local recipient handling to include all ActivityPub-capable users and follower collections.
  • Improved inbox performance by batching and deduplicating activities, reducing redundant processing and improving handling during high activity periods.
  • Improved REST API responses with smarter context handling.
  • Improved REST collection pagination by using explicit total item counts for more accurate results.
  • Moved default visibility handling from the server to the editor UI, ensuring consistent and flexible ActivityPub visibility settings across both block and classic editors.
  • Prevented self-announcing by ignoring announces from the blog actor, while still processing announces from user and external actors.
  • Refactored activity handling to support multiple recipients per activity, allowing posts and interactions to be linked to several local users at once.
  • Refactored avatar handling into a new system that stores and manages avatars per remote actor, improving reliability and preparing for future caching support.
  • Refactored the inbox system to use a shared inbox, storing activities once with multiple recipients for improved efficiency and reduced duplication.
  • Reorganize integration loader and move Stream integration into dedicated folder structure.
  • Reply posts: do not display post title before @mentions in posts that are replies to somebody else
  • Simplified configuration by always enabling the shared inbox and removing its separate setting, UI field, and related logic.
  • Simplified inbox storage settings, allowing certain activities (like deletes) to be skipped to reduce unnecessary database use.
  • Simplify follow() API return types to int|WP_Error for better predictability.
  • Updated inbox handling to support multiple users receiving the same activity and improve overall data consistency.
  • Updated mailer hooks to send notifications only when activities are successfully handled, preventing emails for failed events.
  • Update plugin short description to be more user-friendly.

Fixed

  • Added a safeguard to ensure the plugin works correctly even when no post types are selected.
  • Added a safety check to prevent errors when resolving comment author hostnames without a valid IP address.
  • Fixed activity processing to handle QuoteRequest and other edge cases more reliably.
  • Fixed an issue with post content templates to ensure the correct fallback is always applied.
  • Fixed fatal error when transformer Factory receives WP_Error objects.
  • Fixed HTML entity encoding in extra field names when displayed on ActivityPub platforms
  • Fixed typo in example, improve quoting description.
  • Fix Following table error message to display user input instead of empty string when webfinger lookup fails.
  • Fix infinite recursion when storing remote actors with mentions in their bios
  • Fix local inbox delivery to use internal REST API instead of HTTP, enabling local follows and proper boost counting.
  • Fix logic errors in Move handler: remove redundant assignment and fix variable name collision.
  • Fix public key retrieval for GoToSocial profiles with path-based key URLs.
  • Improved actor resolution by prioritizing blog actor detection before remote actor checks and refining home page URL handling.
  • Improved handling of empty fields for better compatibility with Pixelfed and more consistent fallback behavior across actor names, URLs, and related data.
  • Improved hashtag encoding for consistent formatting.
  • Improved Jetpack integration by initializing it during the WordPress startup process.
  • Refactored Mastodon import handling to use consistent array-based data, improving reliability and compatibility across all import scenarios.
  • Reply block now properly validates ActivityPub URLs before setting inReplyTo field

Google翻訳

7.6.0 – 2025-11-11

Added

  • 返信ブロックと埋め込みブロック間の双方向変換を追加し、ユーザーエクスペリエンスを向上させました。
  • コマンドパレット統合を追加し、ActivityPub管理ページへの素早いナビゲーションを実現しました。
  • 新しいap_object投稿タイプと、受信したActivityPubオブジェクトの保存と管理のためのタクソノミーを追加しました。ハンドラーも更新しました。
  • フォロー関係を維持しながら、フォロワーとフォロー中のリストをプロフィールから非表示にするプライバシーオプションを追加しました。
  • 古い受信トレイアイテムを自動的に削除するスケジュールタスクと設定を追加し、サイトのパフォーマンスとストレージ管理を維持できるようにしました。
  • 不足している投稿やコメントの更新に失敗した場合、作成処理をトリガーするフォールバックを追加し、オブジェクトが適切に作成されるようにしました。
  • Acceptアクティビティの即時ディスパッチを追加し、引用投稿の高速化を図りながら、他のインスタンスとの互換性を保つようにスケジュール処理を維持しました。
  • 投稿を統合する際のトラフィックスパイクをより適切に管理するための新しい設定オプションを追加し、再試行制限、遅延、バッチ一時停止をより細かく制御できるようになりました。
  • FEP-8fcfフォロワー同期のサポートを追加し、新しい同期ヘッダー、ダイジェストチェック、リコンシリエーションタスクにより、サーバー間のデータ整合性を向上させました。
  • ActivityPub JSONレスポンスが誤ってキャッシュされるのを防ぐため、LiteSpeed Cacheとの連携を追加しました。適切な設定を保証するため、自動.htaccessルールとサイトヘルスチェック機能も搭載しています。
  • クラシックエディターユーザー向けに引用の表示設定を追加しました。
  • リモートURLとローカルファイルの両方からのActivityPubメディアインポートを処理するための統合添付ファイルプロセッサを追加しました。自動メディアブロック生成とクラシックエディターのサポートも追加しました。
  • Federated ReplyブロックをWP.com Readerの投稿共有機能と連携させ、ユーザーがリーダーから直接ActivityPubの投稿に返信できるようにします。

Changed

  • FEP-3b86 Activity Intentsのサポートを追加し、WebFingerとRESTのインタラクションを新しいCreateおよびFollowインテントリンクで拡張しました。
  • 最新のNodeInfo (FEP-0151)のサポートを追加し、フェデレーションの詳細、スタッフ情報、ソフトウェアメタデータを改善することで、ActivityPubへの準拠を向上させました。
  • 「いいね!」、「作成」、「アナウンス」アクティビティの取り消しに対する受信トレイのサポートを拡張し、取り消しロジックをリファクタリングし、アクティビティの永続性を改善しました。
  • クラシックエディターとの統合を改善し、メディア処理を改善し、添付ファイル、権限、メタデータのテストカバレッジを完全に網羅しました。
  • ローカル受信者処理を拡張し、ActivityPub対応のすべてのユーザーとフォロワーコレクションを対象にすることで、パブリックアクティビティとフォロワーアクティビティの配信を改善しました。
  • アクティビティのバッチ処理と重複排除により、冗長な処理を削減し、アクティビティが集中する時間帯の処理を改善することで、受信トレイのパフォーマンスを改善しました。
  • よりスマートなコンテキスト処理により、REST APIレスポンスを改善しました。
  • 明示的なアイテム総数を使用することで、RESTコレクションのページネーションを改善し、より正確な結果を実現しました。
  • デフォルトの表示設定処理をサーバーからエディター UI に移動しました。これにより、ブロックエディターとクラシックエディターの両方で ActivityPub の表示設定の一貫性と柔軟性が確保されます。
  • ブログアクターからのアナウンスを無視することで自己アナウンスを防止し、ユーザーおよび外部アクターからのアナウンスは引き続き処理します。
  • アクティビティ処理をリファクタリングしてアクティビティごとに複数の受信者をサポートし、投稿やインタラクションを複数のローカルユーザーに同時にリンクできるようになりました。
  • アバター処理を、リモートアクターごとにアバターを保存および管理する新しいシステムにリファクタリングしました。これにより信頼性が向上し、将来のキャッシュサポートに備えることができます。
  • 受信トレイシステムをリファクタリングして共有受信トレイを使用し、複数の受信者を持つアクティビティを一度に保存することで、効率性を向上させ、重複を削減しました。
  • 統合ローダーを再編成し、Stream 統合を専用のフォルダー構造に移動しました。
  • 返信投稿: 他のユーザーへの返信である投稿では、@メンションの前に投稿タイトルを表示しません。
  • 共有受信トレイを常に有効にし、個別の設定、UI フィールド、および関連ロジックを削除することで、設定を簡素化しました。
  • 受信トレイの保存設定を簡素化し、特定のアクティビティ(削除など)をスキップして不要なデータベース使用を削減できるようになりました。
  • follow() API の戻り値の型を int|WP_Error に簡素化することで、予測可能性を高めました。
  • 受信トレイの処理を更新し、複数のユーザーが同じアクティビティを受信した場合に対応し、全体的なデータの一貫性を向上させました。
  • メールフックを更新し、アクティビティが正常に処理された場合にのみ通知を送信することで、失敗したイベントに関するメール送信を防止しました。
  • プラグインの簡単な説明をよりユーザーフレンドリーに更新しました。

Fixed

  • 投稿タイプが選択されていない場合でもプラグインが正しく動作するように安全対策を追加しました。
  • 有効なIPアドレスを持たないコメント投稿者のホスト名を解決する際にエラーが発生しないように、安全チェックを追加しました。
  • QuoteRequestなどのエッジケースをより確実に処理できるようにアクティビティ処理を修正しました。
  • 投稿コンテンツテンプレートの問題を修正し、常に正しいフォールバックが適用されるようにしました。
  • Transformer FactoryがWP_Errorオブジェクトを受け取った際に発生する致命的なエラーを修正しました。
  • ActivityPubプラットフォームで表示される追加フィールド名のHTMLエンティティエンコーディングを修正しました。
  • 例のタイプミスを修正し、引用の説明を改善しました。
  • Webfingerルックアップが失敗した場合に、空の文字列ではなくユーザー入力を表示するように、Followingテーブルのエラーメッセージを修正しました。
  • バイオにメンションがあるリモートアクターを保存する際の無限再帰を修正しました。
  • ローカル受信トレイへの配信を修正し、HTTPではなく内部REST APIを使用することで、ローカルフォローと適切なブーストカウントを有効にしました。
  • Moveハンドラーのロジックエラーを修正しました。冗長な代入を削除し、変数名の衝突を修正しました。
  • パスベースのキーURLを使用したGoToSocialプロフィールの公開鍵取得を修正しました。
  • リモートアクターのチェックよりもブログアクターの検出を優先し、ホームページURLの処理を改善することで、アクターの解決を改善しました。
  • Pixelfedとの互換性を高め、アクター名、URL、関連データ全体でより一貫したフォールバック動作を実現するために、空フィールドの処理を改善しました。
  • 一貫したフォーマットを実現するために、ハッシュタグエンコーディングを改善しました。
  • WordPressの起動プロセス中にJetpackを初期化することで、Jetpackとの統合を改善しました。
  • Mastodonのインポート処理をリファクタリングし、一貫性のある配列ベースのデータを使用することで、すべてのインポートシナリオにおける信頼性と互換性を向上させました。
  • 返信ブロックは、inReplyToフィールドを設定する前に、ActivityPub URLを適切に検証するようになりました。

未分類
管理人のマストドンアカウントへのリンクなど

コメント

  1. ishii-m より:

    #ActivityPub #Mastodon
    日本語のハッシュタグがデコードされずに表示されてる。

  2. ishii ishii より:

    #ActivityPub #Mastodon
    "一貫したフォーマットを実現するために、ハッシュタグエンコーディングを改善しました。
    "
    プラグイン「ActivityPub」が7.6.0に更新された。 | いしい@試行錯誤
    https://ishii00141.stars.ne.jp/20251112-0736-3881/

    たぶん、これが原因で、マストドンで見ると日本語のハッシュタグがデコードされずに表示されてる。

  3. ishii ishii より:

    #Mastodon で表示した時のリプライの認識が変かも。

    元の投稿に対して、コメントのスレッドは3つ。

    1. 元の投稿→7:43 AM(Mastodon)
    2. 元の投稿→7:53 AM(コメント)→8:29 AM(Mastodon)→8:33 AM(コメント)→8:37 AM(コメント)
    3. 元の投稿→このコメント

    Mastodonで元の投稿を表示した時の並び順は

    元の投稿→7:53 AM(コメント)→7:43 AM(Mastodon)→8:29 AM(Mastodon)→8:33 AM(コメント)→8:37 AM(コメント)

    スレッド 2.が繋がっているように見えない。7:53 AM(コメント)を表示すれば、スレッドが繋がっているように見えるのだけど…。

    • ishii ishii より:

      #Mastodon で元の投稿を表示した時の並び順は次のようになった。

      元の投稿→7:53 AM(コメント)→8:57 AM(コメント)→7:43 AM(Mastodon)→8:29 AM(Mastodon)→8:33 AM(コメント)→8:37 AM(コメント)

  4. いしい より:

    #ActivityPub #Mastodon
    リプライが1つしか ないことになってる。
    実際は、このリプライを含めて4つ。

  5. ishii ishii より:

    #ActivityPub #Mastodon
    テーブルを確認したら、wp_commentmeta の meta_key に _activitypub_remote_actor_id が追加されてる。avatar_url が無くなったかもしれない。

    • ishii ishii より:

      #ActivityPub #Mastodon
      _activitypub_remote_actor_id の meta_value が1507で、これが私のMastodonのidだと思うのだけど、その数字が何を意味するのか分からない。アイコンと表示名をどのように取得しているのか分からない。avatar_urlの方はMastodonのサイトのpng画像にアクセスしてた。

      • ishii ishii より:

        1507は wp_posts テーブルの IDだった。
        post_data は 2025-03-08 16:02:44 なんだけど、post_modified が 2025-11-12 09:14:07。
        IDの番号か小さいから、古くて関係ないかと思ったけれど、更新日が今日だった。

        post_type が ap_actor で post_title が「いしい」だった。
        そして、post_content のJSONデータの中に、更新後の最新のアイコンのURLが含まれていた。
        どうやら、ここから取得しているらしい。

        • ishii ishii より:

          フォローできない、リプライが届かないという問題が解決して、この投稿の直前にフォローできたようだから、
          「2025-03-08 16:02:44」はフォローした日時かもしれない。
          このデータが、wp_posts テーブルにあって、更新されていたとは…。

          "「REST API アクセス制限」をオフにした後のリプライテストだよ。既にフォローはできた容体。(公開)
          2025年3月08日 16:05
          "
          いしい: "@ishii 「REST API アクセス制限」をオフにした…
          " - Mastodon
          https://mastodon.social/@ishii00141/114125538444309277

          • ishii ishii より:

            アバターを取得するコードは class-avatars.php にある。

            
            $avatar = null;
            
            // First, try to get avatar from remote actor.
            $remote_actor_id = \get_comment_meta( $id_or_email->comment_ID, '_activitypub_remote_actor_id', true );
            if ( $remote_actor_id ) {
              $avatar = Remote_Actors::get_avatar_url( $remote_actor_id );
            }
            
            // Fall back to avatar_url comment meta for backward compatibility.
            if ( ! $avatar ) {
              $avatar = \get_comment_meta( $id_or_email->comment_ID, 'avatar_url', true );
            }
            
タイトルとURLをコピーしました