Skip to content

feat: 公開ロールの表示設定を追加#17643

Draft
mattyatea wants to merge 29 commits into
developfrom
feature/role-hidden-setting
Draft

feat: 公開ロールの表示設定を追加#17643
mattyatea wants to merge 29 commits into
developfrom
feature/role-hidden-setting

Conversation

@mattyatea

@mattyatea mattyatea commented Jun 29, 2026

Copy link
Copy Markdown
Member

What

Fixes #17366

この PR では、公開ロールとロールバッジの表示をユーザーが個別に制御できるようにします。

  • ユーザー設定に「ロール設定」ページを追加し、自分に割り当てられた公開ロール/ロールバッジごとに表示・非表示を切り替えられるようにしました
  • ユーザーのプロフィール上の公開ロール表示と、ノートヘッダー上のロールバッジ表示に非表示設定を反映するようにしました
  • 管理者向けロール編集画面に「非表示を許可しない(常に表示)」設定を追加しました
  • 常時表示に設定された公開ロール/ロールバッジは、ユーザー設定画面でも無効化できないようにしました
  • モデレーターからの閲覧では、非表示設定に関係なく対象ユーザーの公開ロール/ロールバッジを確認できるようにしました

DB/API 変更:

  • user.hiddenRoleIds を追加し、ユーザーごとの非表示ロール ID を保存します
  • role.isPublicDisplayRequired を追加し、管理者がユーザー側での非表示を禁止できるようにします
  • i/updatehiddenRoleIds を追加し、保存時に「割り当て済み」「公開」「常時表示ではない」ロールだけへ sanitize します
  • Role/User の packed schema と misskey-js autogen を更新しました

Why

Issue #17366 の要望どおり、ロールバッジが多く付与されていて見た目を整理したい場合などに、ユーザー自身がプロフィールやノート上に表示する公開ロール/ロールバッジを選べるようにするためです。

一方で、運営上必ず表示したいロールもあり得るため、管理者が特定の公開ロール/ロールバッジを常時表示にできる設定も同時に追加しています。

Additional info (optional)

追加・更新した確認観点:

  • i/updatehiddenRoleIds が保存時に sanitize される e2e テスト
  • UserEntityService で通常閲覧者、本人、モデレーターごとの表示差分を確認する unit test
  • 自分のプロフィール上で hidden role が非表示になり、常時表示 role は残る Storybook play test
  • CHANGELOG.mdlocales/ja-JP.yml を更新
  • migration の up/down を追加

手元確認:

  • git diff --check origin/develop...HEAD は通過しました

未実行:

  • pnpm --filter backend test -- UserEntityService
  • pnpm --filter frontend test -- home.stories.impl
  • pnpm --filter backend check-migrations

この環境の Node.js が v24.14.0 で、リポジトリの要求 ^22.22.2 || ^24.17.0 || ^26.4.0 を満たさないため、上記 pnpm コマンドは起動前に失敗しました。

Checklist

  • Read contribution guide
  • Test working in local environment
  • (If needed) Add story storybook
  • (If needed) Update CHANGELOG.md
  • (If possible) Add tests

@codecov

codecov Bot commented Jun 29, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 54.71698% with 24 lines in your changes missing coverage. Please review.
✅ Project coverage is 25.27%. Comparing base (97e54a1) to head (398f9a6).
⚠️ Report is 1 commits behind head on develop.

Files with missing lines Patch % Lines
...kages/backend/src/server/api/endpoints/i/update.ts 0.00% 7 Missing and 3 partials ⚠️
packages/frontend/src/components/MkNoteHeader.vue 0.00% 6 Missing and 2 partials ⚠️
packages/frontend/src/pages/user/home.vue 57.14% 1 Missing and 2 partials ⚠️
packages/backend/src/core/RoleService.ts 0.00% 1 Missing ⚠️
...ges/backend/src/core/entities/RoleEntityService.ts 80.00% 1 Missing ⚠️
packages/frontend/src/router.definition.ts 0.00% 1 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##           develop   #17643       +/-   ##
============================================
+ Coverage    15.01%   25.27%   +10.25%     
============================================
  Files          247     1163      +916     
  Lines        12395    39995    +27600     
  Branches      4217    11133     +6916     
============================================
+ Hits          1861    10107     +8246     
- Misses        8244    23943    +15699     
- Partials      2290     5945     +3655     

☔ 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 Jun 29, 2026

Copy link
Copy Markdown
Contributor

📦 Frontend Bundle Report

Chunk size diff (63 updated, 1 added, 0 removed)
Chunk Before After Δ Δ (%)
(total) 5.9 MB 5.9 MB $\color{orange}{\text{+23 KB}}$ $\color{orange}{\text{+0.4\%}}$
dist ja-JP/oaynS8Knu-IbAMbJNv.js
1.8 KB 32 KB $\color{orange}{\text{+30 KB}}$ $\color{orange}{\text{+1,673.3\%}}$
common ja-JP/oaynS8Knu-yMaLqazp2.js
15 KB 4 KB $\color{green}{\text{-11 KB}}$ $\color{green}{\text{-73.1\%}}$
src/pages/settings/roles.vue ja-JP/nUPrxH7AW-Du5ikGQx2.js
0 B 2.3 KB $\color{orange}{\text{+2.3 KB}}$ $\color{orange}{\text{( + )}}$
src/pages/settings/other.vue ja-JP/oaynS8Knu-C_RA3xpz2.js
13 KB 12 KB $\text{-536 B}$ $\color{green}{\text{-4.1\%}}$
i18n ja-JP/oaynS8Knu-DB_C9YCF.js
216 KB 217 KB $\text{+523 B}$ $\color{orange}{\text{+0.2\%}}$
roles.editor ja-JP/oaynS8Knu-Myt3v5WW2.js
13 KB 13 KB $\text{+512 B}$ $\color{orange}{\text{+4.1\%}}$
os ja-JP/oaynS8Knu-DSrzkafj.js
465 KB 465 KB $\text{+351 B}$ $\text{+0.1\%}$
src/pages/user/home.vue ja-JP/oaynS8Knu-Cfj8Mi3_.js
14 KB 14 KB $\text{+161 B}$ $\color{orange}{\text{+1.1\%}}$
search-index:settings ja-JP/oaynS8Knu-BJCX20zT.js
32 KB 32 KB $\text{+154 B}$ $\color{orange}{\text{+0.5\%}}$
MkNoteDetailed ja-JP/oaynS8Knu-C0Yq_yYK.js
18 KB 18 KB $\text{+129 B}$ $\color{orange}{\text{+0.7\%}}$
src/pages/settings/index.vue ja-JP/oaynS8Knu-CM9CY9ec2.js
6.6 KB 6.7 KB $\text{+102 B}$ $\color{orange}{\text{+1.5\%}}$
src/pages/admin/roles.edit.vue ja-JP/oaynS8Knu-CoTUVq7s2.js
2 KB 2 KB $\text{+27 B}$ $\color{orange}{\text{+1.4\%}}$
src/pages/settings/profile.vue ja-JP/oaynS8Knu-9reKDweM2.js
20 KB 20 KB $\text{+6 B}$ $\text{+0\%}$
src/pages/settings/theme.vue ja-JP/oaynS8Knu-DafavzNM.js
15 KB 15 KB $\text{+5 B}$ $\text{+0\%}$
src/pages/channel-editor.vue ja-JP/oaynS8Knu-J7YALqgX.js
5 KB 5 KB $\text{+5 B}$ $\color{orange}{\text{+0.1\%}}$
MkClickerGame ja-JP/oaynS8Knu-CSk2Vp4f.js
1.9 KB 1.9 KB $\text{+5 B}$ $\color{orange}{\text{+0.3\%}}$
src/pages/settings/2fa.qrdialog.vue ja-JP/oaynS8Knu-DjyzuXYI.js
6 KB 6 KB $\text{-5 B}$ $\text{-0.1\%}$
src/pages/settings/navbar.vue ja-JP/oaynS8Knu-Bv3Z5OK-2.js
3.5 KB 3.5 KB $\text{-5 B}$ $\color{green}{\text{-0.1\%}}$
get-drive-file-menu ja-JP/oaynS8Knu-D52TIYUS2.js
3.5 KB 3.5 KB $\text{-5 B}$ $\color{green}{\text{-0.1\%}}$
src/pages/flash/flash-edit.vue ja-JP/oaynS8Knu-jQZuYhCZ2.js
9.6 KB 9.6 KB $\text{-4 B}$ $\text{-0\%}$
MkDrive ja-JP/oaynS8Knu-BarpusP72.js
25 KB 25 KB $\text{+3 B}$ $\text{+0\%}$
src/ui/deck.vue ja-JP/oaynS8Knu-DYYED8Rw2.js
38 KB 38 KB $\text{-3 B}$ $\text{-0\%}$
src/ui/universal.vue ja-JP/oaynS8Knu-bgxuCK9Z2.js
4.6 KB 4.6 KB $\text{+2 B}$ $\text{+0\%}$
widgets ja-JP/oaynS8Knu-DasTUj3Y.js
9.7 KB 9.7 KB $\text{-2 B}$ $\text{-0\%}$
src/pages/admin/modlog.vue ja-JP/oaynS8Knu-BJ6eX7qo2.js
153 KB 153 KB $\text{+1 B}$ $\text{+0\%}$
src/pages/drop-and-fusion.vue ja-JP/oaynS8Knu-B08gEseG.js
45 KB 45 KB $\text{+1 B}$ $\text{+0\%}$
src/pages/reversi/game.vue ja-JP/oaynS8Knu-6ikdJOEo.js
33 KB 33 KB $\text{+1 B}$ $\text{+0\%}$
roles.policy-editor ja-JP/oaynS8Knu-BcAcPXqI2.js
28 KB 28 KB $\text{+1 B}$ $\text{+0\%}$
src/pages/admin/custom-emojis-manager2.vue ja-JP/oaynS8Knu-BD5-VB6q.js
27 KB 27 KB $\text{+1 B}$ $\text{+0\%}$
src/pages/admin/overview.vue ja-JP/oaynS8Knu-oBFIz2Ng2.js
20 KB 20 KB $\text{+1 B}$ $\text{+0\%}$
Startup chunk size (5 updated, 0 added, 0 removed)
Chunk Before After Δ Δ (%)
(total) 1.1 MB 1.1 MB $\color{orange}{\text{+20 KB}}$ $\color{orange}{\text{+1.8\%}}$
dist ja-JP/oaynS8Knu-IbAMbJNv.js
1.8 KB 32 KB $\color{orange}{\text{+30 KB}}$ $\color{orange}{\text{+1,673.3\%}}$
common ja-JP/oaynS8Knu-yMaLqazp2.js
15 KB 4 KB $\color{green}{\text{-11 KB}}$ $\color{green}{\text{-73.1\%}}$
i18n ja-JP/oaynS8Knu-DB_C9YCF.js
216 KB 217 KB $\text{+523 B}$ $\color{orange}{\text{+0.2\%}}$
os ja-JP/oaynS8Knu-DSrzkafj.js
465 KB 465 KB $\text{+351 B}$ $\text{+0.1\%}$
widgets ja-JP/oaynS8Knu-DasTUj3Y.js
9.7 KB 9.7 KB $\text{-2 B}$ $\text{-0\%}$
photoswipe ja-JP/oaynS8Knu-OMfijBv8.js
73 KB 73 KB 0 B 0%
src/_boot_.ts ja-JP/oaynS8Knu-jvFgv3Tk.js
63 KB 63 KB 0 B 0%
runtime-core.esm-bundler ja-JP/oaynS8Knu-v_kYKDkM.js
50 KB 50 KB 0 B 0%
MkNotification ja-JP/oaynS8Knu-C1jlfVhr2.js
23 KB 23 KB 0 B 0%
built ja-JP/oaynS8Knu-DaYzER0Z.js
21 KB 21 KB 0 B 0%
reactivity.esm-bundler ja-JP/oaynS8Knu-CSrO7js8.js
21 KB 21 KB 0 B 0%
store ja-JP/oaynS8Knu-DbieiGlP.js
18 KB 18 KB 0 B 0%
runtime-dom.esm-bundler ja-JP/oaynS8Knu-C7PP-tAz.js
17 KB 17 KB 0 B 0%
tinycolor ja-JP/oaynS8Knu-PEGdpOg42.js
15 KB 15 KB 0 B 0%
achievements ja-JP/oaynS8Knu-eCphU14S.js
10 KB 10 KB 0 B 0%
theme ja-JP/oaynS8Knu-4vO0ZXTh2.js
8.3 KB 8.3 KB 0 B 0%
MkCustomEmoji ja-JP/oaynS8Knu-XaR-NJjL2.js
6.5 KB 6.5 KB 0 B 0%
MkAnimBg ja-JP/oaynS8Knu-Dfu90kEK2.js
4.8 KB 4.8 KB 0 B 0%
MkSwiper ja-JP/oaynS8Knu-CJRsztrC2.js
3 KB 3 KB 0 B 0%
navbar ja-JP/oaynS8Knu-misi_PCk.js
2.9 KB 2.9 KB 0 B 0%
MkUrl ja-JP/oaynS8Knu-CO68ftrR2.js
2.9 KB 2.9 KB 0 B 0%
MkTabs ja-JP/oaynS8Knu-BeyJrdmU2.js
2.8 KB 2.8 KB 0 B 0%
MkCode ja-JP/oaynS8Knu-VyfvqwFW2.js
2.7 KB 2.7 KB 0 B 0%
lookup ja-JP/oaynS8Knu-CAlnIlA62.js
2.3 KB 2.3 KB 0 B 0%
MkSparkle ja-JP/oaynS8Knu-Cc0WkZzs2.js
2.2 KB 2.2 KB 0 B 0%
_dark ja-JP/oaynS8Knu-DfGzfoC32.js
1.8 KB 1.8 KB 0 B 0%
media-proxy ja-JP/oaynS8Knu-DFn3JVOO.js
1.7 KB 1.7 KB 0 B 0%
_light ja-JP/oaynS8Knu-D67CB4xl.js
1.7 KB 1.7 KB 0 B 0%
hotkey ja-JP/oaynS8Knu-DvcVeHhX.js
1.6 KB 1.6 KB 0 B 0%
is-birthday ja-JP/oaynS8Knu-DQ6iyH1d2.js
1.5 KB 1.5 KB 0 B 0%
MkStickyContainer ja-JP/oaynS8Knu-BICKXuNT2.js
1.4 KB 1.4 KB 0 B 0%
config ja-JP/oaynS8Knu-DNtzj-qY.js
1.3 KB 1.3 KB 0 B 0%
preload-helper ja-JP/oaynS8Knu-DyAp3Zfi.js
1.3 KB 1.3 KB 0 B 0%
MkLoading ja-JP/oaynS8Knu-DndTpCB22.js
1.1 KB 1.1 KB 0 B 0%
MkInfo ja-JP/oaynS8Knu-CBDgVQnS.js
1 KB 1 KB 0 B 0%
webgl ja-JP/oaynS8Knu-wb3e_Vqx2.js
1 KB 1 KB 0 B 0%
use-scroll-position-keeper ja-JP/oaynS8Knu-STmSJg7N2.js
990 B 990 B 0 B 0%
misskey-api ja-JP/oaynS8Knu-BR1jNBEn.js
986 B 986 B 0 B 0%
instance ja-JP/oaynS8Knu-DJdbbAdo.js
918 B 918 B 0 B 0%
get-note-summary ja-JP/oaynS8Knu-Bkk3eQW_.js
704 B 704 B 0 B 0%
rolldown-runtime ja-JP/oaynS8Knu-QTnfLwEv.js
694 B 694 B 0 B 0%
page ja-JP/oaynS8Knu-DVxDvZ4C.js
688 B 688 B 0 B 0%
i ja-JP/oaynS8Knu-AFJdxzxK.js
631 B 631 B 0 B 0%
clear-cache ja-JP/oaynS8Knu-CozepYGC2.js
472 B 472 B 0 B 0%
emoji-base ja-JP/oaynS8Knu-BVbfT0gI2.js
413 B 413 B 0 B 0%
d-green-lime ja-JP/oaynS8Knu-DEHvjKGz.js
391 B 391 B 0 B 0%
use-interval ja-JP/oaynS8Knu-B5BnI2fD.js
384 B 384 B 0 B 0%
l-light ja-JP/oaynS8Knu-B8GJAiDX.js
351 B 351 B 0 B 0%
user ja-JP/oaynS8Knu-ByMYRwAL.js
205 B 205 B 0 B 0%
get-bg-color ja-JP/oaynS8Knu-DpyGyEl72.js
190 B 190 B 0 B 0%
isChromatic ja-JP/oaynS8Knu-Dd9satMa2.js
172 B 172 B 0 B 0%
is-device-darkmode ja-JP/oaynS8Knu-CHGi6RJT2.js
93 B 93 B 0 B 0%
_plugin-vue_export-helper ja-JP/oaynS8Knu-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 466 2,850 21 8,592 324 10 MB 2.8 MB 2.4 MB
After 467 2,854 21 8,606 325 10 MB 2.8 MB 2.4 MB
Δ $\color{orange}{\text{+1}}$ $\color{orange}{\text{+4}}$ 0 $\color{orange}{\text{+14}}$ $\color{orange}{\text{+1}}$ $\color{orange}{\text{+5.2 KB}}$ $\color{orange}{\text{+2.3 KB}}$ $\color{orange}{\text{+2 KB}}$
Δ (%) $\color{orange}{\text{+0.2\%}}$ $\color{orange}{\text{+0.1\%}}$ 0% $\color{orange}{\text{+0.2\%}}$ $\color{orange}{\text{+0.3\%}}$ $\text{+0.1\%}$ $\text{+0.1\%}$ $\text{+0.1\%}$

Open treemap HTML

@github-actions

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

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

差分はこちら
--- base
+++ head
@@ -14114,6 +14114,10 @@
                   "isPublic": {
                     "type": "boolean"
                   },
+                  "isPublicDisplayRequired": {
+                    "type": "boolean",
+                    "default": false
+                  },
                   "isModerator": {
                     "type": "boolean"
                   },
@@ -14986,6 +14990,9 @@
                   "isPublic": {
                     "type": "boolean"
                   },
+                  "isPublicDisplayRequired": {
+                    "type": "boolean"
+                  },
                   "isModerator": {
                     "type": "boolean"
                   },
@@ -62596,6 +62603,15 @@
                       "none"
                     ]
                   },
+                  "hiddenRoleIds": {
+                    "type": "array",
+                    "maxItems": 256,
+                    "uniqueItems": true,
+                    "items": {
+                      "type": "string",
+                      "format": "misskey:id"
+                    }
+                  },
                   "pinnedPageId": {
                     "type": [
                       "string",
@@ -88539,6 +88555,10 @@
             "items": {
               "type": "object",
               "properties": {
+                "id": {
+                  "type": "string",
+                  "format": "id"
+                },
                 "name": {
                   "type": "string"
                 },
@@ -88553,6 +88573,7 @@
                 }
               },
               "required": [
+                "id",
                 "name",
                 "iconUrl",
                 "displayOrder"
@@ -88929,6 +88950,13 @@
           "isDeleted": {
             "type": "boolean"
           },
+          "hiddenRoleIds": {
+            "type": "array",
+            "items": {
+              "type": "string",
+              "format": "id"
+            }
+          },
           "twoFactorBackupCodesStock": {
             "type": "string",
             "enum": [
@@ -89946,6 +89974,7 @@
           "preventAiLearning",
           "isExplorable",
           "isDeleted",
+          "hiddenRoleIds",
           "twoFactorBackupCodesStock",
           "hideOnlineStatus",
           "hasUnreadSpecifiedNotes",
@@ -93472,6 +93501,14 @@
             "type": "boolean",
             "example": false
           },
+          "asBadge": {
+            "type": "boolean",
+            "example": false
+          },
+          "isPublicDisplayRequired": {
+            "type": "boolean",
+            "example": false
+          },
           "displayOrder": {
             "type": "integer",
             "example": 0
@@ -93485,6 +93522,8 @@
           "description",
           "isModerator",
           "isAdministrator",
+          "asBadge",
+          "isPublicDisplayRequired",
           "displayOrder"
         ]
       },
@@ -93519,6 +93558,10 @@
                 "type": "boolean",
                 "example": false
               },
+              "isPublicDisplayRequired": {
+                "type": "boolean",
+                "example": false
+              },
               "isExplorable": {
                 "type": "boolean",
                 "example": false
@@ -93573,6 +93616,7 @@
               "target",
               "condFormula",
               "isPublic",
+              "isPublicDisplayRequired",
               "isExplorable",
               "asBadge",
               "preserveAssignmentOnMoveAccount",
[Get diff files from Workflow Page](https://github.com/misskey-dev/misskey/actions/runs/28649507997)

@github-actions

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

⚙️ Backend Memory Usage Report

After GC

Metric Base Head Δ median Δ MAD Δ min Δ max
HeapUsed 83.8 MB
± 0 MB
83.8 MB
± 0 MB
$\text{+0 MB}$
$\text{+0\%}$
0 MB $\text{-0 MB}$ $\text{+0.1 MB}$
Pss 312.6 MB
± 0.8 MB
310.2 MB
± 2.3 MB
$\color{green}{\text{-2 MB}}$
$\color{green}{\text{-0.6\%}}$
2.7 MB $\color{green}{\text{-6 MB}}$ $\color{orange}{\text{+0.7 MB}}$
Private_Dirty 269.2 MB
± 0.9 MB
266.9 MB
± 2.3 MB
$\color{green}{\text{-2.1 MB}}$
$\color{green}{\text{-0.8\%}}$
2.5 MB $\color{green}{\text{-5.7 MB}}$ $\color{orange}{\text{+0.6 MB}}$
VmRSS 350.5 MB
± 0.8 MB
348.1 MB
± 2.3 MB
$\color{green}{\text{-2 MB}}$
$\color{green}{\text{-0.6\%}}$
2.6 MB $\color{green}{\text{-6.1 MB}}$ $\color{orange}{\text{+0.7 MB}}$
External 10.7 MB
± 0 MB
10.7 MB
± 0 MB
$\text{+0 MB}$
$\text{+0\%}$
0 MB $\text{+0 MB}$ $\text{+0 MB}$

V8 Heap Snapshot Statistics

Metric Base Head Δ median Δ MAD Δ min Δ max
$\color{gray}{\rule{8pt}{8pt}}$ Total 102 MB
± 4.1 KB
102 MB
± 9.4 KB
$\text{+22 KB}$
$\text{+0\%}$
5.7 KB $\text{-33 KB}$ $\text{+66 KB}$
$\color{orange}{\rule{8pt}{8pt}}$ Code24.5% → 24.5%
25 MB 25 MB $\text{-4 KB}$ 10 KB $\text{-15 KB}$ $\text{+8.1 KB}$
$\color{red}{\rule{8pt}{8pt}}$ Strings42.1% → 42.1%
43 MB 43 MB $\text{+4.4 KB}$ 80 B $\text{+4.4 KB}$ $\text{+6.5 KB}$
$\color{cyan}{\rule{8pt}{8pt}}$ JS arrays4.1% → 4.1%
4.1 MB 4.1 MB $\text{+368 B}$ 0 B $\text{+368 B}$ $\text{+368 B}$
$\color{green}{\rule{8pt}{8pt}}$ Typed arrays0.5% → 0.5%
533 KB 533 KB 0 B 0 B 0 B 0 B
$\color{yellow}{\rule{8pt}{8pt}}$ System objects2.2% → 2.2%
2.2 MB 2.2 MB $\text{+2.1 KB}$ 3 KB $\text{-3.3 KB}$ $\text{+5 KB}$
$\color{violet}{\rule{8pt}{8pt}}$ Other JS objs26.6% → 26.6%
27 MB 27 MB $\text{+17 KB}$ 14 KB $\text{-31 KB}$ $\text{+46 KB}$
$\color{pink}{\rule{8pt}{8pt}}$ Other non-JS objs0% → 0%
37 KB 37 KB 0 B 0 B 0 B 0 B
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","array":"#af7aa1","otherNonJsObjects":"#ff9da7"}}}}%%
sankey-beta
"Head","Code",24.5
"Code","bytecode",8.09
"Code","Other",16.41
"Head","Strings",42.13
"Strings","string",41.56
"Strings","Other",0.57
"Head","JS arrays",4.06
"Head","Typed arrays",0.52
"Head","System objects",2.17
"Head","Other JS objs",26.57
"Other JS objs","array",9.74
"Other JS objs","Other",16.83
"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 150 150 0 0%
Loaded JS source 13 MB 13 MB $\color{orange}{\text{+2.5 KB}}$ $\color{orange}{\text{+0\%}}$
External packages loaded 19 19 0 0%
Native addon packages 2 2 0 0%

Largest Newly Loaded Modules

Module Package Loaded JS
packages/backend/built/ApNoteService-CAtZSFfm.js backend 4 MB
packages/backend/built/Meta-Dt9uOHOu.js backend 1.4 MB
packages/backend/built/QueueService-CV8R-Mnh.js backend 1 MB
packages/backend/built/ServerService-ROpZ3T2W.js backend 973 KB
packages/backend/built/endpoints-Cmxemnu-.js backend 875 KB
packages/backend/built/MetaEntityService-Do2ZDeZS.js backend 627 KB
packages/backend/built/ap-request-I3M4Cvjn.js backend 238 KB
packages/backend/built/_-Dn3cjr4C.js backend 81 KB
packages/backend/built/gen-spec-DHjAQ1G6.js backend 57 KB
packages/backend/built/GlobalModule-dMkJGSX-.js backend 52 KB

@kakkokari-gtyih kakkokari-gtyih self-requested a review June 29, 2026 14:11
@kakkokari-gtyih

Copy link
Copy Markdown
Member

落ち着いたら見る

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

Labels

packages/backend:test packages/backend Server side specific issue/PR packages/frontend Client side specific issue/PR packages/misskey-js

Projects

Development

Successfully merging this pull request may close these issues.

特定の公開ロールとロールバッジをユーザー側で個別に非表示にできるようにする機能

2 participants