Skip to content

Release: 2026.4.0#17284

Closed
github-actions[bot] wants to merge 63 commits intomasterfrom
develop
Closed

Release: 2026.4.0#17284
github-actions[bot] wants to merge 63 commits intomasterfrom
develop

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented Apr 6, 2026

General

  • Enhance: アバターデコレーションにカテゴリを設定できるように

Client

  • Enhance: チャンネル指定リノートでリノート先のチャンネルに移動できるように
  • Enhance: ベータ版でのアップデート時のダイアログの更新情報リンクをGitHubのReleasesページに遷移するようにし、正しく閲覧できるように
  • Fix: 一部のページ内リンクが正しく動作しない問題を修正
  • Fix: ドライブへの画像アップロード時にファイル名の変更が無視される不具合を修正
  • Fix: 連合が無効化されたサーバーで一部の設定項目が空欄で表示される問題を修正
  • Fix: オーディオ、動画の再生速度メニューが開けない問題を修正

Server

  • Enhance: メモリ使用量を削減
  • Enhance: 起動の高速化
    (Cherry-picked from enhance: 起動からlistenまでかかる時間を減らす MisskeyIO/misskey#1410)
  • Enhance: バックエンドの開発モード時の安定性向上
  • Enhance: バックエンドビルド・テスト時に使用する依存関係の整理(swc/esbuild→Rolldown, Jest→Vitest)
  • Fix: ファイルシステムを用いる処理におけるパスの取り扱いを改善
  • Fix: /api-doc にアクセスできない問題を修正
  • Fix: support alsoKnownAs from remote actors as either array or unwrapped singleton
  • Fix: ローカルに存在しないリモートアカウントに対するアカウント削除リクエストを受信した際に、そのユーザーを新規作成して削除する挙動を修正
  • Fix: Inboxでの特定のエラーによる失敗はDelayedにしない
  • Fix: ID生成アルゴリズムにULIDを使用している場合にMisskeyが正しく動作しない問題を修正
  • Fix: リレー経由で届いたノートがリノートとして表示される問題を修正
  • Fix: robots.txtの内容を調整
  • Fix: 特定のユーザーに管理者権限を持つロールが複数ついている際に、取得できるユーザーIDが重複する問題を修正
    (Cherry-picked from lqvp/misskey-tempura@17ed410)
  • Fix: ブロックしたサーバーからのInboxジョブが蓄積し続ける問題を修正
    (Cherry-picked from lqvp/misskey-tempura@3f0f4bf)
  • Fix: support activity with actor as an id string or embedded object in inbox processor and ActivityPub inbox service
  • Fix: コンフィグファイルに meilisearch の設定がある状態でほかの検索プロバイダを利用すると、UI上からリモートのノートの検索ができない問題を修正
  • Fix: ノートに関する通知で公開範囲が考慮されていない問題を修正
    (Cherry-picked from lqvp/misskey-tempura@cbce96c originally presented in ノート通知で公開範囲を考慮する yojo-art/cherrypick#743)

github-actions Bot and others added 8 commits March 31, 2026 12:14
* deps: update dependencies

* fix?

* fix

* Update AiService.ts

* fix

* update deps
* Initial plan

* fix: fix /api-doc returning 404 after backend minification (#17266)

Agent-Logs-Url: https://github.com/misskey-dev/misskey/sessions/8d7d0585-55da-412f-a8ee-dde1b6565026

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* enhance: API DocのHTMLをJSXで生成するように

* Update Changelog

* chore: remove unused imports [ci skip]

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
* deps: Update vite to v8

* fix

* migrate some plugins to rolldown-based

* fix broken lockfile

* wip

* update rolldown

* override rolldown version

* perf

* spdx

* fix

* update vite to 8.0.1

* chore: rewrite rollup-plugin-unwind-css-module-class-name with MagicString

* format

* swap type definitions

* replace using MagicString

* provided magicString

* fix code style

* fix

* fix

* fix

* fix

* fix

---------

Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>

* fix: lint fixes

* swap sass with sass-embedded

* fix lint

* fix: インライン化されたVue SFC出力に対してCSS Module定義削除が効かないのを修正

* fix

* fix: バックエンドのCSS読み込みの方法が悪いのを修正

* fix: 使用されないpreloadを削除

* fix lint [ci skip]

* Apply suggestion from @syuilo

* Add comment in pnpm-workspace.yaml [ci skip]

* update vite/rolldown

* remove magic-string

---------

Co-authored-by: cm-ayf <cm.ayf2734@gmail.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
* fix: handle array or string in alsoKnownAs, closes #17274

* style: use more idiomatic toArray() for UserEntityService handling of alsoKnownAs

* fix: handle array-valued or unwrapped alsoKnownAs in ApPersonService

* doc: note about bugfix for alsoKnownAs
* enhance(frontend): チャンネル指定リノートでリノート先のチャンネルに移動できるように

* Update Changelog

* fix condition

* refactor
Revert "deps: Update vite to v8 (#17238)"

This reverts commit e601fcb.
* refactor(frontend): MkButtonのprops等整理

* fix
@github-actions
Copy link
Copy Markdown
Contributor Author

github-actions Bot commented Apr 6, 2026

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

差分はこちら
--- base
+++ head
@@ -1,7 +1,7 @@
 {
   "openapi": "3.1.0",
   "info": {
-    "version": "2026.3.2",
+    "version": "2026.4.0-beta.1",
     "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": [
@@ -51264,6 +51289,12 @@
                           "type": "string",
                           "format": "id"
                         }
+                      },
+                      "category": {
+                        "type": [
+                          "string",
+                          "null"
+                        ]
                       }
                     },
                     "required": [

Get diff files from Workflow Page

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 6, 2026

Codecov Report

❌ Patch coverage is 46.05263% with 246 lines in your changes missing coverage. Please review.
✅ Project coverage is 24.85%. Comparing base (c5fd360) to head (985de91).
⚠️ Report is 32 commits behind head on master.

Files with missing lines Patch % Lines
packages/frontend/src/components/MkMenu.vue 0.00% 44 Missing and 10 partials ⚠️
...ages/backend/src/server/web/ClientServerService.ts 0.00% 26 Missing and 1 partial ⚠️
...kend/src/queue/processors/InboxProcessorService.ts 0.00% 17 Missing and 6 partials ⚠️
packages/frontend/src/os.ts 0.00% 18 Missing and 2 partials ⚠️
packages/backend/src/core/NoteCreateService.ts 0.00% 15 Missing and 3 partials ⚠️
.../lib/rollup-plugin-unwind-css-module-class-name.ts 88.43% 12 Missing and 5 partials ⚠️
...ges/backend/src/core/activitypub/ApInboxService.ts 0.00% 5 Missing and 7 partials ⚠️
packages/frontend/src/components/MkPageWindow.vue 0.00% 9 Missing and 2 partials ⚠️
packages/backend/src/core/RelayService.ts 0.00% 7 Missing and 1 partial ⚠️
...ages/backend/src/server/web/HtmlTemplateService.ts 0.00% 8 Missing ⚠️
... and 19 more
Additional details and impacted files
@@             Coverage Diff             @@
##           master   #17284       +/-   ##
===========================================
- Coverage   63.52%   24.85%   -38.68%     
===========================================
  Files        1161     1150       -11     
  Lines      116309    38847    -77462     
  Branches     8352    10785     +2433     
===========================================
- Hits        73886     9654    -64232     
+ Misses      40218    23424    -16794     
- Partials     2205     5769     +3564     

☔ View full report in Codecov by Sentry.
📢 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
Copy link
Copy Markdown
Contributor Author

github-actions Bot commented Apr 6, 2026

Backend memory usage comparison

Before GC

Metric base (MB) head (MB) Diff (MB) Diff (%)
VmRSS 316.66 MB 307.70 MB -8.96 MB -2.83%
VmHWM 316.66 MB 307.70 MB -8.96 MB -2.83%
VmSize 23109.64 MB 23104.26 MB -5.37 MB -0.02%
VmData 1380.52 MB 1369.71 MB -10.81 MB -0.78%

After GC

Metric base (MB) head (MB) Diff (MB) Diff (%)
VmRSS 316.73 MB 307.72 MB -9.01 MB -2.84%
VmHWM 316.73 MB 307.72 MB -9.01 MB -2.84%
VmSize 23109.64 MB 23104.26 MB -5.37 MB -0.02%
VmData 1380.52 MB 1369.71 MB -10.81 MB -0.78%

After Request

Metric base (MB) head (MB) Diff (MB) Diff (%)
VmRSS 317.14 MB 308.14 MB -9.00 MB -2.83%
VmHWM 317.14 MB 308.14 MB -9.00 MB -2.83%
VmSize 23109.64 MB 23104.26 MB -5.37 MB -0.02%
VmData 1380.52 MB 1369.71 MB -10.81 MB -0.78%

See workflow logs for details

* wip

* Update MkMenu.vue

* wip

* wip

* Update MkMenu.vue

* wip

* Update MkMenu.vue

* Update MkMenu.vue

* Update MkMenu.vue

* Update MkMenu.vue

* Update MkMenu.vue

* Update MkMenu.vue

* Update MkMenu.vue

* Update MkMenu.vue

* 💢

* Update MkMenu.vue

* Update MkMenu.vue

* Update MkMenu.vue
@syuilo
Copy link
Copy Markdown
Member

syuilo commented Apr 7, 2026

/preview

@syuilo
Copy link
Copy Markdown
Member

syuilo commented Apr 7, 2026

なんかinstanceTickerの設定が出ない気がするけどおま環かそら

@syuilo
Copy link
Copy Markdown
Member

syuilo commented Apr 7, 2026

image

syuilo and others added 5 commits April 7, 2026 19:30
* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Lao)

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

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Catalan)

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

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

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Italian)
…る修正 (#17281)

* fix(frontend): follow-up of #13509

* fix: fix use of inappropriate method

* Update CHANGELOG.md [ci skip]
* fix(frontend): follow-up of #13509

* fix: fix use of inappropriate method

* enhance(frontend): niraxにテストを追加
@syuilo
Copy link
Copy Markdown
Member

syuilo commented Apr 8, 2026

image

他に再現する人いるかしら

kakkokari-gtyih and others added 3 commits April 26, 2026 11:37
…17341)

* fix(backend): meilisearchを使用していない場合のnoteSearchableScopeの値が誤っている問題を修正

* Update Changelog
#17340)

* fix: change bare activity.actor to getApId(activity.actor) in InboxProcessorService (closes #17338)

* doc: update CHANGELOG.md to note fix for #17338

* fix: additional activity.actor wrappers in ApInboxService

* Update CHANGELOG.md

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
* fix(backend): ブロックしたインスタンスのInboxジョブが蓄積し続ける問題を修正

* refactor

* Upddate changelog

---------

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
@syuilo
Copy link
Copy Markdown
Member

syuilo commented Apr 26, 2026

/preview

syuilo and others added 6 commits April 27, 2026 08:42
* fix(frontend): MenuRadioの指定方法変更

* fix indent

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
* fix(backend): ノート通知で公開範囲を考慮するように

* refactor: remove unused imports

* Update Changelog

* Update Changelog

* fix: フォロワー限定ノートは通知

---------

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>
…ge (#17347)

* Initial plan

* fix: redirect beta/alpha/rc update info button to GitHub releases page

Agent-Logs-Url: https://github.com/misskey-dev/misskey/sessions/4ac22dd9-13dd-4ef2-a6f7-d68cfda4a19f

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
@syuilo
Copy link
Copy Markdown
Member

syuilo commented Apr 27, 2026

/request-release-review

@github-actions
Copy link
Copy Markdown
Contributor Author

To dev team (@misskey-dev/dev):

リリースが提案されています 🚀

GOの場合はapprove、NO GOの場合はその旨コメントをお願いいたします。

判断にあたって考慮すべき観点は、

  • やり残したことはないか?
  • CHANGELOGは過不足ないか?
  • バージョンに問題はないか?(月跨いでいるのに更新忘れているなど)
  • 再考すべき仕様・実装はないか?
  • ベータ版を検証したサーバーから不具合の報告等は上がってないか?
  • (セキュリティの修正や重要なバグ修正などのため)リリースを急いだ方が良いか?そうではないか?
  • Actionsが落ちていないか?

などが挙げられます。

ご協力ありがとうございます ✨

renovate Bot and others added 3 commits April 27, 2026 15:17
)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* Revert "fix(frontend): popupのりアクティビティがチャンクをまたいで切れる事がある問題を修正"

This reverts commit 0a93f52.

* fix: iOS PWA でリアクション・絵文字ピッカーが動作しない問題を修正

Agent-Logs-Url: https://github.com/lqvp/misskey-tempura/sessions/44526368-0e6a-4a94-8991-fcdc094d2b96

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

* refactor

* fix

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>
@anatawa12
Copy link
Copy Markdown
Member

み始めました

Copy link
Copy Markdown
Member

@anatawa12 anatawa12 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

途中ですが昼休憩が終わったのでいったん投げます。残りは帰り

break;

case 'specified':
visibleUserIds = new Set(this.note.visibleUserIds.filter(id => targetUserIds.includes(id)));
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

いうてvisibleuseridsもqueueもそんなに大きくならないから問題にならないと思うけど、O(NM)になってるのが気になった。上限小さくないと記憶してるので
上のconst exist = this.queue.find(x => x.target === notifiee);も似た問題になりそう。

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ここにおいては visibleUserIdsがqueue.targetのサブセットである理由がないので、visibleUserIds = new Set(this.note.visibleUserIds) でよさそう。

public / homeについてはそもそも確認するのが無駄なので nullable にしちゃって!(visibleUserIds?.has(x.target) ?? true) にしちゃうのが一つの手かも

if (userExistenceCheckApId != null) {
const user = await this.apDbResolverService.getUserFromApId(userExistenceCheckApId);
if (user == null) {
throw new Bull.UnrecoverableError(`skip: user not found for delete activity. ${getApId(userExistenceCheckApId)}`);
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

エラーになってるけど return string して正常に終了したほうがいい気が私はしました。

Copy link
Copy Markdown
Contributor

@kakkokari-gtyih kakkokari-gtyih Apr 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

これ書き方が混在しててどっち採用するか迷ったんですよね
returnでそうするのが正解なのかがわからなかったのでthrowのほうによせました

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

記録するべきエラーならエラーに、そうじゃないならreturnにだと私は認識してます。(詳しくは調べられてないですが)

たぶん現行のだとエラートラッキング入れてる場合に余計なエラーが積みあがると認識してます。

下のcatchでstringにしてるのも処理の上ではエラーだけど発生することが許容されるタイプだからthrowしてないと認識してました。

Copy link
Copy Markdown
Member

@anatawa12 anatawa12 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lgtm

Comment on lines +27 to +30
<MkCondensedLine :minScale="2 / 3">
<span>{{ getUploadName(item).lastIndexOf('.') != -1 ? getUploadName(item).substring(0, getUploadName(item).lastIndexOf('.')) : getUploadName(item) }}</span>
<span v-if="getUploadName(item).lastIndexOf('.') != -1" style="opacity: 0.5;">{{ getUploadName(item).substring(getUploadName(item).lastIndexOf('.')) }}</span>
</MkCondensedLine>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

non blocker: getUploadName(item).lastIndexOf('.')が繰り返されてるのが気になりましたが vue だと変数なくてこうするしかないんでしたっけ

Comment on lines +69 to +72
import('@/components/MkEmojiPickerDialog.vue').then(m => {
this.loadedComponent = markRaw(m.default);
return this.loadedComponent;
}),
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Non blocker: ロード中のエラーからの回復を考えるなら今の形が正しいけど、完了してない時のフォールバックとしてであれば、プリロードとこれの両方解決されるはずなので loadedComponent への代入はなくていいと思いました。

Comment on lines +66 to +69
import('@/components/MkEmojiPickerDialog.vue').then(m => {
this.loadedComponent = markRaw(m.default);
return this.loadedComponent;
}),
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

同じく

また複数箇所になるなら共通の仕組みをできれば作りたい気がしますね。propsが2回書かれてるのがあんまり綺麗に思わなかったので

@@ -196,9 +195,9 @@ export function popup<T extends Component>(
const id = ++popupIdCount;
const dispose = () => {
// このsetTimeoutが無いと挙動がおかしくなる(autocompleteが閉じなくなる)。Vueのバグ?
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// このsetTimeoutが無いと挙動がおかしくなる(autocompleteが閉じなくなる)。Vueのバグ?
// このnextTickが無いと挙動がおかしくなる(autocompleteが閉じなくなる)。Vueのバグ?

@syuilo
Copy link
Copy Markdown
Member

syuilo commented May 1, 2026

バージョン更新

@syuilo syuilo closed this May 1, 2026
@github-project-automation github-project-automation Bot moved this from Approved to Done in [実験中] 管理用 May 1, 2026
@anatawa12 anatawa12 mentioned this pull request May 1, 2026
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:test packages/frontend Client side specific issue/PR packages/misskey-js packages/sw size:XL This PR changes 500-999 lines, ignoring generated files.

Projects

Development

Successfully merging this pull request may close these issues.

10 participants