Feature/v2026.7.0 - #30
Merged
Merged
Conversation
* refactor(dev): refactor of backend memory comparison workflow * fix
将来的にフロントエンドでもheap snaphotを集計したくなった時などのため あとpairedDeltaSummaryを共通化
* chore: センシティブ判定を外部サービス扱いにする * fix review * regenerate * fix review * fix review * regenerate * fix CHANGELOG.md * fix review * add comment --------- Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
* enhance: コントロールパネルから二要素認証を解除できるように * Update Changelog --------- Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
* [skip ci] Update CHANGELOG.md (prepend template) * fix(dev): tweak frontend-bundle-report * Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop * enhance(dev): tweak Frontend Chunk Report * fix(dev): tweak frontend-bundle-report-comment * enhance(dev): tweak Frontend Chunk Report * enhance(dev): tweak Frontend Chunk Report * enhance(dev): improve backend memory usage comparison workflow (#17591) * wip * Update get-backend-memory.yml * [ci skip] tweak table * enhance(dev): tweak report-backend-memory * refactor(dev): report-backend-memoryのmarkdown生成ロジックを分離 * enhance(dev): tweak report-backend-memory * enhance(dev): tweak report-backend-memory * enhance(dev): tweak report-backend-memory * chore(dev): refactor * refactor(dev): unify frontend-bundle-visualizer-report.mjs and frontend-js-size.mjs * chore(dev): fix typo * refactor(dev): refactor frontend-js-size.mjs * chore(dev): tweak frontend-js-size.mjs * chore(dev): tweak frontend-js-size.mjs * chore(dev): tweak frontend-js-size.mjs * chore(ci): simplify FFmpeg installation in workflows (#17612) * chore(ci): simplify FFmpeg installation in workflows * fix * fix(dev): tweak frontend-js-size.mjs * Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop * enhance(dev): improve Frontend Bundle Report * chore(dev): refactor frontend bundle report * enhance(dev): improve backend memory usage report (#17608) * enhance(dev): tweak report-backend-memory * wip * Update backend-memory-report.mjs * Update backend-memory-report.mjs * chore(dev): tweak frontend-js-size.mjs * Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop * chore(dev): tweak backend-memory-report * chore(dev): tweak backend-memory-report * (test) enhance(dev): improve backend-memory-report * chore(dev): tweak backend-memory-report * chore(dev): tweak backend-memory-report * chore(dev): tweak backend-memory-report * chore(dev): tweak backend-memory-report * chore(dev): tweak frontend-js-size * chore(dev): tweak frontend-js-size * chore(dev): tweak backend-memory-report * chore(dev): tweak backend-memory-report * chore(dev): tweak backend-memory-report * chore(dev): tweak frontend-js-size * Update frontend-bundle-report.yml * [ci skip] chore(dev): tweak frontend-js-size * refactor(dev): refactor of backend memory comparison workflow (#17619) * refactor(dev): refactor of backend memory comparison workflow * fix * fix(dev): follow up of 1c4bcd9 * fix(dev): follow up of 1c4bcd9 * fix(dev): follow up of 1c4bcd9 * fix(dev): follow up of 1c4bcd9 * chore(dev): refactor workflow js * refactor(dev): extract heap snapshot logic 将来的にフロントエンドでもheap snaphotを集計したくなった時などのため あとpairedDeltaSummaryを共通化 * chore(dev): tweak backend-memory-report * chore(dev): tweak some workflows * chore(dev): tweak some workflows * fix(dev): fix measure-memory * clean up --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: おさむのひと <46447427+samunohito@users.noreply.github.com>
clean pref migration
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* fix: Fix improper authorization in `admin/reset-password` * Apply suggestions from code review Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> * fix: improper authorization in `admin/unset-mfa` * fix --------- Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
* fix(gh): check-misskey-js-autogenが失敗する問題を修正 * fix comment * fix
* enhance(frontend): UploaderItemsの詳細メニューからもプレビューを起動できるように * clean up
* fix(frontend): MkLightboxの動画の縦横比を事前に確定させるように * fix * fix
Co-authored-by: anatawa12 <anatawa12@icloud.com>
…folio, federation-off) - Backend: keep XissmieStoreService alongside TelemetryService; retain robots.txt AI crawler blocks - Frontend: preserve Xfolio login/signup, store emoji/decoration purchase flows; reapply PURCHASE_REQUIRED in use-note - Config: restore xfolioApiHost/xfolioApiToken samples; regenerate pnpm-lock.yaml Co-authored-by: Cursor <cursoragent@cursor.com>
本家 2026.7.0 の .node-version に合わせ、ローカル Node / pnpm を揃える。 Co-authored-by: Cursor <cursoragent@cursor.com>
Contributor
|
このPRによるapi.jsonの差分 差分はこちら--- base
+++ head
@@ -1,7 +1,7 @@
{
"openapi": "3.1.0",
"info": {
- "version": "2026.3.2",
+ "version": "2026.7.0",
"title": "Misskey API"
},
"externalDocs": {
@@ -3490,6 +3490,12 @@
"items": {
"type": "string"
}
+ },
+ "category": {
+ "type": [
+ "string",
+ "null"
+ ]
}
},
"required": [
@@ -3539,6 +3545,12 @@
"type": "string",
"format": "id"
}
+ },
+ "category": {
+ "type": [
+ "string",
+ "null"
+ ]
}
},
"required": [
@@ -3548,7 +3560,8 @@
"name",
"description",
"url",
- "roleIdsThatCanBeUsedThisDecoration"
+ "roleIdsThatCanBeUsedThisDecoration",
+ "category"
]
}
}
@@ -3907,6 +3920,12 @@
"type": "string",
"format": "id"
}
+ },
+ "category": {
+ "type": [
+ "string",
+ "null"
+ ]
}
},
"required": [
@@ -4075,6 +4094,12 @@
"items": {
"type": "string"
}
+ },
+ "category": {
+ "type": [
+ "string",
+ "null"
+ ]
}
},
"required": [
@@ -9892,6 +9917,24 @@
"enableSensitiveMediaDetectionForVideos": {
"type": "boolean"
},
+ "sensitiveMediaDetectionApiUrl": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "sensitiveMediaDetectionApiKey": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "sensitiveMediaDetectionTimeout": {
+ "type": "number"
+ },
+ "sensitiveMediaDetectionMaxImagesPerRequest": {
+ "type": "number"
+ },
"proxyAccountId": {
"type": "string",
"format": "id"
@@ -10219,6 +10262,12 @@
"null"
]
},
+ "urlPreviewSensitiveList": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
"federation": {
"type": "string",
"enum": [
@@ -10327,6 +10376,10 @@
"sensitiveMediaDetectionSensitivity",
"setSensitiveFlagAutomatically",
"enableSensitiveMediaDetectionForVideos",
+ "sensitiveMediaDetectionApiUrl",
+ "sensitiveMediaDetectionApiKey",
+ "sensitiveMediaDetectionTimeout",
+ "sensitiveMediaDetectionMaxImagesPerRequest",
"proxyAccountId",
"email",
"smtpSecure",
@@ -10399,6 +10452,7 @@
"urlPreviewRequireContentLength",
"urlPreviewUserAgent",
"urlPreviewSummaryProxyUrl",
+ "urlPreviewSensitiveList",
"federation",
"federationHosts",
"deliverSuspendedSoftware",
@@ -11362,6 +11416,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",
@@ -12168,6 +12381,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",
@@ -13392,6 +13764,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": {
@@ -18332,6 +18722,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",
@@ -19246,6 +19802,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",
@@ -19566,6 +20142,15 @@
"null"
]
},
+ "urlPreviewSensitiveList": {
+ "type": [
+ "array",
+ "null"
+ ],
+ "items": {
+ "type": "string"
+ }
+ },
"federation": {
"type": "string",
"enum": [
@@ -21116,6 +21701,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",
@@ -24647,6 +25394,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": {
@@ -45821,6 +46577,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": {
@@ -45897,6 +46685,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": {
@@ -46121,6 +46930,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": {
@@ -46197,6 +47038,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": {
@@ -48638,6 +49500,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",
@@ -51456,6 +52493,12 @@
"type": "string",
"format": "id"
}
+ },
+ "category": {
+ "type": [
+ "string",
+ "null"
+ ]
}
},
"required": [
@@ -53745,186 +54788,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"
}
}
}
@@ -72099,6 +72963,18 @@
"query": {
"type": "string"
},
+ "rangeStartAt": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "rangeEndAt": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
"sinceId": {
"type": "string",
"format": "misskey:id"
@@ -80184,6 +81060,9 @@
"originalUsersCount": {
"type": "number"
},
+ "reactionsCount": {
+ "type": "number"
+ },
"instances": {
"type": "number"
},
@@ -80199,6 +81078,7 @@
"originalNotesCount",
"usersCount",
"originalUsersCount",
+ "reactionsCount",
"instances",
"driveUsageLocal",
"driveUsageRemote"
@@ -94125,6 +95005,9 @@
"canHideAds": {
"type": "boolean"
},
+ "canCreateChannel": {
+ "type": "boolean"
+ },
"driveCapacityMb": {
"type": "integer"
},
@@ -94221,6 +95104,7 @@
"canSearchUsers",
"canUseTranslator",
"canHideAds",
+ "canCreateChannel",
"driveCapacityMb",
"maxFileSizeMb",
"uploadableFileTypes", |
本家 TypeORM の FindOptionsRelations 型に合わせ、Xissmie 独自コードの relations 配列指定を修正して typecheck を通す。 Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Why
Additional info (optional)
Checklist