Skip to content

upstream: 2026.10.1 - #15

Open
sync-agent[bot] wants to merge 695 commits into
developfrom
upstream/2026.10.1
Open

sync-agent[bot] wants to merge 695 commits into
developfrom
upstream/2026.10.1

Conversation

@sync-agent

@sync-agent sync-agent Bot commented Oct 27, 2026

Copy link
Copy Markdown

Note

今回のリリースではMisskeyの動作要件やSentryの設定方法などが変更されます。必ずアップグレード前にお使いの環境をご確認ください。

  • Sentry SDKをv11に更新したため、Sentryを利用しているサーバーでは設定の変更が必要になる場合があります。
    • Sentry v11でsendDefaultPiiが削除され、収集する項目を個別に指定するdataCollectionに置き換えられました。
      • sentryForBackend.options.sendDefaultPii / sentryForFrontend.options.sendDefaultPiiを設定しているサーバーは対応が必要です。 このオプションは無視されるようになり、設定されている場合は起動時に警告を出力します。同じ収集範囲を維持するにはdataCollection: {}に書き換えてください。
      • 設定していない場合、対応は不要です。Sentry v11はdataCollection未指定時にすべてを収集しますが、Misskeyは利用者の情報が意図せず送信されないよう、収集範囲を絞った既定を適用します(ユーザー情報・Cookie・URLクエリパラメータ・HTTPボディ・DBクエリの値を送信せず、中継元を特定できるヘッダーを除外)。
      • 収集範囲を変更する場合はdataCollectionを明示してください。Misskeyの既定をすべて置き換えるため、dataCollection: {}と書くとSentry本来の既定(すべて収集)に戻ります。
    • sentryForBackend.options.profilesSampleRateを設定している場合、v11で削除されたため無視されます。プロファイリングの有効化は引き続きsentryForBackend.enableNodeProfilingで行います。
    • 詳細は https://docs.sentry.io/platforms/javascript/migration/v10-to-v11/ を参照してください。
  • Node.jsのセキュリティアップデートに伴い、最低動作バージョンを 22.23.4 / 24.22.1 / 26.12.1 に引き上げました。
    • Docker Image は Node.js 26.12.1-trixie に更新されています。

General

  • Feat: お知らせに自動アーカイブ日時を設定できるように
  • Feat: アカウント作成から一定期間経っていないアカウントからのフォローを自動的にフォロー申請にできるように
  • Enhance: 依存関係の更新
  • Fix: センシティブな画像をアイコン・バナーに指定できないように
  • Fix: セキュリティに関する修正

Client

  • Feat: デッキにクリップのカラムを追加できるように
  • Enhance: アイコン画像・バナー画像を外せるように

Server

  • Enhance: ノート中のURLを正規化して禁止ワードを判定するように
  • Fix: ローカル限定絵文字でリモートノートのリノートにリアクションできてしまう問題を修正
  • Fix: サーバーの紹介にHTMLを使うとリンクプレビューの説明文にHTMLタグが表示される問題を修正
  • Fix: ルーム招待時にブロック状態を考慮するように

syuilo and others added 30 commits July 17, 2026 17:29
…v#17740)

* fix(frontend): MkLightboxを上下方向にスワイプして閉じることができないことがある問題を修正

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* review fixes
* fix(backend): multipart apiのエラー時に一時ディレクトリが消えない問題を修正

* fix

* fix

* Update Changelog
* deps: update dependencies

* update changelog-checker lockfile

* deps: update typescript to v7

* fix: replace tsgo -> tsc

* fix: replace tsgo -> tsc

* deps: update other major dependencies, downgrade typescript for frontend-stack
…宛先に含まれていても正しく認識されない問題を修正 (misskey-dev#17736)

* fix(frontend): ensure checkMissingMention considers mentions with host for local users

* docs(changelog): update changelog
…/WidgetBirthday (misskey-dev#17746)

* fix(frontend): use instant postform for createNoteFromTheFile/gallery/WidgetBirthday

* docs(changelog): update changelog

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
* fix: reply note visibility check

* docs(changelog): update changelog

* fix: wrong operator

* docs(changelog): fix insert position and wording

---------

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

* enhance: OTel設定時、JSONログにtrace_id, span_id, trace_flagがつくように

* fix
* refactor(gh): CI用スクリプトをpackageとして整理

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* remove old scripts

* migrate

* refactor 1

* refactor 2

* fix comment

* fix

* fix

* fix

* fix

* remove vite-node from changelog-checker

* fix lint

* fix

* refactor

* update deps

* fix

* spec: rename packages
…ey-dev#17757)

* refactor(gh): unify frontend diagnostics

* refactor(gh): unify frontend diagnostics markdown rendering

* docs(gh): restore frontend diagnostics comments

* wip

* fix

* refactor: 呼称をbase/headに統一

* tweak

* Update types.ts

* fix
kakkokari-gtyih and others added 23 commits October 16, 2026 19:36
* fix: プロフィールセットアップダイアログでボタンがフッターより手前に描画される問題を修正

MkButton.vue が全ボタンに position:relative + z-index:1 を持たせているため、
.pageFooter (position:sticky, z-index未指定=auto) と重なった際にpageMain側の
ボタン(アイコン変更・保存等)がフッターより手前に描画されてしまっていた。
先のpadding-bottom修正だけでは、実機の画面サイズによっては重なりが解消し
きらず、根本原因のstacking order自体を直す必要があった。

.pageFooterにz-index: 10を明示し、pageMain側の子要素が常にフッターの
背面に描画されるようにした。elementFromPoint()による重なり位置での
ヒットテストで、修正後は保存ボタンではなくフッター側が最前面になることを
確認済み。

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

* fix: プロフィールセットアップダイアログでフッターに要素が重なる問題を修正

.pageMainにposition:stickyなpageFooter分のpadding-bottomが無く、横長など
縦方向が狭い画面でスクロール最下部の要素(アイコン変更ボタン・自己紹介欄の
保存ボタン等)がフッターの裏に隠れていた。実機のgetBoundingClientRect()計測で
保存ボタンの下端(285.46px)がフッター範囲(208.65-266px)へ食い込んでいることを
確認し、pageMainにpadding-bottom: 72pxを追加。あわせてFollowページ(page===3)
のみpageRoot/pageMainのラップ構造が欠けていたため、他ページと揃えた。

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

* clean up

* Update Changelog

---------

Co-authored-by: Zel9278 <43949163+Zel9278@users.noreply.github.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
* deps: update dependencies

* deps: update dependencies

* fix(frontend-builder): fix facade chunk detection

* deps: update vue-tsc to 3.3.13

* deps: rollback vue-tsc to 3.3.11

* fix: migrate msw

* fix: migrate msw v3
* test(federation): cover Move followers on destination server

* fix(federation): transfer followers to local Move destinations
* fix(backend): strip HTML from instance preview descriptions

* fix(backend): await HTML rendering in metadata tests

* fix(backend): address instance description review feedback

* fix(backend): preserve table boundaries and discard non-text HTML

* fix(backend): handle encoded breaks and unblock coverage upload

* fix(backend): preserve section boundaries in preview descriptions
* fix: センシティブな画像をアイコン・バナーに指定できないように

* センシティブなファイルを選択できないように

* tweak design

* fix

* Update Changelog

* enhance(frontend): アイコン画像・バナー画像を外せるように

* use option

* use options

* いろいろ変えた

* refactor

* Update packages/frontend/src/os.ts

Co-authored-by: anatawa12 <anatawa12@icloud.com>

* Update os.ts

* Update os.ts

* Update profile.vue

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update CHANGELOG.md

* fix and refactor

* fix

* fix changelog

* fix

* fix

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Co-authored-by: anatawa12 <anatawa12@icloud.com>
* fix(backend): serialize concurrent signups with an advisory lock

Local usernames have host = NULL, so the (usernameLower, host) composite
unique index cannot reject duplicate local usernames. Take a per-username
pg advisory transaction lock before the duplicate check to close the
check-then-insert TOCTOU race (strix vuln-0039).

* fix(frontend): load AP raw data on first open of admin user page

* fix(backend): 未認証アクセス可でロールポリシー制限付きのエンドポイントで例外が発生する問題を修正

* fix(backend): ignore local test-federation volumes

---------

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>
* New translations ja-jp.yml (Italian)

[ci skip]

* New translations ja-jp.yml (Spanish)

[ci skip]

* New translations ja-jp.yml (Korean)

[ci skip]

* New translations ja-jp.yml (Italian)

[ci skip]
* refactor(backend): consolidate note reaction handling in streaming

* perf(backend): reuse cached muted instances set in streaming channels

* perf(backend): deduplicate lastActiveDate updates per user in streaming

* perf(backend): bound per-connection memory usage of the streaming server

* fix(backend): deliver pre-packed notes to antenna streams like other timelines

* fix
…skey-dev#18039)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* fix(backend): ブロックしている・されているユーザーをチャットルームに招待できる問題を修正

* Update Changelog
* chore(deps): update dependency storybook to v10.6.2 [security]

* fix(deps): update dependency fastify to v5.12.6 [security]

* deps: update dependencies

* deps(frontend): update happy-dom

* fix: rollback vue-tsc to v3.3.11

* fix

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* New translations ja-jp.yml (Chinese Simplified)

[ci skip]

* New translations ja-jp.yml (Catalan)

[ci skip]

* New translations ja-jp.yml (Spanish)

[ci skip]

* New translations ja-jp.yml (Korean)

[ci skip]
* fix(backend): ノート中のURLを正規化して禁止ワードを判定するように

* add tests

* update changelog

* deps: update mfm-js to 0.28.0

* fix review

* perf
* fix(backend): お知らせ更新後の値をUPDATE RETURNINGで取得するように

- レプリカ構成で更新直後に古い値を読んでしまい、自動アーカイブの再予約判定を誤る可能性があったのを修正
- 起動時の予約復元処理のコメントを実際の目的(Redisのジョブ消失からの復元)に合わせて修正

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* refactor: canUseLocalOnlyEmojiの条件から絵文字のlocalOnly判定を分離

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* refactor(backend): アカウント作成後の期間によるフォロー承認判定の命名を具体化

- shouldRequireFollowApproval → shouldRequireFollowApprovalByAccountAge
- requiresAgeBasedApproval → requiresApprovalByAccountAge (実年齢との混同を避ける)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(backend): URLのパス以降に含まれる禁止ワードのe2eテストを追加

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(backend): トートロジーになっていたSentryの既定収集範囲のテストを削除

既定値が適用されることは`restricts data collection by default`で検証済みで、
既定を絞る理由は定数側のコメントに記載済み

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

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

差分はこちら
--- base
+++ head
@@ -1,7 +1,7 @@
 {
   "openapi": "3.1.0",
   "info": {
-    "version": "2026.3.2",
+    "version": "2026.10.1",
     "title": "Misskey API"
   },
   "externalDocs": {
@@ -2481,6 +2481,13 @@
                     ],
                     "format": "misskey:id",
                     "default": null
+                  },
+                  "autoArchiveAt": {
+                    "type": [
+                      "integer",
+                      "null"
+                    ],
+                    "default": null
                   }
                 },
                 "required": [
@@ -2549,6 +2556,15 @@
                   "$ref": "#/components/schemas/Error"
                 },
                 "examples": {
+                  "INVALID_AUTO_ARCHIVE_AT": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid auto archive date.",
+                        "code": "INVALID_AUTO_ARCHIVE_AT",
+                        "id": "2a892bd5-487d-46a2-a5fe-3d85ad51defe"
+                      }
+                    }
+                  },
                   "INVALID_PARAM": {
                     "value": {
                       "error": {
@@ -2923,6 +2939,13 @@
                       "isActive": {
                         "type": "boolean"
                       },
+                      "autoArchiveAt": {
+                        "type": [
+                          "string",
+                          "null"
+                        ],
+                        "format": "date-time"
+                      },
                       "forExistingUsers": {
                         "type": "boolean"
                       },
@@ -2957,6 +2980,7 @@
                       "icon",
                       "display",
                       "isActive",
+                      "autoArchiveAt",
                       "forExistingUsers",
                       "silence",
                       "needConfirmationToRead",
@@ -3148,6 +3172,12 @@
                   },
                   "isActive": {
                     "type": "boolean"
+                  },
+                  "autoArchiveAt": {
+                    "type": [
+                      "integer",
+                      "null"
+                    ]
                   }
                 },
                 "required": [
@@ -3178,6 +3208,15 @@
                       }
                     }
                   },
+                  "INVALID_AUTO_ARCHIVE_AT": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid auto archive date.",
+                        "code": "INVALID_AUTO_ARCHIVE_AT",
+                        "id": "01b83d7b-2fd5-4d7c-86c4-d03144d16355"
+                      }
+                    }
+                  },
                   "INVALID_PARAM": {
                     "value": {
                       "error": {
@@ -3318,6 +3357,12 @@
                     "items": {
                       "type": "string"
                     }
+                  },
+                  "category": {
+                    "type": [
+                      "string",
+                      "null"
+                    ]
                   }
                 },
                 "required": [
@@ -3367,6 +3412,12 @@
                         "type": "string",
                         "format": "id"
                       }
+                    },
+                    "category": {
+                      "type": [
+                        "string",
+                        "null"
+                      ]
                     }
                   },
                   "required": [
@@ -3376,7 +3427,8 @@
                     "name",
                     "description",
                     "url",
-                    "roleIdsThatCanBeUsedThisDecoration"
+                    "roleIdsThatCanBeUsedThisDecoration",
+                    "category"
                   ]
                 }
               }
@@ -3735,6 +3787,12 @@
                           "type": "string",
                           "format": "id"
                         }
+                      },
+                      "category": {
+                        "type": [
+                          "string",
+                          "null"
+                        ]
                       }
                     },
                     "required": [
@@ -3903,6 +3961,12 @@
                     "items": {
                       "type": "string"
                     }
+                  },
+                  "category": {
+                    "type": [
+                      "string",
+                      "null"
+                    ]
                   }
                 },
                 "required": [
@@ -9720,6 +9784,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 +10129,12 @@
                         "null"
                       ]
                     },
+                    "urlPreviewSensitiveList": {
+                      "type": "array",
+                      "items": {
+                        "type": "string"
+                      }
+                    },
                     "federation": {
                       "type": "string",
                       "enum": [
@@ -10155,6 +10243,10 @@
                     "sensitiveMediaDetectionSensitivity",
                     "setSensitiveFlagAutomatically",
                     "enableSensitiveMediaDetectionForVideos",
+                    "sensitiveMediaDetectionApiUrl",
+                    "sensitiveMediaDetectionApiKey",
+                    "sensitiveMediaDetectionTimeout",
+                    "sensitiveMediaDetectionMaxImagesPerRequest",
                     "proxyAccountId",
                     "email",
                     "smtpSecure",
@@ -10227,6 +10319,7 @@
                     "urlPreviewRequireContentLength",
                     "urlPreviewUserAgent",
                     "urlPreviewSummaryProxyUrl",
+                    "urlPreviewSensitiveList",
                     "federation",
                     "federationHosts",
                     "deliverSuspendedSoftware",
@@ -11051,8 +11144,7 @@
                         "wait",
                         "delayed",
                         "completed",
-                        "failed",
-                        "paused"
+                        "failed"
                       ]
                     }
                   },
@@ -11190,6 +11282,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 +12247,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 +12916,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 +13630,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 +18588,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 +19668,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 +20008,15 @@
                       "null"
                     ]
                   },
+                  "urlPreviewSensitiveList": {
+                    "type": [
+                      "array",
+                      "null"
+                    ],
+                    "items": {
+                      "type": "string"
+                    }
+                  },
                   "federation": {
                     "type": "string",
                     "enum": [
@@ -20944,6 +21567,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 +25260,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": {
@@ -44927,7 +45721,7 @@
       "post": {
         "operationId": "post___federation___update-remote-user",
         "summary": "federation/update-remote-user",
-        "description": "No description provided.\n\n**Credential required**: *No*",
+        "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *read:account*",
         "externalDocs": {
           "description": "Source code",
           "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/federation/update-remote-user.ts"
@@ -44935,6 +45729,11 @@
         "tags": [
           "federation"
         ],
+        "security": [
+          {
+            "bearerAuth": []
+          }
+        ],
         "requestBody": {
           "required": true,
           "content": {
@@ -45042,6 +45841,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": {
@@ -45649,6 +46469,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 +46577,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 +46822,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 +46930,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 +49372,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 +52365,12 @@
                           "type": "string",
                           "format": "id"
                         }
+                      },
+                      "category": {
+                        "type": [
+                          "string",
+                          "null"
+                        ]
                       }
                     },
                     "required": [
@@ -52028,7 +53135,8 @@
                 "type": "object",
                 "properties": {
                   "tag": {
-                    "type": "string"
+                    "type": "string",
+                    "maxLength": 128
                   }
                 },
                 "required": [
@@ -52490,7 +53598,8 @@
                 "type": "object",
                 "properties": {
                   "tag": {
-                    "type": "string"
+                    "type": "string",
+                    "maxLength": 128
                   },
                   "limit": {
                     "type": "integer",
@@ -53553,186 +54662,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 +61855,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 +61909,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": {
@@ -61807,6 +62752,22 @@
                   "autoAcceptFollowed": {
                     "type": "boolean"
                   },
+                  "followApprovalLocalSeconds": {
+                    "type": [
+                      "integer",
+                      "null"
+                    ],
+                    "minimum": 0,
+                    "maximum": 2592000
+                  },
+                  "followApprovalRemoteSeconds": {
+                    "type": [
+                      "integer",
+                      "null"
+                    ],
+                    "minimum": 0,
+                    "maximum": 2592000
+                  },
                   "noCrawle": {
                     "type": "boolean"
                   },
@@ -62727,6 +63688,24 @@
                       }
                     }
                   },
+                  "AVATAR_IS_SENSITIVE": {
+                    "value": {
+                      "error": {
+                        "message": "The file specified as an avatar is marked as sensitive.",
+                        "code": "AVATAR_IS_SENSITIVE",
+                        "id": "71bb5e53-4742-4609-b465-36081e131208"
+                      }
+                    }
+                  },
+                  "BANNER_IS_SENSITIVE": {
+                    "value": {
+                      "error": {
+                        "message": "The file specified as a banner is marked as sensitive.",
+                        "code": "BANNER_IS_SENSITIVE",
+                        "id": "e148b34c-9f33-4300-93e0-7817008fb366"
+                      }
+                    }
+                  },
                   "NO_SUCH_PAGE": {
                     "value": {
                       "error": {
@@ -70615,192 +71594,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 +72533,18 @@
                   "query": {
                     "type": "string"
                   },
+                  "rangeStartAt": {
+                    "type": [
+                      "integer",
+                      "null"
+                    ]
+                  },
+                  "rangeEndAt": {
+                    "type": [
+                      "integer",
+                      "null"
+                    ]
+                  },
                   "sinceId": {
                     "type": "string",
                     "format": "misskey:id"
@@ -71948,7 +72753,8 @@
                         "properties": {
                           "tag": {
                             "type": "string",
-                            "minLength": 1
+                            "minLength": 1,
+                            "maxLength": 128
                           }
                         },
                         "required": [
@@ -71965,7 +72771,8 @@
                               "type": "array",
                               "items": {
                                 "type": "string",
-                                "minLength": 1
+                                "minLength": 1,
+                                "maxLength": 128
                               },
                               "minItems": 1
                             },
@@ -72737,6 +73544,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 +80621,9 @@
                     "originalUsersCount": {
                       "type": "number"
                     },
+                    "reactionsCount": {
+                      "type": "number"
+                    },
                     "instances": {
                       "type": "number"
                     },
@@ -79820,6 +80639,7 @@
                     "originalNotesCount",
                     "usersCount",
                     "originalUsersCount",
+                    "reactionsCount",
                     "instances",
                     "driveUsageLocal",
                     "driveUsageRemote"
@@ -80032,6 +80852,15 @@
                   "$ref": "#/components/schemas/Error"
                 },
                 "examples": {
+                  "INVALID_ENDPOINT": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid push endpoint.",
+                        "code": "INVALID_ENDPOINT",
+                        "id": "4432adbe-17c0-4f9f-b43c-9ceb2f8910fe"
+                      }
+                    }
+                  },
                   "INVALID_PARAM": {
                     "value": {
                       "error": {
@@ -80329,10 +81158,18 @@
                 "properties": {
                   "endpoint": {
                     "type": "string"
+                  },
+                  "auth": {
+                    "type": "string"
+                  },
+                  "publickey": {
+                    "type": "string"
                   }
                 },
                 "required": [
-                  "endpoint"
+                  "endpoint",
+                  "auth",
+                  "publickey"
                 ]
               }
             }
@@ -80426,6 +81263,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": {
@@ -88177,6 +89035,18 @@
           "autoAcceptFollowed": {
             "type": "boolean"
           },
+          "followApprovalLocalSeconds": {
+            "type": [
+              "number",
+              "null"
+            ]
+          },
+          "followApprovalRemoteSeconds": {
+            "type": [
+              "number",
+              "null"
+            ]
+          },
           "noCrawle": {
             "type": "boolean"
           },
@@ -89202,6 +90072,8 @@
           "autoSensitive",
           "carefulBot",
           "autoAcceptFollowed",
+          "followApprovalLocalSeconds",
+          "followApprovalRemoteSeconds",
           "noCrawle",
           "preventAiLearning",
           "isExplorable",
@@ -92888,6 +93760,9 @@
           "canHideAds": {
             "type": "boolean"
           },
+          "canCreateChannel": {
+            "type": "boolean"
+          },
           "driveCapacityMb": {
             "type": "integer"
           },
@@ -92984,6 +93859,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.