Skip to content

upstream: 2026.10.0 - #14

Open
sync-agent[bot] wants to merge 657 commits into
developfrom
upstream/2026.10.0
Open

sync-agent[bot] wants to merge 657 commits into
developfrom
upstream/2026.10.0

Conversation

@sync-agent

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

Copy link
Copy Markdown

General

  • Enhance: 翻訳の更新

Client

  • Fix: ユーザーの「概要」ページで引っ張って更新しても何も更新されない問題を修正
    (Cherry-picked from shiroha-a@c946a42)

Server

  • Fix: HTTP Signaturesの(request-target)にクエリ文字列が含まれない問題を修正
  • Fix: クリップから同じノートを繰り返し削除すると、ノートの被クリップ数が負の値を取る問題を修正
  • Fix: 添付ファイルの配信に関する挙動の修正
  • Fix: セキュリティに関する修正

syuilo and others added 30 commits July 16, 2026 09:07
* wip

* Update measure-frontend-browser-comparison.mts

* Update frontend-browser-report.mts

* Update frontend-browser-report.mts

* Update frontend-browser-report.mts

* Update frontend-browser-report.mts

* Update frontend-browser-report.mts

* Update frontend-browser-report.mts

* Update frontend-browser-report.mts

* refactor

* fix

* Update chrome.mts

* refactor

* wip

* fix

* Update frontend-browser-metrics-report.yml

* Update frontend-browser-report.mts

* refactor

* wip

* Update frontend-browser-report.mts

* wip

* wip

* wip

* Revert "wip"

This reverts commit ce76570.

* Update frontend-browser-metrics-report.yml

* Update frontend-browser-report.mts

* Update frontend-browser-report.mts

* Update frontend-browser-report.mts

* playwright

* Update chrome.mts

* refactor

* wip

* Update measure-frontend-browser-comparison.mts

* clean up

* Update measure-frontend-browser-comparison.mts

* fix

* Update chrome.mts

* refactor

* Update frontend-browser-metrics-report.yml
* enhance: プロセスのライフサイクルに合わせてlogger初期化・終了+logger設定機構の追加

* fix

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
* refactor(misskey-js): モデレーションログの型を手動で書かずにすむように

* fix lint
kakkokari-gtyih and others added 23 commits September 28, 2026 18:09
* fix(test-server): e2eサーバのバンドルをViteのmodule runnerを通さず読み込む (yojo-art/cherrypick#1395)

* clean up

---------

Co-authored-by: 4ster1sk <146138447+4ster1sk@users.noreply.github.com>
…-dev#17941)

* fix(backend): include query string in HTTP Signature request-target

Draft HTTP Signatures require (request-target) to be the method plus
the path and query. Signing pathname only breaks federation with
implementations that verify the query string, such as Mastodon.

Fixes misskey-dev#17734

* fix(backend): keep empty query delimiter in HTTP Signature request-target

URL.search drops a trailing "?" when the query is empty, so
https://example.com/outbox?#ignored was signed as /outbox instead of
/outbox?. Preserve that delimiter from the serialized href.

* test(backend): cover trailing ? without hash in HTTP Signature request-target

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

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…-dev#17974)

* fix(backend): クリップから同じノートを繰り返し削除すると clippedCount が負数になる問題の修正

* test(backend): クリップに追加されていないノートは削除できず clippedCount も減らないことを検証
fix(frontend): add null guard for MkModal content children[0]

When a modal opens before its slot content renders,
content.value.children[0] is undefined, causing:
TypeError: Cannot read properties of undefined (reading 'addEventListener')

This crashes all modals including the user-setup wizard.

Co-authored-by: しろは <admin@k7a.org>
* New translations ja-jp.yml (Italian)

[ci skip]

* New translations ja-jp.yml (Indonesian)

[ci skip]

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

[ci skip]

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

[ci skip]

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

[ci skip]
* fix(frontend): プロフィールページの pull to refresh が何も再取得しない (shiroha-a/misskey-ts#3150)

Co-Authored-By: しろは <admin@k7a.org>

* clean up

* Update Changelog

* clean up

* Update Changelog

* fix

---------

Co-authored-by: しろは <admin@k7a.org>
* fix(backend): respect following/followers visibility in federation follow endpoints

* fix
* fix(backend): prevent registration ticket reuse while its pending signup is still valid

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>

* fix(backend): apply ugcVisibilityForVisitor to user web feeds

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>

* fix(backend): apply ugcVisibilityForVisitor to streaming delivery

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>

* fix(backend): apply ugcVisibilityForVisitor to anonymous note read paths

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix(backend): restrict role timeline streaming to public explorable roles

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix(backend): exclude notes hidden by makeNotesHiddenBefore/makeNotesFollowersOnlyBefore from user web feeds

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>

* fix(backend): refuse to translate notes hidden by makeNotesHiddenBefore/makeNotesFollowersOnlyBefore

* fix(backend): hide non-public role IDs from anonymous avatar decoration list

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>

* fix(backend): apply ugcVisibilityForVisitor to users/show with userIds

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>

* fix(backend): hide reply targets that the viewer cannot see in streaming delivery

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix(backend): ストリーム接続直後の要求を受信順に処理する

チャンネル生成中に後続の要求が届くと、未登録のチャンネル宛てとして捨てられ、ジョブキューウィジェットが次の定期配信まで初期値を表示できなかった。同一接続の受信処理を直列化し、接続の初期化が完了してから後続の要求を処理する。切断済みの接続では待機中の要求や生成直後のチャンネルを使わない。

* fix(backend): クエリキャッシュにRedisのSentinel接続設定を引き継ぐ

TypeORMのクエリキャッシュがRedis設定を接続先などの項目だけで組み直していたため、Sentinelによるprimaryの探索とREADONLY時の再接続処理が失われていた。接続先がreplicaを返す構成では、統計APIのキャッシュ書き込みがREADONLYで失敗する。

通常のRedisクライアントと同じ正規化済み設定を渡し、クエリ専用のkeyPrefixだけを維持することで、認証や既定値を揃えたままprimaryへ接続できるようにする。

* docs: document the changes in behavior when a proxy is configured

* fix(backend): enforce rate limit on passkey signin

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>

* fix(backend): check note visibility before allowing poll votes

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>

* fix(backend): check note visibility before favoriting a note

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>

* fix(backend): check chat message participation before unreacting

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>

* fix(backend): normalize chat react/unreact errors to no such message

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>

* fix(backend): bind relay Accept/Reject to the relay endpoint itself

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>

* fix(backend): gate reaction diffs in show-partial-bulk on visibility

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>

* fix(backend): keep remote content attached to local content visible to visitors under ugcVisibilityForVisitor: local

Only standalone listings of remote content (timelines, search, user notes)
are gated for visitors; replies, quotes, renotes and conversations stay
visible. 'none' still hides everything.

* chore(backend): add TODO for ugcVisibilityForVisitor handling of attached remote notes

* fix(backend): only map chat message access errors to no such message

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix(backend): apply ugcVisibilityForVisitor: none to show-partial-bulk

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(backend): add TODO for ugcVisibilityForVisitor handling in reaction diffs and note stream events

* fix docs

* refactor

---------

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: KanariKanaru <93921745+kanarikanaru@users.noreply.github.com>
* fix(backend): 内蔵ストレージ利用時に画像サムネイルの配信が途中で終了する問題を修正 (HanaMisskey#434)

* fix(backend): 内部保存ファイルのキーに含まれるパスを拒否する (HanaMisskey#436)

内部保存ファイルのアクセスキーは単一ファイル名として扱う。DBに一致するキーでも、パスを含む入力やドットディレクトリはパス解決前に拒否する。

---------

Co-authored-by: KanariKanaru <93921745+kanarikanaru@users.noreply.github.com>
* New translations ja-jp.yml (Chinese Simplified)

[ci skip]

* New translations ja-jp.yml (Korean (Gyeongsang))

[ci skip]
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* fix(backend): add X-Frame-Options and CSP frame-ancestors to OAuth routes

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>

* fix(backend): escape Meilisearch filter values

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>

---------

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>
* fix(backend): re-select download agent for each redirect target

* fix(backend): enforce local-address checks in DownloadService

---------

Co-authored-by: hacchoomiso <210007369+hacchoomiso@users.noreply.github.com>
@github-actions

github-actions Bot commented Oct 6, 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.10.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": {
@@ -44927,7 +45682,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 +45690,11 @@
         "tags": [
           "federation"
         ],
+        "security": [
+          {
+            "bearerAuth": []
+          }
+        ],
         "requestBody": {
           "required": true,
           "content": {
@@ -45042,6 +45802,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 +46430,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 +46538,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 +46783,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 +46891,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 +49333,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 +52326,12 @@
                           "type": "string",
                           "format": "id"
                         }
+                      },
+                      "category": {
+                        "type": [
+                          "string",
+                          "null"
+                        ]
                       }
                     },
                     "required": [
@@ -53553,186 +54621,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 +61814,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 +61868,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 +71519,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 +72458,18 @@
                   "query": {
                     "type": "string"
                   },
+                  "rangeStartAt": {
+                    "type": [
+                      "integer",
+                      "null"
+                    ]
+                  },
+                  "rangeEndAt": {
+                    "type": [
+                      "integer",
+                      "null"
+                    ]
+                  },
                   "sinceId": {
                     "type": "string",
                     "format": "misskey:id"
@@ -72737,6 +73467,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 +80544,9 @@
                     "originalUsersCount": {
                       "type": "number"
                     },
+                    "reactionsCount": {
+                      "type": "number"
+                    },
                     "instances": {
                       "type": "number"
                     },
@@ -79820,6 +80562,7 @@
                     "originalNotesCount",
                     "usersCount",
                     "originalUsersCount",
+                    "reactionsCount",
                     "instances",
                     "driveUsageLocal",
                     "driveUsageRemote"
@@ -80032,6 +80775,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 +81081,18 @@
                 "properties": {
                   "endpoint": {
                     "type": "string"
+                  },
+                  "auth": {
+                    "type": "string"
+                  },
+                  "publickey": {
+                    "type": "string"
                   }
                 },
                 "required": [
-                  "endpoint"
+                  "endpoint",
+                  "auth",
+                  "publickey"
                 ]
               }
             }
@@ -80426,6 +81186,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": {
@@ -92888,6 +93669,9 @@
           "canHideAds": {
             "type": "boolean"
           },
+          "canCreateChannel": {
+            "type": "boolean"
+          },
           "driveCapacityMb": {
             "type": "integer"
           },
@@ -92984,6 +93768,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.