Release: 2026.4.0#17284
Conversation
* 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
* refactor(frontend): MkButtonのprops等整理 * fix
|
この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": [ |
Codecov Report❌ Patch coverage is 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. 🚀 New features to boost your workflow:
|
Backend memory usage comparisonBefore GC
After GC
After Request
|
* 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
|
/preview |
|
なんかinstanceTickerの設定が出ない気がするけどおま環かそら |
* 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)
* fix(frontend): follow-up of #13509 * fix: fix use of inappropriate method * enhance(frontend): niraxにテストを追加
…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>
|
/preview |
* fix * Update CHANGELOG.md
* 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>
|
/request-release-review |
|
To dev team (@misskey-dev/dev): リリースが提案されています 🚀 GOの場合はapprove、NO GOの場合はその旨コメントをお願いいたします。 判断にあたって考慮すべき観点は、
などが挙げられます。 ご協力ありがとうございます ✨ |
* 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
left a comment
There was a problem hiding this comment.
途中ですが昼休憩が終わったのでいったん投げます。残りは帰り
| break; | ||
|
|
||
| case 'specified': | ||
| visibleUserIds = new Set(this.note.visibleUserIds.filter(id => targetUserIds.includes(id))); |
There was a problem hiding this comment.
いうてvisibleuseridsもqueueもそんなに大きくならないから問題にならないと思うけど、O(NM)になってるのが気になった。上限小さくないと記憶してるので
上のconst exist = this.queue.find(x => x.target === notifiee);も似た問題になりそう。
There was a problem hiding this comment.
ここにおいては 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)}`); |
There was a problem hiding this comment.
エラーになってるけど return string して正常に終了したほうがいい気が私はしました。
There was a problem hiding this comment.
これ書き方が混在しててどっち採用するか迷ったんですよね
returnでそうするのが正解なのかがわからなかったのでthrowのほうによせました
There was a problem hiding this comment.
記録するべきエラーならエラーに、そうじゃないならreturnにだと私は認識してます。(詳しくは調べられてないですが)
たぶん現行のだとエラートラッキング入れてる場合に余計なエラーが積みあがると認識してます。
下のcatchでstringにしてるのも処理の上ではエラーだけど発生することが許容されるタイプだからthrowしてないと認識してました。
| <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> |
There was a problem hiding this comment.
non blocker: getUploadName(item).lastIndexOf('.')が繰り返されてるのが気になりましたが vue だと変数なくてこうするしかないんでしたっけ
| import('@/components/MkEmojiPickerDialog.vue').then(m => { | ||
| this.loadedComponent = markRaw(m.default); | ||
| return this.loadedComponent; | ||
| }), |
There was a problem hiding this comment.
Non blocker: ロード中のエラーからの回復を考えるなら今の形が正しいけど、完了してない時のフォールバックとしてであれば、プリロードとこれの両方解決されるはずなので loadedComponent への代入はなくていいと思いました。
| import('@/components/MkEmojiPickerDialog.vue').then(m => { | ||
| this.loadedComponent = markRaw(m.default); | ||
| return this.loadedComponent; | ||
| }), |
There was a problem hiding this comment.
同じく
また複数箇所になるなら共通の仕組みをできれば作りたい気がしますね。propsが2回書かれてるのがあんまり綺麗に思わなかったので
| @@ -196,9 +195,9 @@ export function popup<T extends Component>( | |||
| const id = ++popupIdCount; | |||
| const dispose = () => { | |||
| // このsetTimeoutが無いと挙動がおかしくなる(autocompleteが閉じなくなる)。Vueのバグ? | |||
There was a problem hiding this comment.
| // このsetTimeoutが無いと挙動がおかしくなる(autocompleteが閉じなくなる)。Vueのバグ? | |
| // このnextTickが無いと挙動がおかしくなる(autocompleteが閉じなくなる)。Vueのバグ? |
|
バージョン更新 |


General
Client
Server
(Cherry-picked from enhance: 起動からlistenまでかかる時間を減らす MisskeyIO/misskey#1410)
/api-docにアクセスできない問題を修正alsoKnownAsfrom remote actors as either array or unwrapped singleton(Cherry-picked from lqvp/misskey-tempura@17ed410)
(Cherry-picked from lqvp/misskey-tempura@3f0f4bf)
actoras an id string or embedded object in inbox processor and ActivityPub inbox servicemeilisearchの設定がある状態でほかの検索プロバイダを利用すると、UI上からリモートのノートの検索ができない問題を修正(Cherry-picked from lqvp/misskey-tempura@cbce96c originally presented in ノート通知で公開範囲を考慮する yojo-art/cherrypick#743)