Skip to content

Release: 2026.7.0#17657

Draft
github-actions[bot] wants to merge 116 commits into
masterfrom
develop
Draft

Release: 2026.7.0#17657
github-actions[bot] wants to merge 116 commits into
masterfrom
develop

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Note

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

  • センシティブメディアの判定 (NSFW検出) が、本体に内蔵された nsfwjs による推論から、外部サービス sensitive-detector への HTTP 呼び出し方式に変更されました。
    • これに伴い、本体から nsfwjs / @tensorflow/tfjs / @tensorflow/tfjs-node および同梱の NSFW 判定モデルが削除され、インストール要件 (ネイティブ ML スタック) が緩和されました。
    • センシティブ判定機能を利用しているサーバーは対応が必要です。 別途 sensitive-detector サービスを立ち上げ、コントロールパネルの「モデレーション > センシティブなメディアの検出」で接続先 URL を設定してください。接続先が未設定の場合、センシティブ判定は行われません (すべて非センシティブ扱い)。
    • 画像の正規化・動画フレームの抽出・しきい値判定・集約は引き続き本体側で行われ、外部サービスには正規化済み画像の推論のみを委譲します。
  • Node.js v24, v26 をサポートしました。Node.js v22 でも動作しますが、今後のリリースで v22 のサポートを終了する予定ですので、Node.js のアップデートをご検討ください。
    • Node.js のセキュリティアップデートに伴い、最低動作バージョンを 22.22.2 / 24.17.0 / 26.4.0 に引き上げました。
    • Docker Image は Node.js 26.4.0-trixie に更新されています。
  • バックエンドで画像処理に用いているライブラリ sharp のシステム要件の変更により、SSE4.2 命令セットをサポートしていない x86_64 CPU では Misskey が正しく動作しなくなります。仮想マシンに Misskey をデプロイしている場合や、古いハードウェアをお使いの場合は、アップデート前にお使いの環境をご確認ください。なお、ARM64 など x86_64 ではない環境においてはこの変更による影響はありません。

General

Client

  • 2025.4.0 以前の設定情報の移行処理が削除されました
    • 2025.4.0 から直接 2026.6.0 以上にアップデートする場合は設定が移行されませんので注意してください。移行したい場合は一度 2026.5.1 を経由してください。
  • Fix: デバイスタイプをスマートフォンに固定している状態で画面幅が広いとき、画面左上のアイコンが表示されない問題を修正
  • Fix: チャットでIMEの変換を確定するEnterでメッセージが送信されてしまうことがある問題を修正
  • Fix: 自分へのメンションに対する色分けで、判定が大文字/小文字を区別していた問題を修正
  • Fix: いくつかのイベントリスナーが正しく解除されない問題を修正(メモリ使用量の改善)

Server

  • Enhance: センシティブメディアの判定を外部サービス (sensitive-detector) に分離し、nsfwjs / @tensorflow/tfjs(-node) の同梱と NSFW 判定モデルを廃止 (センシティブ判定を外部サービス扱いにする #16804)
  • Enhance: Sentry バックエンドの自動計装を sentryForBackend.disabledIntegrations で個別に無効化できるように
  • Enhance: Node.js 22.23.0以降、24.17.0以降、26.4.0以降をサポートするように
  • Enhance: Docker Image の Node.js を 26.4.0 に、Debian を trixie (v13) に更新
  • Fix: /stats API のレスポンス型が正しくない問題を修正
  • Fix: ハッシュタグに関連するデータを更新する際のエラーハンドリングを修正
  • Fix: Sentry 使用環境下にて、Misskey が発行した SQL クエリが span に含まれない問題を修正
  • Fix: Sentry 使用環境下にて、外部送信リクエストへ sentry-trace / baggage ヘッダーが既定で付与されないように

github-actions Bot and others added 30 commits June 22, 2026 11:47
* wip

* Update get-backend-memory.yml

* [ci skip] tweak table
* chore(ci): simplify FFmpeg installation in workflows

* fix
* enhance(dev): tweak report-backend-memory

* wip

* Update backend-memory-report.mjs

* Update backend-memory-report.mjs
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor Author

📦 Frontend Bundle Report

Chunk size diff (104 updated, 2 added, 3 removed)
Chunk Before After Δ Δ (%)
(total) 5.9 MB 5.8 MB $\color{green}{\text{-89 KB}}$ $\color{green}{\text{-1.5\%}}$
../../node_modules/.pnpm/mediabunny@1.49.0/node_modules/mediabunny/dist/modules/src/index.js ja-JP/aEA5QfpmU-kjJRlBqd.js
0 B 634 KB $\color{orange}{\text{+634 KB}}$ $\color{orange}{\text{( + )}}$
../../node_modules/.pnpm/mediabunny@1.46.0/node_modules/mediabunny/dist/modules/src/index.js ja-JP/iYI1rAqfE-DIlS5DdX.js
629 KB 0 B $\color{green}{\text{-629 KB}}$ $\color{green}{\text{( - )}}$
../../node_modules/.pnpm/@sentry+vue@10.62.0_vue@3.5.39_typescript@5.9.3_/node_modules/@sentry/vue/build/esm/index.js ja-JP/aEA5QfpmU-DGnsZX_e.js
0 B 452 KB $\color{orange}{\text{+452 KB}}$ $\color{orange}{\text{( + )}}$
../../node_modules/.pnpm/@sentry+vue@10.57.0_vue@3.5.35_typescript@5.9.3_/node_modules/@sentry/vue/build/esm/index.js ja-JP/iYI1rAqfE-B5vL5Y_s.js
450 KB 0 B $\color{green}{\text{-450 KB}}$ $\color{green}{\text{( - )}}$
esm ja-JP/iYI1rAqfE-CJSvvCLc.js
104 KB 8.5 KB $\color{green}{\text{-95 KB}}$ $\color{green}{\text{-91.8\%}}$
pref-migrate ja-JP/iYI1rAqfE-AaLtVew-2.js
5.1 KB 0 B $\color{green}{\text{-5.1 KB}}$ $\color{green}{\text{( - )}}$
store ja-JP/iYI1rAqfE-BUQHLGfG.js
22 KB 18 KB $\color{green}{\text{-4.1 KB}}$ $\color{green}{\text{-18.8\%}}$
src/pages/admin/security.vue ja-JP/iYI1rAqfE-2u-c4rCt.js
21 KB 25 KB $\color{orange}{\text{+4 KB}}$ $\color{orange}{\text{+18.9\%}}$
MkNoteDetailed ja-JP/iYI1rAqfE-YM2pXTvo.js
18 KB 15 KB $\color{green}{\text{-3.5 KB}}$ $\color{green}{\text{-19.4\%}}$
search-index:admin ja-JP/iYI1rAqfE-D8Z5R8BQ.js
23 KB 25 KB $\color{orange}{\text{+2.1 KB}}$ $\color{orange}{\text{+9.1\%}}$
i18n ja-JP/iYI1rAqfE-r2YyMu-f.js
215 KB 216 KB $\color{orange}{\text{+1.8 KB}}$ $\color{orange}{\text{+0.8\%}}$
os ja-JP/iYI1rAqfE-DHB5SqPp.js
465 KB 467 KB $\color{orange}{\text{+1.7 KB}}$ $\color{orange}{\text{+0.4\%}}$
src/pages/admin/settings.vue ja-JP/iYI1rAqfE-D444CzYF.js
33 KB 34 KB $\text{+880 B}$ $\color{orange}{\text{+2.7\%}}$
src/_boot_.ts ja-JP/iYI1rAqfE-DxNuD77v.js
63 KB 64 KB $\text{+559 B}$ $\color{orange}{\text{+0.9\%}}$
src/pages/settings/other.vue ja-JP/iYI1rAqfE-Bp_8sSMy2.js
14 KB 13 KB $\text{-529 B}$ $\color{green}{\text{-3.9\%}}$
runtime-core.esm-bundler ja-JP/iYI1rAqfE-DXDahymz.js
49 KB 50 KB $\text{+356 B}$ $\color{orange}{\text{+0.7\%}}$
src/pages/admin/modlog.vue ja-JP/iYI1rAqfE-f22ZbZCx2.js
152 KB 153 KB $\text{+330 B}$ $\color{orange}{\text{+0.2\%}}$
src/pages/admin-user.vue ja-JP/iYI1rAqfE-Cyou7Rwc.js
15 KB 15 KB $\text{+329 B}$ $\color{orange}{\text{+2.2\%}}$
src/components/MkAutocomplete.vue ja-JP/iYI1rAqfE-CmXmkZAV2.js
239 KB 239 KB $\text{+153 B}$ $\text{+0.1\%}$
src/components/MkTokenGenerateWindow.vue ja-JP/iYI1rAqfE-YdZE4L2T2.js
13 KB 13 KB $\text{+144 B}$ $\color{orange}{\text{+1.1\%}}$
src/widgets/WidgetUnixClock.vue ja-JP/iYI1rAqfE-Bax6Kg3W.js
1.8 KB 1.9 KB $\text{+111 B}$ $\color{orange}{\text{+6.3\%}}$
src/pages/note.vue ja-JP/iYI1rAqfE-DC2S4jrn.js
5.1 KB 5.2 KB $\text{+92 B}$ $\color{orange}{\text{+1.8\%}}$
src/pages/install-extensions.vue ja-JP/iYI1rAqfE-CleY8M942.js
14 KB 14 KB $\text{+72 B}$ $\color{orange}{\text{+0.5\%}}$
MkAuthConfirm ja-JP/iYI1rAqfE-DzpKUtND2.js
11 KB 11 KB $\text{+72 B}$ $\color{orange}{\text{+0.7\%}}$
src/pages/auth.vue ja-JP/iYI1rAqfE-BJed63ha.js
8.4 KB 8.5 KB $\text{+72 B}$ $\color{orange}{\text{+0.9\%}}$
src/pages/settings/apps.vue ja-JP/iYI1rAqfE-DrKGoyEI2.js
7.2 KB 7.3 KB $\text{+72 B}$ $\color{orange}{\text{+1\%}}$
preload-helper ja-JP/iYI1rAqfE-CYrt_hbD.js
1.2 KB 1.3 KB $\text{+63 B}$ $\color{orange}{\text{+5.3\%}}$
src/pages/settings/plugin.vue ja-JP/iYI1rAqfE-Cz_KG8Yv2.js
9.5 KB 9.6 KB $\text{+60 B}$ $\color{orange}{\text{+0.6\%}}$
src/components/MkUserSetupDialog.vue ja-JP/iYI1rAqfE-R0URKGDi2.js
17 KB 17 KB $\text{+52 B}$ $\color{orange}{\text{+0.3\%}}$
src/pages/chat/room.vue ja-JP/iYI1rAqfE-BwGkn88h.js
17 KB 18 KB $\text{+51 B}$ $\color{orange}{\text{+0.3\%}}$
Startup chunk size (16 updated, 0 added, 1 removed)
Chunk Before After Δ Δ (%)
(total) 1.1 MB 1.1 MB $\color{green}{\text{-4.7 KB}}$ $\color{green}{\text{-0.4\%}}$
pref-migrate ja-JP/iYI1rAqfE-AaLtVew-2.js
5.1 KB 0 B $\color{green}{\text{-5.1 KB}}$ $\color{green}{\text{( - )}}$
store ja-JP/iYI1rAqfE-BUQHLGfG.js
22 KB 18 KB $\color{green}{\text{-4.1 KB}}$ $\color{green}{\text{-18.8\%}}$
i18n ja-JP/iYI1rAqfE-r2YyMu-f.js
215 KB 216 KB $\color{orange}{\text{+1.8 KB}}$ $\color{orange}{\text{+0.8\%}}$
os ja-JP/iYI1rAqfE-DHB5SqPp.js
465 KB 467 KB $\color{orange}{\text{+1.7 KB}}$ $\color{orange}{\text{+0.4\%}}$
src/_boot_.ts ja-JP/iYI1rAqfE-DxNuD77v.js
63 KB 64 KB $\text{+559 B}$ $\color{orange}{\text{+0.9\%}}$
runtime-core.esm-bundler ja-JP/iYI1rAqfE-DXDahymz.js
49 KB 50 KB $\text{+356 B}$ $\color{orange}{\text{+0.7\%}}$
preload-helper ja-JP/iYI1rAqfE-CYrt_hbD.js
1.2 KB 1.3 KB $\text{+63 B}$ $\color{orange}{\text{+5.3\%}}$
runtime-dom.esm-bundler ja-JP/iYI1rAqfE-BWJgF_dO.js
17 KB 17 KB $\text{+42 B}$ $\color{orange}{\text{+0.3\%}}$
built ja-JP/iYI1rAqfE-CMqvco8K.js
21 KB 21 KB $\text{+30 B}$ $\color{orange}{\text{+0.1\%}}$
emoji-base ja-JP/iYI1rAqfE-BWqNnsCl2.js
435 B 413 B $\text{-22 B}$ $\color{green}{\text{-5.1\%}}$
reactivity.esm-bundler ja-JP/iYI1rAqfE-CGANOlW1.js
21 KB 21 KB $\text{+21 B}$ $\color{orange}{\text{+0.1\%}}$
is-birthday ja-JP/iYI1rAqfE-krHBkp1C2.js
1.5 KB 1.5 KB $\text{+14 B}$ $\color{orange}{\text{+0.9\%}}$
config ja-JP/iYI1rAqfE-DoY2Dlc1.js
1.3 KB 1.3 KB $\text{+8 B}$ $\color{orange}{\text{+0.6\%}}$
theme ja-JP/iYI1rAqfE-BXbIqFh12.js
8.3 KB 8.3 KB $\text{+7 B}$ $\text{+0.1\%}$
common ja-JP/iYI1rAqfE-CBHTOmOK2.js
15 KB 15 KB $\text{+4 B}$ $\text{+0\%}$
widgets ja-JP/iYI1rAqfE-BL5S_7HM.js
9.7 KB 9.7 KB $\text{+2 B}$ $\text{+0\%}$
navbar ja-JP/iYI1rAqfE-C9jvsZBd.js
2.9 KB 2.9 KB $\text{+1 B}$ $\text{+0\%}$
photoswipe ja-JP/iYI1rAqfE-CPLOodwB.js
73 KB 73 KB 0 B 0%
MkNotification ja-JP/iYI1rAqfE-DbWMj3PN2.js
23 KB 23 KB 0 B 0%
tinycolor ja-JP/iYI1rAqfE-PEGdpOg42.js
15 KB 15 KB 0 B 0%
achievements ja-JP/iYI1rAqfE-D0vV4RBq.js
10 KB 10 KB 0 B 0%
MkCustomEmoji ja-JP/iYI1rAqfE-BIM99Wjp2.js
6.5 KB 6.5 KB 0 B 0%
MkAnimBg ja-JP/iYI1rAqfE--qsVmNPm2.js
4.8 KB 4.8 KB 0 B 0%
MkSwiper ja-JP/iYI1rAqfE-CllycdIS2.js
3 KB 3 KB 0 B 0%
MkUrl ja-JP/iYI1rAqfE-C0hD-SDG2.js
2.9 KB 2.9 KB 0 B 0%
MkTabs ja-JP/iYI1rAqfE-s0MAVPcZ2.js
2.8 KB 2.8 KB 0 B 0%
MkCode ja-JP/iYI1rAqfE-CPa6j-962.js
2.7 KB 2.7 KB 0 B 0%
lookup ja-JP/iYI1rAqfE-7CcNPvPn.js
2.3 KB 2.3 KB 0 B 0%
MkSparkle ja-JP/iYI1rAqfE-DCmEmJci2.js
2.2 KB 2.2 KB 0 B 0%
dist ja-JP/iYI1rAqfE-hFIZJiGe.js
1.8 KB 1.8 KB 0 B 0%
_dark ja-JP/iYI1rAqfE-DfGzfoC32.js
1.8 KB 1.8 KB 0 B 0%
media-proxy ja-JP/iYI1rAqfE-CMewiYHt.js
1.7 KB 1.7 KB 0 B 0%
_light ja-JP/iYI1rAqfE-D67CB4xl.js
1.7 KB 1.7 KB 0 B 0%
hotkey ja-JP/iYI1rAqfE-kiz8ZpH0.js
1.6 KB 1.6 KB 0 B 0%
MkStickyContainer ja-JP/iYI1rAqfE-y7RxNTit2.js
1.4 KB 1.4 KB 0 B 0%
MkLoading ja-JP/iYI1rAqfE-DpyoDtql2.js
1.1 KB 1.1 KB 0 B 0%
MkInfo ja-JP/iYI1rAqfE-DMqSoszZ.js
1 KB 1 KB 0 B 0%
webgl ja-JP/iYI1rAqfE-wb3e_Vqx2.js
1 KB 1 KB 0 B 0%
use-scroll-position-keeper ja-JP/iYI1rAqfE-CwXCTaQz2.js
990 B 990 B 0 B 0%
misskey-api ja-JP/iYI1rAqfE-Cuo_-eGy.js
986 B 986 B 0 B 0%
instance ja-JP/iYI1rAqfE-DCSm3ObG.js
918 B 918 B 0 B 0%
get-note-summary ja-JP/iYI1rAqfE-CfIrEs7z.js
704 B 704 B 0 B 0%
rolldown-runtime ja-JP/iYI1rAqfE-QTnfLwEv.js
694 B 694 B 0 B 0%
page ja-JP/iYI1rAqfE-CrFU2vhJ.js
688 B 688 B 0 B 0%
i ja-JP/iYI1rAqfE-U6KxuKTI.js
631 B 631 B 0 B 0%
clear-cache ja-JP/iYI1rAqfE-Oefiv7--2.js
472 B 472 B 0 B 0%
d-green-lime ja-JP/iYI1rAqfE-DEHvjKGz.js
391 B 391 B 0 B 0%
use-interval ja-JP/iYI1rAqfE-DT6UfnZ3.js
384 B 384 B 0 B 0%
l-light ja-JP/iYI1rAqfE-B8GJAiDX.js
351 B 351 B 0 B 0%
user ja-JP/iYI1rAqfE-BmMN1NSu.js
205 B 205 B 0 B 0%
get-bg-color ja-JP/iYI1rAqfE-BvZiEOuT2.js
190 B 190 B 0 B 0%
isChromatic ja-JP/iYI1rAqfE-Dd9satMa2.js
172 B 172 B 0 B 0%
is-device-darkmode ja-JP/iYI1rAqfE-CHGi6RJT2.js
93 B 93 B 0 B 0%
_plugin-vue_export-helper ja-JP/iYI1rAqfE-BDNMzG2s.js
84 B 84 B 0 B 0%

Startup chunks are the Vite entry for src/_boot_.ts and its static imports.

Bundle Stats

Bundles Modules Entries Imports Size
Static Dynamic Rendered Gzip Brotli
Before 467 2,850 21 8,649 324 10 MB 2.8 MB 2.4 MB
After 466 2,853 21 8,580 323 10 MB 2.8 MB 2.4 MB
Δ $\color{green}{\text{-1}}$ $\color{orange}{\text{+3}}$ 0 $\color{green}{\text{-69}}$ $\color{green}{\text{-1}}$ $\color{orange}{\text{+11 KB}}$ $\color{orange}{\text{+1.6 KB}}$ $\color{orange}{\text{+1.5 KB}}$
Δ (%) $\color{green}{\text{-0.2\%}}$ $\color{orange}{\text{+0.1\%}}$ 0% $\color{green}{\text{-0.8\%}}$ $\color{green}{\text{-0.3\%}}$ $\color{orange}{\text{+0.1\%}}$ $\text{+0.1\%}$ $\text{+0.1\%}$

Open treemap HTML

@codecov

codecov Bot commented Jul 3, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 26.15955% with 398 lines in your changes missing coverage. Please review.
✅ Project coverage is 24.58%. Comparing base (0137b1c) to head (059fbaa).

Files with missing lines Patch % Lines
packages/frontend/src/composables/use-note.ts 0.00% 117 Missing and 64 partials ⚠️
packages/backend/src/core/HashtagService.ts 7.40% 21 Missing and 4 partials ⚠️
packages/frontend/src/components/MkNote.vue 0.00% 17 Missing and 5 partials ⚠️
packages/frontend/src/directives/tooltip.ts 44.44% 10 Missing and 10 partials ⚠️
...ackend/src/server/api/endpoints/admin/unset-mfa.ts 0.00% 15 Missing and 1 partial ⚠️
.../core/telemetry/adapters/SentryTelemetryAdapter.ts 50.00% 13 Missing ⚠️
...ackages/backend/src/queue/QueueProcessorService.ts 36.84% 10 Missing and 2 partials ⚠️
packages/frontend/src/directives/hotkey.ts 7.69% 10 Missing and 2 partials ⚠️
packages/backend/src/core/AiService.ts 86.07% 9 Missing and 2 partials ⚠️
...kend/src/server/api/endpoints/admin/update-meta.ts 0.00% 3 Missing and 7 partials ⚠️
... and 20 more
Additional details and impacted files
@@            Coverage Diff             @@
##           master   #17657      +/-   ##
==========================================
- Coverage   25.07%   24.58%   -0.50%     
==========================================
  Files        1161     1164       +3     
  Lines       39682    39555     -127     
  Branches    11057    10940     -117     
==========================================
- Hits         9952     9724     -228     
- Misses      23812    23897      +85     
- Partials     5918     5934      +16     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor Author

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

差分はこちら
--- base
+++ head
@@ -1,7 +1,7 @@
 {
   "openapi": "3.1.0",
   "info": {
-    "version": "2026.6.0",
+    "version": "2026.7.0-alpha.2",
     "title": "Misskey API"
   },
   "externalDocs": {
@@ -9745,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"
@@ -10072,6 +10090,12 @@
                         "null"
                       ]
                     },
+                    "urlPreviewSensitiveList": {
+                      "type": "array",
+                      "items": {
+                        "type": "string"
+                      }
+                    },
                     "federation": {
                       "type": "string",
                       "enum": [
@@ -10180,6 +10204,10 @@
                     "sensitiveMediaDetectionSensitivity",
                     "setSensitiveFlagAutomatically",
                     "enableSensitiveMediaDetectionForVideos",
+                    "sensitiveMediaDetectionApiUrl",
+                    "sensitiveMediaDetectionApiKey",
+                    "sensitiveMediaDetectionTimeout",
+                    "sensitiveMediaDetectionMaxImagesPerRequest",
                     "proxyAccountId",
                     "email",
                     "smtpSecure",
@@ -10252,6 +10280,7 @@
                     "urlPreviewRequireContentLength",
                     "urlPreviewUserAgent",
                     "urlPreviewSummaryProxyUrl",
+                    "urlPreviewSensitiveList",
                     "federation",
                     "federationHosts",
                     "deliverSuspendedSoftware",
@@ -18521,6 +18550,163 @@
         }
       }
     },
+    "/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"
+                      }
+                    }
+                  },
+                  "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",
@@ -19435,6 +19621,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",
@@ -19755,6 +19961,15 @@
                       "null"
                     ]
                   },
+                  "urlPreviewSensitiveList": {
+                    "type": [
+                      "array",
+                      "null"
+                    ],
+                    "items": {
+                      "type": "string"
+                    }
+                  },
                   "federation": {
                     "type": "string",
                     "enum": [
@@ -80342,6 +80557,9 @@
                     "originalUsersCount": {
                       "type": "number"
                     },
+                    "reactionsCount": {
+                      "type": "number"
+                    },
                     "instances": {
                       "type": "number"
                     },
@@ -80357,6 +80575,7 @@
                     "originalNotesCount",
                     "usersCount",
                     "originalUsersCount",
+                    "reactionsCount",
                     "instances",
                     "driveUsageLocal",
                     "driveUsageRemote"

Get diff files from Workflow Page

@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor Author

⚙️ Backend Memory Usage Report

After GC

Metric Base Head Δ median Δ MAD Δ min Δ max
HeapUsed 84 MB
± 0 MB
72.6 MB
± 0 MB
$\color{green}{\text{-11.4 MB}}$
$\color{green}{\text{-13.6\%}}$
0 MB $\color{green}{\text{-11.5 MB}}$ $\color{green}{\text{-11.4 MB}}$
Pss 309.2 MB
± 2.2 MB
278.2 MB
± 0.5 MB
$\color{green}{\text{-32.7 MB}}$
$\color{green}{\text{-10.6\%}}$
1.7 MB $\color{green}{\text{-49.9 MB}}$ $\color{orange}{\text{+9.1 MB}}$
Private_Dirty 266.9 MB
± 2.1 MB
235.2 MB
± 0.4 MB
$\color{green}{\text{-33.4 MB}}$
$\color{green}{\text{-12.5\%}}$
1.8 MB $\color{green}{\text{-50.7 MB}}$ $\color{orange}{\text{+8.2 MB}}$
VmRSS 347.2 MB
± 2.2 MB
316.2 MB
± 0.5 MB
$\color{green}{\text{-32.7 MB}}$
$\color{green}{\text{-9.4\%}}$
1.8 MB $\color{green}{\text{-49.9 MB}}$ $\color{orange}{\text{+9.1 MB}}$
External 10.5 MB
± 0 MB
8.7 MB
± 0 MB
$\color{green}{\text{-1.7 MB}}$
$\color{green}{\text{-16.4\%}}$
0 MB $\color{green}{\text{-1.7 MB}}$ $\color{green}{\text{-1.7 MB}}$

V8 Heap Snapshot Statistics

Metric Base Head Δ median Δ MAD Δ min Δ max
$\color{gray}{\rule{8pt}{8pt}}$ Total 101 MB
± 16 KB
86 MB
± 11 KB
$\color{green}{\text{-15 MB}}$
$\color{green}{\text{-15.1\%}}$
30 KB $\color{green}{\text{-15 MB}}$ $\color{green}{\text{-15 MB}}$
$\color{orange}{\rule{8pt}{8pt}}$ Code24.3% → 28.8%
25 MB 25 MB $\color{orange}{\text{+179 KB}}$ 5.1 KB $\color{orange}{\text{+160 KB}}$ $\color{orange}{\text{+204 KB}}$
$\color{red}{\rule{8pt}{8pt}}$ Strings42% → 34.8%
42 MB 30 MB $\color{green}{\text{-13 MB}}$ 648 B $\color{green}{\text{-13 MB}}$ $\color{green}{\text{-13 MB}}$
$\color{cyan}{\rule{8pt}{8pt}}$ JS arrays13.1% → 4.8%
13 MB 4.1 MB $\color{green}{\text{-9.1 MB}}$ 0 B $\color{green}{\text{-9.1 MB}}$ $\color{green}{\text{-9.1 MB}}$
$\color{green}{\rule{8pt}{8pt}}$ Typed arrays0.6% → 0.6%
562 KB 533 KB $\text{-29 KB}$ 0 B $\text{-29 KB}$ $\text{-29 KB}$
$\color{yellow}{\rule{8pt}{8pt}}$ System objects10% → 2.6%
10 MB 2.2 MB $\color{green}{\text{-7.9 MB}}$ 1.3 KB $\color{green}{\text{-7.9 MB}}$ $\color{green}{\text{-7.9 MB}}$
$\color{violet}{\rule{8pt}{8pt}}$ Other JS objs10.1% → 28.4%
10 MB 24 MB $\color{orange}{\text{+14 MB}}$ 280 B $\color{orange}{\text{+14 MB}}$ $\color{orange}{\text{+14 MB}}$
$\color{pink}{\rule{8pt}{8pt}}$ Other non-JS objs0% → 0%
36 KB 38 KB $\text{+1.8 KB}$ 0 B $\text{+1.8 KB}$ $\text{+1.8 KB}$
Head heap snapshot composition
%%{init: {"sankey":{"showValues":false,"linkColor":"target","labelStyle":"outlined","nodeAlignment":"center","nodePadding":10,"nodeColors":{"Head":"#888888","code":"#f28e2c","bytecode":"#f28e2c","Other":"#888888","strings":"#e15759","string":"#e15759","jsArrays":"#76b7b2","typedArrays":"#59a14f","systemObjects":"#edc949","otherJsObjects":"#af7aa1","otherNonJsObjects":"#ff9da7"}}}}%%
sankey-beta
"Head","Code",28.8
"Code","bytecode",9.57
"Code","Other",19.24
"Head","Strings",34.75
"Strings","string",34.06
"Strings","Other",0.7
"Head","JS arrays",4.81
"Head","Typed arrays",0.62
"Head","System objects",2.58
"Head","Other JS objs",28.38
"Head","Other non-JS objs",0.04
Loading

Download representative V8 heap snapshot (head)

Runtime Loaded JS Footprint

Click to show
Metric Base Head Δ Δ (%)
Loaded JS modules 136 185 $\color{orange}{\text{+49}}$ $\color{orange}{\text{+36\%}}$
Loaded JS source 13 MB 11 MB $\color{green}{\text{-1.8 MB}}$ $\color{green}{\text{-13.9\%}}$
External packages loaded 23 30 $\color{orange}{\text{+7}}$ $\color{orange}{\text{+30.4\%}}$
Native addon packages 1 2 $\color{orange}{\text{+1}}$ $\color{orange}{\text{+100\%}}$

Newly Loaded External Packages

Package Loaded JS Modules Notes
pg 8.22.0 75 KB 14
@img/colour 1.1.0 45 KB 2
pg-protocol 1.15.0 32 KB 6
pg-pool 3.14.0 14 KB 1
pg-types 2.2.0 14 KB 5
pg-connection-string 2.14.0 7.5 KB 1
postgres-interval 1.2.0 3.4 KB 1
postgres-date 1.0.7 2.7 KB 1
postgres-array 2.0.0 2.3 KB 1
pg-int8 1.0.1 1.6 KB 1

Largest Package Increases

Package Base Head Δ Modules Δ
pg 8.22.0 0 B 75 KB $\color{orange}{\text{+75 KB}}$ $\color{orange}{\text{+14}}$
@img/colour 1.1.0 0 B 45 KB $\color{orange}{\text{+45 KB}}$ $\color{orange}{\text{+2}}$
pg-protocol 1.15.0 0 B 32 KB $\color{orange}{\text{+32 KB}}$ $\color{orange}{\text{+6}}$
semver 7.8.5 44 KB 67 KB $\color{orange}{\text{+23 KB}}$ $\color{orange}{\text{+26}}$
sharp 0.35.2 196 KB 218 KB $\color{orange}{\text{+21 KB}}$ 0
pg-pool 3.14.0 0 B 14 KB $\color{orange}{\text{+14 KB}}$ $\color{orange}{\text{+1}}$
pg-types 2.2.0 0 B 14 KB $\color{orange}{\text{+14 KB}}$ $\color{orange}{\text{+5}}$
pg-connection-string 2.14.0 0 B 7.5 KB $\color{orange}{\text{+7.5 KB}}$ $\color{orange}{\text{+1}}$
postgres-interval 1.2.0 0 B 3.4 KB $\color{orange}{\text{+3.4 KB}}$ $\color{orange}{\text{+1}}$
postgres-date 1.0.7 0 B 2.7 KB $\color{orange}{\text{+2.7 KB}}$ $\color{orange}{\text{+1}}$

Largest Newly Loaded Modules

Module Package Loaded JS
packages/backend/built/ApNoteService-CWRrMtAK.js backend 2.1 MB
packages/backend/built/Meta-Bly6xvEd.js backend 1.3 MB
packages/backend/built/source-CRSdFX1s.js backend 1.2 MB
packages/backend/built/core-DZ3pQcd6.js backend 1.1 MB
packages/backend/built/QueueService-CjpWohFT.js backend 997 KB
packages/backend/built/ServerService-CeCga9NL.js backend 976 KB
packages/backend/built/endpoints-DXz0MiDk.js backend 874 KB
packages/backend/built/MetaEntityService-CvTekgHd.js backend 627 KB
packages/backend/built/ap-request-CQQsInFN.js backend 237 KB
packages/backend/built/lib-DqQpNtHi.js backend 234 KB

kakkokari-gtyih and others added 21 commits July 4, 2026 11:21
test(backend): block.ts等のfanout timeline反映待ちレースを修正する (tiramiss-community/endolphin#112)

Co-authored-by: おさむのひと <46447427+samunohito@users.noreply.github.com>
* URLプレビューのサムネイルを隠す機能を追加 (MisskeyIO#214)

* Update Changelog

* fix

* Update Changelog

* fix

* fix: もうセンシティブと判定されている場合はそれをそのまま通すように

* fix: unnecessary import

* fix lint

---------

Co-authored-by: CyberRex <hspwinx86@gmail.com>
fix(backend/test): streaming.ts e2e の検証不備を修正 (tiramiss-community/endolphin#113)

Co-authored-by: samunohito <46447427+samunohito@users.noreply.github.com>
* feat: Sentryバックエンドの自動計装を個別で無効化出来る仕組みを追加する

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

* fix changelog

* add comment
* deps: update dependencies

* deps: update dependencies (major)

* migrate js-yaml

* migrate js-yaml

* run pnpm dedupe

* fix

* chore: reorganize dependencies

* perf: lazy-load id generators

* Revert "perf: lazy-load id generators"

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

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

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

* more fix

* fix

* fix/refactor

* Update Changelog

* update comment

* refactor

* fix
)

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

* fix

* fix unit tests

* fix

* fix

* update playwright

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* perf

* Revert "perf"

This reverts commit e60e965.

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

Projects

Development

Successfully merging this pull request may close these issues.

6 participants