Skip to content

upstream: 2026.9.0 - #12

Open
sync-agent[bot] wants to merge 606 commits into
developfrom
upstream/2026.9.0
Open

sync-agent[bot] wants to merge 606 commits into
developfrom
upstream/2026.9.0

Conversation

@sync-agent

@sync-agent sync-agent Bot commented Sep 8, 2026

Copy link
Copy Markdown

Important

今回のアップデートでは重大な脆弱性を修正しています。可及的速やかにアップデートしてください。

This update contains serious vulnerability fixes. Please update to this or the latest version of Misskey as soon as possible.

Note

  • カスタム絵文字の一括インポートは、必要なロールポリシーを所持しているかどうかにかかわらず、管理者権限を持つユーザーのみが実行できるようになりました。
  • notes/reactions を GET で取得することができなくなりました。

General

  • Enhance: ノート翻訳時、CWも翻訳対象に含めるように
  • Enhance: 依存関係の更新
  • Enhance: 翻訳の更新

Client

  • Enhance: 画像ビューワーで、ピクセルアートの拡大表示に適したモードを追加(画像ビューワー起動時に画面上の詳細メニューから有効化できます)
  • Enhance: メディアリスト上でぼかしを解除したメディアを画像ビューワーで表示した際にぼかしを解除した状態で表示するように
  • Enhance: 音声プレイヤーを画像・動画ビューワーに統合
  • Enhance: パフォーマンスの向上
  • Fix: 画像の表示時にBlurhashが描画されない場合があるのを修正
  • Fix: モバイルでの利用時に一部のテキストが選択できない問題を修正
  • Fix: 「利用できるリアクションを先頭に表示」が機能しない問題を修正
  • Fix: コントロールパネルでユーザーをメール検索し見つからなかった場合、エラーダイアログが2重に表示される問題を修正
  • Fix: リストにユーザーを追加/削除した際、メンバー数の表示が更新されない問題を修正
  • Fix: 通知トーストの位置を左側にした場合でも右から通知が入ってくる問題を修正
  • Fix: 通知トーストのアニメーションの挙動が不安定になる問題を修正

Server

  • Feat: .well-known/change-passwordに対応(/settings/securityにリダイレクトします)
  • Enhance: アクセストークンでAPIを使用している際に、自身のアクセストークンを失効させることができるように
    • i/revoke-token エンドポイントにリクエストすることで、現在使用しているアクセストークンを失効させることができます
  • Fix: 既にミュートしているスレッドに対して再度スレッドミュートを作成しようとするとサーバーエラーになる問題を修正
  • Fix: 古いバージョンのMisskeyで作成されたアカウントでノートの連合が行えない場合があるのを修正
  • Fix: 一部のWebSocketチャンネルのクリーンアップ処理が正しく行われない問題を修正
  • Fix: セキュリティに関する修正

kakkokari-gtyih and others added 30 commits July 5, 2026 13:07
* feat: Sentryバックエンドの自動計装を個別で無効化出来る仕組みを追加する

* fix comment
…dev#17671)

* fix: pgをexternalにしてSentryのspanが動くようにする

* fix changelog

* add comment
* deps: update dependencies

* deps: update dependencies (major)

* migrate js-yaml

* migrate js-yaml

* run pnpm dedupe

* fix

* chore: reorganize dependencies

* perf: lazy-load id generators

* Revert "perf: lazy-load id generators"

This reverts commit 041f7c4.
…ないように (misskey-dev#17677)

* fix: Sentry 使用環境下にて、外部送信リクエストへ `sentry-trace` / `baggage` ヘッダーが既定で付与されないように

* fix
* fix(frontend): ツールチップがマウント解除後もイベントリスナーが残る問題を修正

* more fix

* fix

* fix/refactor

* Update Changelog

* update comment

* refactor

* fix
…skey-dev#17662)

refactor(frontend): フロントエンドのfluent-emojis使用箇所を `@misskey-dev/emoji-assets` のものに変更
* enhance(frontend/test): frontend e2eをVitest Browser Modeに移行

* fix

* fix unit tests

* fix

* fix

* update playwright

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* perf

* Revert "perf"

This reverts commit e60e965.

* fix
* wip

* wip

* Update MkImageGallery.item.vue

* wip

* Update MkImageGallery.item.vue

* Update MkImageGallery.item.vue

* wip

* wip

* wip

* wip

* wip

* Update MkImageGallery.vue

* Update MkImageGallery.vue

* wip

* wip

* Update MkMediaList.vue

* Update MkImageGallery.item.vue

* fix

* wip

* Update MkImageGallery.item.vue

* wip

* wip

* Update MkImageGallery.item.vue

* refactor

* Update MkImageGallery.item.vue

* Update MkImageGallery.vue

* Delete animation.ts

* wip

* wip

* Update MkImageGallery.item.vue

* Update MkImageGallery.item.vue

* wip

* wip

* Update MkImageGallery.vue

* Update MkImageGallery.vue

* Update MkImageGallery.item.vue

* fix

* Update MkImageGallery.item.vue

* add note

* lint

* Update MkMediaList.vue

* refactor

* Update MkImageGallery.item.vue

* wip

* Update MkImageGallery.item.vue

* fix

* Update MkImageGallery.item.vue

* wip

* Update MkImageGallery.item.vue

* wip

* wip

* Update MkImageGallery.item.vue

* Update MkImageGallery.item.vue

* Update MkImageGallery.item.vue

* Update MkImageGallery.item.vue

* Update MkVideoContol.vue

* wip

* Update MkMediaVideo.vue

* Update MkMediaVideo.vue

* wip

* Update MkImageGallery.vue

* Update MkVideoContol.vue

* Update MkVideoContol.vue

* Improve image viewer (misskey-dev#17696)

* wip

* fix

* fix

* 🎨

* fix

* fix: Video要素をpropsで渡すのをやめる

* 🎨

* fix

* wip

* fix

* fix: 画面外にドラッグできるのを修正

* fix lint

* fix

* fix

* fix

* refactor

* add comment

* fix: 画像を新しいタブで開くが機能しなくなっていた問題を修正

* fix

* clean up

* attempt to fix

* fix

* enhance: ブラウザの戻るボタンで閉じる

* Revert "fix: 画面外にドラッグできるのを修正"

This reverts commit ea2ddc2.

* Reapply "fix: 画面外にドラッグできるのを修正"

This reverts commit 8717198.

* fix

* fix: 存在しない要素がsourceElementのときに閉じると画像が飛んでいく問題を修正

* fix: clampに余白を追加

* fix duplicated condition

* fix

* fix typo

* fix(frontend/imagegallery): ボタンの当たり判定がまだ小さいのを修正 (misskey-dev#17697)

* wip

* fix

* fix

* 🎨

* fix

* fix: Video要素をpropsで渡すのをやめる

* 🎨

* fix

* wip

* fix

* fix: 画面外にドラッグできるのを修正

* fix lint

* fix

* fix

* fix

* refactor

* add comment

* fix: 画像を新しいタブで開くが機能しなくなっていた問題を修正

* fix

* clean up

* attempt to fix

* fix

* enhance: ブラウザの戻るボタンで閉じる

* Revert "fix: 画面外にドラッグできるのを修正"

This reverts commit ea2ddc2.

* Reapply "fix: 画面外にドラッグできるのを修正"

This reverts commit 8717198.

* fix

* fix: 存在しない要素がsourceElementのときに閉じると画像が飛んでいく問題を修正

* fix: clampに余白を追加

* fix duplicated condition

* fix

* fix typo

* fix

* Update Changelog

* indent

* fix

* fix

* refactor: rename componet

* fix

* fix

* fix

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
* enhance(backend): summalyの結果をキャッシュするように

* fix

* fix: unify memorykvcache

* fix

* refactor

* fix

* Update Changelog
…misskey-dev#17701)

* fix(backend): configテンプレートのallowedPrivateNetworksをリスト記法に変更してエラーの発生を抑制

* fix
…題を修正 (misskey-dev#17703)

ビューワーを表示するトリガーをサムネイル画像又はオリジナル画像がロードされたときに修正
* fix(frontend): 未ログイン時のトップページがスクロール不可だったのを修正

* fix CHANGELOG.md

* remove playwright file

* fix(frontend): 非ログイン時トップページを背景の上でもスクロールできるよう修正

.root を min-height から develop と同じ height + overflow: auto に戻して .root 自身を
スクロールコンテナとし、装飾レイヤ (.bg / .shape1 / .shape2) の pointer-events: none と
併せて、コンテンツ列以外 (背景) の上でもホイールスクロールが効くようにする。
CSS のみの対応で、TL のマーキーアニメーションやノート / フェデレーションのクリック挙動は
変更しない。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* feat(backend): add OTLP trace export

* fix

* regenerate

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fix

* fix

* fix

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…misskey-dev#17707)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* feat: BullMQのジョブ追加時に発動する手動計測の追加

* add comment
nekochanfood and others added 23 commits August 30, 2026 19:11
…dev#17901)

feat(backend): "/settings/security"へのリダイレクトを実装

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
)

* fix(backend): 一部のWebSocketチャンネルで切断後もイベントが送信され続ける問題を修正

* Update Changelog

* fix wrong accessor

* fix
* fix(frontend): リストのユーザー追加/削除時にメンバー数表示が更新されない問題を修正

users/lists/push・pull成功時にlist.value.userIdsをローカル更新し、
userListsCacheも無効化することで、詳細ページ・一覧ページ双方の
メンバー数表示を即時反映させる。get-user-menu.tsのaddToList実装と
同様のパターンに揃えた。

Closes misskey-dev#13977

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* fix(frontend): リスト切り替え中の非同期処理完了で表示が不整合になる問題を修正

CodeRabbitの指摘に対応。addUser/removeUserのAPI呼び出し中にlistIdが
切り替わった場合、完了時のuserIds更新が別のリストに反映されないよう、
リクエスト開始時のlistIdを保持して完了時に比較する。addUser側は
重複追加も防止する。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EHZLcRt48Nfs2MQkvzachD

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
…ev#17893)

* fix(frontend): メールアドレスでユーザーが見つからない場合にエラーダイアログが2重表示される問題を修正

os.apiWithDialog が失敗時に自動でエラーダイアログを表示するため、呼び出し側の
catch節で os.alert を重ねて呼んでいたのが原因。apiWithDialog の customErrors
引数で USER_NOT_FOUND 用のメッセージを指定する形に変更し、二重表示を解消した。

Closes misskey-dev#13649

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EHZLcRt48Nfs2MQkvzachD

* fix(frontend): apiWithDialog失敗時にunhandled rejectionが発生する問題を修正

CodeRabbitの指摘に対応。apiWithDialogがエラーダイアログ表示済みのため、
拒否ハンドラーで追加のアラートを出さずにPromiseの拒否を処理する。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EHZLcRt48Nfs2MQkvzachD

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
* New translations ja-jp.yml (Korean)

[ci skip]

* New translations ja-jp.yml (Chinese Simplified)

[ci skip]
Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
* fix(backend): consolidate credential required error id

* fix(frontend): consolidate emoji logics

* Update revoke-token.ts

* Revert "fix(backend): consolidate credential required error id"

This reverts commit ea13257.

* add comment
* fix(backend): Isolate the Redis keys used to store WebAuthn challenges for each flow

* fix(backend): harden passkey sign-in context validation
* fix(backend): replace slacc ZipReader with zipjs ZipReader

* fix(backend): restrict emoji import zip to admin users

* fix(backend): improve filename and emoji name validation

* fix(backend): improve filename validation

Co-authored-by: Acid Chicken <root@acid-chicken.com>

---------

Co-authored-by: Acid Chicken <root@acid-chicken.com>
* deps: update dependencies

* regenerate lockfile

* deps: update undici
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

このPRによるapi.jsonの差分

差分はこちら
--- base
+++ head
@@ -1,7 +1,7 @@
 {
   "openapi": "3.1.0",
   "info": {
-    "version": "2026.3.2",
+    "version": "2026.9.0",
     "title": "Misskey API"
   },
   "externalDocs": {
@@ -3318,6 +3318,12 @@
                     "items": {
                       "type": "string"
                     }
+                  },
+                  "category": {
+                    "type": [
+                      "string",
+                      "null"
+                    ]
                   }
                 },
                 "required": [
@@ -3367,6 +3373,12 @@
                         "type": "string",
                         "format": "id"
                       }
+                    },
+                    "category": {
+                      "type": [
+                        "string",
+                        "null"
+                      ]
                     }
                   },
                   "required": [
@@ -3376,7 +3388,8 @@
                     "name",
                     "description",
                     "url",
-                    "roleIdsThatCanBeUsedThisDecoration"
+                    "roleIdsThatCanBeUsedThisDecoration",
+                    "category"
                   ]
                 }
               }
@@ -3735,6 +3748,12 @@
                           "type": "string",
                           "format": "id"
                         }
+                      },
+                      "category": {
+                        "type": [
+                          "string",
+                          "null"
+                        ]
                       }
                     },
                     "required": [
@@ -3903,6 +3922,12 @@
                     "items": {
                       "type": "string"
                     }
+                  },
+                  "category": {
+                    "type": [
+                      "string",
+                      "null"
+                    ]
                   }
                 },
                 "required": [
@@ -9720,6 +9745,24 @@
                     "enableSensitiveMediaDetectionForVideos": {
                       "type": "boolean"
                     },
+                    "sensitiveMediaDetectionApiUrl": {
+                      "type": [
+                        "string",
+                        "null"
+                      ]
+                    },
+                    "sensitiveMediaDetectionApiKey": {
+                      "type": [
+                        "string",
+                        "null"
+                      ]
+                    },
+                    "sensitiveMediaDetectionTimeout": {
+                      "type": "number"
+                    },
+                    "sensitiveMediaDetectionMaxImagesPerRequest": {
+                      "type": "number"
+                    },
                     "proxyAccountId": {
                       "type": "string",
                       "format": "id"
@@ -10047,6 +10090,12 @@
                         "null"
                       ]
                     },
+                    "urlPreviewSensitiveList": {
+                      "type": "array",
+                      "items": {
+                        "type": "string"
+                      }
+                    },
                     "federation": {
                       "type": "string",
                       "enum": [
@@ -10155,6 +10204,10 @@
                     "sensitiveMediaDetectionSensitivity",
                     "setSensitiveFlagAutomatically",
                     "enableSensitiveMediaDetectionForVideos",
+                    "sensitiveMediaDetectionApiUrl",
+                    "sensitiveMediaDetectionApiKey",
+                    "sensitiveMediaDetectionTimeout",
+                    "sensitiveMediaDetectionMaxImagesPerRequest",
                     "proxyAccountId",
                     "email",
                     "smtpSecure",
@@ -10227,6 +10280,7 @@
                     "urlPreviewRequireContentLength",
                     "urlPreviewUserAgent",
                     "urlPreviewSummaryProxyUrl",
+                    "urlPreviewSensitiveList",
                     "federation",
                     "federationHosts",
                     "deliverSuspendedSoftware",
@@ -11051,8 +11105,7 @@
                         "wait",
                         "delayed",
                         "completed",
-                        "failed",
-                        "paused"
+                        "failed"
                       ]
                     }
                   },
@@ -11190,6 +11243,165 @@
         }
       }
     },
+    "/admin/queue/pause": {
+      "post": {
+        "operationId": "post___admin___queue___pause",
+        "summary": "admin/queue/pause",
+        "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *write:admin:queue*",
+        "externalDocs": {
+          "description": "Source code",
+          "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/admin/queue/pause.ts"
+        },
+        "tags": [
+          "admin"
+        ],
+        "security": [
+          {
+            "bearerAuth": []
+          }
+        ],
+        "requestBody": {
+          "required": true,
+          "content": {
+            "application/json": {
+              "schema": {
+                "type": "object",
+                "properties": {
+                  "queue": {
+                    "type": "string",
+                    "enum": [
+                      "system",
+                      "endedPollNotification",
+                      "postScheduledNote",
+                      "deliver",
+                      "inbox",
+                      "db",
+                      "relationship",
+                      "objectStorage",
+                      "userWebhookDeliver",
+                      "systemWebhookDeliver"
+                    ]
+                  }
+                },
+                "required": [
+                  "queue"
+                ]
+              }
+            }
+          }
+        },
+        "responses": {
+          "204": {
+            "description": "OK (without any results)"
+          },
+          "400": {
+            "description": "Client error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INVALID_PARAM": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid param.",
+                        "code": "INVALID_PARAM",
+                        "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Authentication error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "CREDENTIAL_REQUIRED": {
+                    "value": {
+                      "error": {
+                        "message": "Credential required.",
+                        "code": "CREDENTIAL_REQUIRED",
+                        "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "AUTHENTICATION_FAILED": {
+                    "value": {
+                      "error": {
+                        "message": "Authentication failed. Please ensure your token is correct.",
+                        "code": "AUTHENTICATION_FAILED",
+                        "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "418": {
+            "description": "I'm Ai",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "I_AM_AI": {
+                    "value": {
+                      "error": {
+                        "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.",
+                        "code": "I_AM_AI",
+                        "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal server error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INTERNAL_ERROR": {
+                    "value": {
+                      "error": {
+                        "message": "Internal error occurred. Please contact us if the error persists.",
+                        "code": "INTERNAL_ERROR",
+                        "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    },
     "/admin/queue/promote-jobs": {
       "post": {
         "operationId": "post___admin___queue___promote-jobs",
@@ -11996,6 +12208,165 @@
         }
       }
     },
+    "/admin/queue/resume": {
+      "post": {
+        "operationId": "post___admin___queue___resume",
+        "summary": "admin/queue/resume",
+        "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *write:admin:queue*",
+        "externalDocs": {
+          "description": "Source code",
+          "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/admin/queue/resume.ts"
+        },
+        "tags": [
+          "admin"
+        ],
+        "security": [
+          {
+            "bearerAuth": []
+          }
+        ],
+        "requestBody": {
+          "required": true,
+          "content": {
+            "application/json": {
+              "schema": {
+                "type": "object",
+                "properties": {
+                  "queue": {
+                    "type": "string",
+                    "enum": [
+                      "system",
+                      "endedPollNotification",
+                      "postScheduledNote",
+                      "deliver",
+                      "inbox",
+                      "db",
+                      "relationship",
+                      "objectStorage",
+                      "userWebhookDeliver",
+                      "systemWebhookDeliver"
+                    ]
+                  }
+                },
+                "required": [
+                  "queue"
+                ]
+              }
+            }
+          }
+        },
+        "responses": {
+          "204": {
+            "description": "OK (without any results)"
+          },
+          "400": {
+            "description": "Client error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INVALID_PARAM": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid param.",
+                        "code": "INVALID_PARAM",
+                        "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Authentication error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "CREDENTIAL_REQUIRED": {
+                    "value": {
+                      "error": {
+                        "message": "Credential required.",
+                        "code": "CREDENTIAL_REQUIRED",
+                        "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "AUTHENTICATION_FAILED": {
+                    "value": {
+                      "error": {
+                        "message": "Authentication failed. Please ensure your token is correct.",
+                        "code": "AUTHENTICATION_FAILED",
+                        "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "418": {
+            "description": "I'm Ai",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "I_AM_AI": {
+                    "value": {
+                      "error": {
+                        "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.",
+                        "code": "I_AM_AI",
+                        "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal server error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INTERNAL_ERROR": {
+                    "value": {
+                      "error": {
+                        "message": "Internal error occurred. Please contact us if the error persists.",
+                        "code": "INTERNAL_ERROR",
+                        "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    },
     "/admin/queue/retry-job": {
       "post": {
         "operationId": "post___admin___queue___retry-job",
@@ -12506,7 +12877,7 @@
       "post": {
         "operationId": "post___admin___queue___stats",
         "summary": "admin/queue/stats",
-        "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *read:admin:emoji*",
+        "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *read:admin:queue*",
         "externalDocs": {
           "description": "Source code",
           "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/admin/queue/stats.ts"
@@ -13220,6 +13591,24 @@
                   "$ref": "#/components/schemas/Error"
                 },
                 "examples": {
+                  "NO_SUCH_USER": {
+                    "value": {
+                      "error": {
+                        "message": "No such user.",
+                        "code": "NO_SUCH_USER",
+                        "id": "ccafc7fe-5074-4edd-9dc0-8ef9ef6a701d"
+                      }
+                    }
+                  },
+                  "ACCESS_DENIED": {
+                    "value": {
+                      "error": {
+                        "message": "Access denied.",
+                        "code": "ACCESS_DENIED",
+                        "id": "cda8f8ce-89a6-4f92-8055-33bbe0c1464d"
+                      }
+                    }
+                  },
                   "INVALID_PARAM": {
                     "value": {
                       "error": {
@@ -18160,6 +18549,172 @@
         }
       }
     },
+    "/admin/unset-mfa": {
+      "post": {
+        "operationId": "post___admin___unset-mfa",
+        "summary": "admin/unset-mfa",
+        "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *write:admin:unset-mfa*",
+        "externalDocs": {
+          "description": "Source code",
+          "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/admin/unset-mfa.ts"
+        },
+        "tags": [
+          "admin"
+        ],
+        "security": [
+          {
+            "bearerAuth": []
+          }
+        ],
+        "requestBody": {
+          "required": true,
+          "content": {
+            "application/json": {
+              "schema": {
+                "type": "object",
+                "properties": {
+                  "userId": {
+                    "type": "string",
+                    "format": "misskey:id"
+                  }
+                },
+                "required": [
+                  "userId"
+                ]
+              }
+            }
+          }
+        },
+        "responses": {
+          "204": {
+            "description": "OK (without any results)"
+          },
+          "400": {
+            "description": "Client error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "NO_SUCH_USER": {
+                    "value": {
+                      "error": {
+                        "message": "No such user.",
+                        "code": "NO_SUCH_USER",
+                        "id": "ccafc7fe-5074-4edd-9dc0-8ef9ef6a701d"
+                      }
+                    }
+                  },
+                  "ACCESS_DENIED": {
+                    "value": {
+                      "error": {
+                        "message": "Access denied.",
+                        "code": "ACCESS_DENIED",
+                        "id": "cda8f8ce-89a6-4f92-8055-33bbe0c1464d"
+                      }
+                    }
+                  },
+                  "INVALID_PARAM": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid param.",
+                        "code": "INVALID_PARAM",
+                        "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Authentication error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "CREDENTIAL_REQUIRED": {
+                    "value": {
+                      "error": {
+                        "message": "Credential required.",
+                        "code": "CREDENTIAL_REQUIRED",
+                        "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "AUTHENTICATION_FAILED": {
+                    "value": {
+                      "error": {
+                        "message": "Authentication failed. Please ensure your token is correct.",
+                        "code": "AUTHENTICATION_FAILED",
+                        "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "418": {
+            "description": "I'm Ai",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "I_AM_AI": {
+                    "value": {
+                      "error": {
+                        "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.",
+                        "code": "I_AM_AI",
+                        "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal server error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INTERNAL_ERROR": {
+                    "value": {
+                      "error": {
+                        "message": "Internal error occurred. Please contact us if the error persists.",
+                        "code": "INTERNAL_ERROR",
+                        "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    },
     "/admin/unset-user-avatar": {
       "post": {
         "operationId": "post___admin___unset-user-avatar",
@@ -19074,6 +19629,26 @@
                   "enableSensitiveMediaDetectionForVideos": {
                     "type": "boolean"
                   },
+                  "sensitiveMediaDetectionApiUrl": {
+                    "type": [
+                      "string",
+                      "null"
+                    ]
+                  },
+                  "sensitiveMediaDetectionApiKey": {
+                    "type": [
+                      "string",
+                      "null"
+                    ]
+                  },
+                  "sensitiveMediaDetectionTimeout": {
+                    "type": "integer",
+                    "minimum": 1
+                  },
+                  "sensitiveMediaDetectionMaxImagesPerRequest": {
+                    "type": "integer",
+                    "minimum": 1
+                  },
                   "maintainerName": {
                     "type": [
                       "string",
@@ -19394,6 +19969,15 @@
                       "null"
                     ]
                   },
+                  "urlPreviewSensitiveList": {
+                    "type": [
+                      "array",
+                      "null"
+                    ],
+                    "items": {
+                      "type": "string"
+                    }
+                  },
                   "federation": {
                     "type": "string",
                     "enum": [
@@ -20944,6 +21528,168 @@
         }
       }
     },
+    "/antennas/remove-note": {
+      "post": {
+        "operationId": "post___antennas___remove-note",
+        "summary": "antennas/remove-note",
+        "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *write:account*",
+        "externalDocs": {
+          "description": "Source code",
+          "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/antennas/remove-note.ts"
+        },
+        "tags": [
+          "antennas"
+        ],
+        "security": [
+          {
+            "bearerAuth": []
+          }
+        ],
+        "requestBody": {
+          "required": true,
+          "content": {
+            "application/json": {
+              "schema": {
+                "type": "object",
+                "properties": {
+                  "antennaId": {
+                    "type": "string",
+                    "format": "misskey:id"
+                  },
+                  "noteId": {
+                    "type": "string",
+                    "format": "misskey:id"
+                  }
+                },
+                "required": [
+                  "antennaId",
+                  "noteId"
+                ]
+              }
+            }
+          }
+        },
+        "responses": {
+          "204": {
+            "description": "OK (without any results)"
+          },
+          "400": {
+            "description": "Client error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "NO_SUCH_ANTENNA": {
+                    "value": {
+                      "error": {
+                        "message": "No such antenna.",
+                        "code": "NO_SUCH_ANTENNA",
+                        "id": "850926e0-fd3b-49b6-b69a-b28a5dbd82fe"
+                      }
+                    }
+                  },
+                  "INVALID_PARAM": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid param.",
+                        "code": "INVALID_PARAM",
+                        "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Authentication error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "CREDENTIAL_REQUIRED": {
+                    "value": {
+                      "error": {
+                        "message": "Credential required.",
+                        "code": "CREDENTIAL_REQUIRED",
+                        "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "AUTHENTICATION_FAILED": {
+                    "value": {
+                      "error": {
+                        "message": "Authentication failed. Please ensure your token is correct.",
+                        "code": "AUTHENTICATION_FAILED",
+                        "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "418": {
+            "description": "I'm Ai",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "I_AM_AI": {
+                    "value": {
+                      "error": {
+                        "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.",
+                        "code": "I_AM_AI",
+                        "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal server error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INTERNAL_ERROR": {
+                    "value": {
+                      "error": {
+                        "message": "Internal error occurred. Please contact us if the error persists.",
+                        "code": "INTERNAL_ERROR",
+                        "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    },
     "/antennas/show": {
       "post": {
         "operationId": "post___antennas___show",
@@ -24475,6 +25221,15 @@
                       }
                     }
                   },
+                  "ALREADY_FOLLOWING": {
+                    "value": {
+                      "error": {
+                        "message": "You are already following that channel.",
+                        "code": "ALREADY_FOLLOWING",
+                        "id": "7db31665-651e-40c1-8e6e-28e9ad829a2d"
+                      }
+                    }
+                  },
                   "INVALID_PARAM": {
                     "value": {
                       "error": {
@@ -45649,6 +46404,38 @@
                   "$ref": "#/components/schemas/Error"
                 },
                 "examples": {
+                  "INVALID_URL": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid URL.",
+                        "code": "INVALID_URL",
+                        "id": "89b7ee05-ccfc-4bdd-9b13-61172fd1e06c",
+                        "httpStatusCode": 400
+                      }
+                    }
+                  },
+                  "FETCH_RSS_FAILED": {
+                    "value": {
+                      "error": {
+                        "message": "Failed to fetch RSS.",
+                        "code": "FETCH_RSS_FAILED",
+                        "id": "8db5d3d8-31d7-452f-b0cc-ca3b8925de12",
+                        "kind": "server",
+                        "httpStatusCode": 422
+                      }
+                    }
+                  },
+                  "FETCH_RSS_UNAVAILABLE": {
+                    "value": {
+                      "error": {
+                        "message": "RSS fetching is temporarily unavailable.",
+                        "code": "FETCH_RSS_UNAVAILABLE",
+                        "id": "91e6ff44-c63f-4725-9ad0-b7a40d7f7655",
+                        "kind": "server",
+                        "httpStatusCode": 503
+                      }
+                    }
+                  },
                   "INVALID_PARAM": {
                     "value": {
                       "error": {
@@ -45725,6 +46512,27 @@
               }
             }
           },
+          "429": {
+            "description": "Too many requests",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "RATE_LIMIT_EXCEEDED": {
+                    "value": {
+                      "error": {
+                        "message": "Rate limit exceeded. Please try again later.",
+                        "code": "RATE_LIMIT_EXCEEDED",
+                        "id": "d5826d14-3982-4d2e-8011-b9e9f02499ef"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
           "500": {
             "description": "Internal server error",
             "content": {
@@ -45949,6 +46757,38 @@
                   "$ref": "#/components/schemas/Error"
                 },
                 "examples": {
+                  "INVALID_URL": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid URL.",
+                        "code": "INVALID_URL",
+                        "id": "89b7ee05-ccfc-4bdd-9b13-61172fd1e06c",
+                        "httpStatusCode": 400
+                      }
+                    }
+                  },
+                  "FETCH_RSS_FAILED": {
+                    "value": {
+                      "error": {
+                        "message": "Failed to fetch RSS.",
+                        "code": "FETCH_RSS_FAILED",
+                        "id": "8db5d3d8-31d7-452f-b0cc-ca3b8925de12",
+                        "kind": "server",
+                        "httpStatusCode": 422
+                      }
+                    }
+                  },
+                  "FETCH_RSS_UNAVAILABLE": {
+                    "value": {
+                      "error": {
+                        "message": "RSS fetching is temporarily unavailable.",
+                        "code": "FETCH_RSS_UNAVAILABLE",
+                        "id": "91e6ff44-c63f-4725-9ad0-b7a40d7f7655",
+                        "kind": "server",
+                        "httpStatusCode": 503
+                      }
+                    }
+                  },
                   "INVALID_PARAM": {
                     "value": {
                       "error": {
@@ -46025,6 +46865,27 @@
               }
             }
           },
+          "429": {
+            "description": "Too many requests",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "RATE_LIMIT_EXCEEDED": {
+                    "value": {
+                      "error": {
+                        "message": "Rate limit exceeded. Please try again later.",
+                        "code": "RATE_LIMIT_EXCEEDED",
+                        "id": "d5826d14-3982-4d2e-8011-b9e9f02499ef"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
           "500": {
             "description": "Internal server error",
             "content": {
@@ -48446,6 +49307,181 @@
         }
       }
     },
+    "/following/list": {
+      "post": {
+        "operationId": "post___following___list",
+        "summary": "following/list",
+        "description": "List of following users\n\n**Credential required**: *Yes* / **Permission**: *read:following*",
+        "externalDocs": {
+          "description": "Source code",
+          "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/following/list.ts"
+        },
+        "tags": [
+          "users"
+        ],
+        "security": [
+          {
+            "bearerAuth": []
+          }
+        ],
+        "requestBody": {
+          "required": true,
+          "content": {
+            "application/json": {
+              "schema": {
+                "type": "object",
+                "properties": {
+                  "notification": {
+                    "type": "boolean",
+                    "default": false
+                  },
+                  "sinceId": {
+                    "type": "string",
+                    "format": "misskey:id"
+                  },
+                  "untilId": {
+                    "type": "string",
+                    "format": "misskey:id"
+                  },
+                  "sinceDate": {
+                    "type": "integer"
+                  },
+                  "untilDate": {
+                    "type": "integer"
+                  },
+                  "limit": {
+                    "type": "integer",
+                    "minimum": 1,
+                    "maximum": 100,
+                    "default": 10
+                  }
+                }
+              }
+            }
+          }
+        },
+        "responses": {
+          "200": {
+            "description": "OK (with results)",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "type": "array",
+                  "items": {
+                    "$ref": "#/components/schemas/Following"
+                  }
+                }
+              }
+            }
+          },
+          "400": {
+            "description": "Client error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INVALID_PARAM": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid param.",
+                        "code": "INVALID_PARAM",
+                        "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Authentication error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "CREDENTIAL_REQUIRED": {
+                    "value": {
+                      "error": {
+                        "message": "Credential required.",
+                        "code": "CREDENTIAL_REQUIRED",
+                        "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "AUTHENTICATION_FAILED": {
+                    "value": {
+                      "error": {
+                        "message": "Authentication failed. Please ensure your token is correct.",
+                        "code": "AUTHENTICATION_FAILED",
+                        "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "418": {
+            "description": "I'm Ai",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "I_AM_AI": {
+                    "value": {
+                      "error": {
+                        "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.",
+                        "code": "I_AM_AI",
+                        "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal server error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INTERNAL_ERROR": {
+                    "value": {
+                      "error": {
+                        "message": "Internal error occurred. Please contact us if the error persists.",
+                        "code": "INTERNAL_ERROR",
+                        "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    },
     "/following/requests/accept": {
       "post": {
         "operationId": "post___following___requests___accept",
@@ -51264,6 +52300,12 @@
                           "type": "string",
                           "format": "id"
                         }
+                      },
+                      "category": {
+                        "type": [
+                          "string",
+                          "null"
+                        ]
                       }
                     },
                     "required": [
@@ -53553,186 +54595,7 @@
             "content": {
               "application/json": {
                 "schema": {
-                  "type": "object",
-                  "properties": {
-                    "rp": {
-                      "type": "object",
-                      "properties": {
-                        "id": {
-                          "type": "string"
-                        }
-                      }
-                    },
-                    "user": {
-                      "type": "object",
-                      "properties": {
-                        "id": {
-                          "type": "string"
-                        },
-                        "name": {
-                          "type": "string"
-                        },
-                        "displayName": {
-                          "type": "string"
-                        }
-                      },
-                      "required": [
-                        "id",
-                        "name",
-                        "displayName"
-                      ]
-                    },
-                    "challenge": {
-                      "type": "string"
-                    },
-                    "pubKeyCredParams": {
-                      "type": "array",
-                      "items": {
-                        "type": "object",
-                        "properties": {
-                          "type": {
-                            "type": "string"
-                          },
-                          "alg": {
-                            "type": "number"
-                          }
-                        },
-                        "required": [
-                          "type",
-                          "alg"
-                        ]
-                      }
-                    },
-                    "timeout": {
-                      "type": [
-                        "number",
-                        "null"
-                      ]
-                    },
-                    "excludeCredentials": {
-                      "type": [
-                        "array",
-                        "null"
-                      ],
-                      "items": {
-                        "type": "object",
-                        "properties": {
-                          "id": {
-                            "type": "string"
-                          },
-                          "type": {
-                            "type": "string"
-                          },
-                          "transports": {
-                            "type": "array",
-                            "items": {
-                              "type": "string",
-                              "enum": [
-                                "ble",
-                                "cable",
-                                "hybrid",
-                                "internal",
-                                "nfc",
-                                "smart-card",
-                                "usb"
-                              ]
-                            }
-                          }
-                        },
-                        "required": [
-                          "id",
-                          "type",
-                          "transports"
-                        ]
-                      }
-                    },
-                    "authenticatorSelection": {
-                      "type": [
-                        "object",
-                        "null"
-                      ],
-                      "properties": {
-                        "authenticatorAttachment": {
-                          "type": "string",
-                          "enum": [
-                            "cross-platform",
-                            "platform"
-                          ]
-                        },
-                        "requireResidentKey": {
-                          "type": "boolean"
-                        },
-                        "userVerification": {
-                          "type": "string",
-                          "enum": [
-                            "discouraged",
-                            "preferred",
-                            "required"
-                          ]
-                        }
-                      },
-                      "required": [
-                        "authenticatorAttachment",
-                        "requireResidentKey",
-                        "userVerification"
-                      ]
-                    },
-                    "attestation": {
-                      "type": [
-                        "string",
-                        "null"
-                      ],
-                      "enum": [
-                        "direct",
-                        "enterprise",
-                        "indirect",
-                        "none",
-                        null
-                      ]
-                    },
-                    "extensions": {
-                      "type": [
-                        "object",
-                        "null"
-                      ],
-                      "properties": {
-                        "appid": {
-                          "type": [
-                            "string",
-                            "null"
-                          ]
-                        },
-                        "credProps": {
-                          "type": [
-                            "boolean",
-                            "null"
-                          ]
-                        },
-                        "hmacCreateSecret": {
-                          "type": [
-                            "boolean",
-                            "null"
-                          ]
-                        }
-                      },
-                      "required": [
-                        "appid",
-                        "credProps",
-                        "hmacCreateSecret"
-                      ]
-                    }
-                  },
-                  "required": [
-                    "rp",
-                    "user",
-                    "challenge",
-                    "pubKeyCredParams",
-                    "timeout",
-                    "excludeCredentials",
-                    "authenticatorSelection",
-                    "attestation",
-                    "extensions"
-                  ]
+                  "type": "object"
                 }
               }
             }
@@ -60925,16 +61788,11 @@
       "post": {
         "operationId": "post___i___revoke-token",
         "summary": "i/revoke-token",
-        "description": "No description provided.\n\n**Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.\n**Credential required**: *Yes*",
+        "description": "Revoke an access token of the authenticated user. Requires credential. When called with an access token (third-party app), only the token currently in use can be revoked.\n\n**Credential required**: *No*",
         "externalDocs": {
           "description": "Source code",
           "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/i/revoke-token.ts"
         },
-        "security": [
-          {
-            "bearerAuth": []
-          }
-        ],
         "requestBody": {
           "required": true,
           "content": {
@@ -60984,6 +61842,26 @@
                   "$ref": "#/components/schemas/Error"
                 },
                 "examples": {
+                  "CREDENTIAL_REQUIRED": {
+                    "value": {
+                      "error": {
+                        "message": "Credential required.",
+                        "code": "CREDENTIAL_REQUIRED",
+                        "id": "6f1f0d3a-3d5b-4b1f-9c3e-2a6d1e5b8c47",
+                        "httpStatusCode": 401
+                      }
+                    }
+                  },
+                  "PERMISSION_DENIED": {
+                    "value": {
+                      "error": {
+                        "message": "Permission denied.",
+                        "code": "PERMISSION_DENIED",
+                        "id": "fc20d118-5705-4462-b6c5-2b5b43092cf3",
+                        "httpStatusCode": 403
+                      }
+                    }
+                  },
                   "INVALID_PARAM": {
                     "value": {
                       "error": {
@@ -70615,192 +71493,6 @@
       }
     },
     "/notes/reactions": {
-      "get": {
-        "operationId": "get___notes___reactions",
-        "summary": "notes/reactions",
-        "description": "No description provided.\n\n**Credential required**: *No*",
-        "externalDocs": {
-          "description": "Source code",
-          "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/notes/reactions.ts"
-        },
-        "tags": [
-          "notes"
-        ],
-        "requestBody": {
-          "required": true,
-          "content": {
-            "application/json": {
-              "schema": {
-                "type": "object",
-                "properties": {
-                  "noteId": {
-                    "type": "string",
-                    "format": "misskey:id"
-                  },
-                  "type": {
-                    "type": [
-                      "string",
-                      "null"
-                    ]
-                  },
-                  "limit": {
-                    "type": "integer",
-                    "minimum": 1,
-                    "maximum": 100,
-                    "default": 10
-                  },
-                  "sinceId": {
-                    "type": "string",
-                    "format": "misskey:id"
-                  },
-                  "untilId": {
-                    "type": "string",
-                    "format": "misskey:id"
-                  },
-                  "sinceDate": {
-                    "type": "integer"
-                  },
-                  "untilDate": {
-                    "type": "integer"
-                  }
-                },
-                "required": [
-                  "noteId"
-                ]
-              }
-            }
-          }
-        },
-        "responses": {
-          "200": {
-            "description": "OK (with results)",
-            "content": {
-              "application/json": {
-                "schema": {
-                  "type": "array",
-                  "items": {
-                    "$ref": "#/components/schemas/NoteReaction"
-                  }
-                }
-              }
-            }
-          },
-          "400": {
-            "description": "Client error",
-            "content": {
-              "application/json": {
-                "schema": {
-                  "$ref": "#/components/schemas/Error"
-                },
-                "examples": {
-                  "NO_SUCH_NOTE": {
-                    "value": {
-                      "error": {
-                        "message": "No such note.",
-                        "code": "NO_SUCH_NOTE",
-                        "id": "263fff3d-d0e1-4af4-bea7-8408059b451a"
-                      }
-                    }
-                  },
-                  "INVALID_PARAM": {
-                    "value": {
-                      "error": {
-                        "message": "Invalid param.",
-                        "code": "INVALID_PARAM",
-                        "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "401": {
-            "description": "Authentication error",
-            "content": {
-              "application/json": {
-                "schema": {
-                  "$ref": "#/components/schemas/Error"
-                },
-                "examples": {
-                  "CREDENTIAL_REQUIRED": {
-                    "value": {
-                      "error": {
-                        "message": "Credential required.",
-                        "code": "CREDENTIAL_REQUIRED",
-                        "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "403": {
-            "description": "Forbidden error",
-            "content": {
-              "application/json": {
-                "schema": {
-                  "$ref": "#/components/schemas/Error"
-                },
-                "examples": {
-                  "AUTHENTICATION_FAILED": {
-                    "value": {
-                      "error": {
-                        "message": "Authentication failed. Please ensure your token is correct.",
-                        "code": "AUTHENTICATION_FAILED",
-                        "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "418": {
-            "description": "I'm Ai",
-            "content": {
-              "application/json": {
-                "schema": {
-                  "$ref": "#/components/schemas/Error"
-                },
-                "examples": {
-                  "I_AM_AI": {
-                    "value": {
-                      "error": {
-                        "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.",
-                        "code": "I_AM_AI",
-                        "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "500": {
-            "description": "Internal server error",
-            "content": {
-              "application/json": {
-                "schema": {
-                  "$ref": "#/components/schemas/Error"
-                },
-                "examples": {
-                  "INTERNAL_ERROR": {
-                    "value": {
-                      "error": {
-                        "message": "Internal error occurred. Please contact us if the error persists.",
-                        "code": "INTERNAL_ERROR",
-                        "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-      },
       "post": {
         "operationId": "post___notes___reactions",
         "summary": "notes/reactions",
@@ -71740,6 +72432,18 @@
                   "query": {
                     "type": "string"
                   },
+                  "rangeStartAt": {
+                    "type": [
+                      "integer",
+                      "null"
+                    ]
+                  },
+                  "rangeEndAt": {
+                    "type": [
+                      "integer",
+                      "null"
+                    ]
+                  },
                   "sinceId": {
                     "type": "string",
                     "format": "misskey:id"
@@ -72737,6 +73441,15 @@
                       }
                     }
                   },
+                  "ALREADY_MUTING": {
+                    "value": {
+                      "error": {
+                        "message": "You are already muting that thread.",
+                        "code": "ALREADY_MUTING",
+                        "id": "c146e22d-1141-4b31-b28d-176371014d18"
+                      }
+                    }
+                  },
                   "INVALID_PARAM": {
                     "value": {
                       "error": {
@@ -79805,6 +80518,9 @@
                     "originalUsersCount": {
                       "type": "number"
                     },
+                    "reactionsCount": {
+                      "type": "number"
+                    },
                     "instances": {
                       "type": "number"
                     },
@@ -79820,6 +80536,7 @@
                     "originalNotesCount",
                     "usersCount",
                     "originalUsersCount",
+                    "reactionsCount",
                     "instances",
                     "driveUsageLocal",
                     "driveUsageRemote"
@@ -92888,6 +93605,9 @@
           "canHideAds": {
             "type": "boolean"
           },
+          "canCreateChannel": {
+            "type": "boolean"
+          },
           "driveCapacityMb": {
             "type": "integer"
           },
@@ -92984,6 +93704,7 @@
           "canSearchUsers",
           "canUseTranslator",
           "canHideAds",
+          "canCreateChannel",
           "driveCapacityMb",
           "maxFileSizeMb",
           "uploadableFileTypes",

Get diff files from Workflow Page

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.