From ed9facbb33e1baef41a154bbdef42d62d622d91e Mon Sep 17 00:00:00 2001
From: syuilo <Syuilotan@yahoo.co.jp>
Date: Mon, 23 Jan 2023 12:53:44 +0900
Subject: [PATCH 1/9] fix(client): Aiscript: button is not defined

Fix #9704
---
 CHANGELOG.md                                 | 7 +++++++
 packages/frontend/src/scripts/aiscript/ui.ts | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2b820f22c3..61f7367c4e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,13 @@
 You should also include the user name that made the change.
 -->
 
+## 13.x.x (unreleased)
+
+### Improvements
+
+### Bugfixes
+- Aiscript: button is not defined
+
 ## 13.1.7 (2023/01/22)
 
 ### Improvements
diff --git a/packages/frontend/src/scripts/aiscript/ui.ts b/packages/frontend/src/scripts/aiscript/ui.ts
index b1895a5f33..fb73c0b4b7 100644
--- a/packages/frontend/src/scripts/aiscript/ui.ts
+++ b/packages/frontend/src/scripts/aiscript/ui.ts
@@ -303,7 +303,7 @@ function getButtonOptions(def: values.Value | undefined, call: (fn: values.VFn,
 	if (primary) utils.assertBoolean(primary);
 	const rounded = def.value.get('rounded');
 	if (rounded) utils.assertBoolean(rounded);
-	const disabled = button.value.get('disabled');
+	const disabled = def.value.get('disabled');
 	if (disabled) utils.assertBoolean(disabled);
 
 	return {

From c1dfbe26233821e2068cae679c3acf6d42374c5f Mon Sep 17 00:00:00 2001
From: nexryai <61890205+nexryai@users.noreply.github.com>
Date: Mon, 23 Jan 2023 16:08:09 +0900
Subject: [PATCH 2/9] Hide the value of the object storage secret key input
 form in the control panel (#9706)

---
 packages/frontend/src/pages/admin/object-storage.vue | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages/frontend/src/pages/admin/object-storage.vue b/packages/frontend/src/pages/admin/object-storage.vue
index 54d7e09532..6a6af637ed 100644
--- a/packages/frontend/src/pages/admin/object-storage.vue
+++ b/packages/frontend/src/pages/admin/object-storage.vue
@@ -38,7 +38,7 @@
 							<template #label>Access key</template>
 						</MkInput>
 
-						<MkInput v-model="objectStorageSecretKey">
+						<MkInput v-model="objectStorageSecretKey" type="password">
 							<template #prefix><i class="ti ti-key"></i></template>
 							<template #label>Secret key</template>
 						</MkInput>

From bd23522c767f97a669e5ecd5cacfa08ec0fbc608 Mon Sep 17 00:00:00 2001
From: syuilo <Syuilotan@yahoo.co.jp>
Date: Mon, 23 Jan 2023 16:19:13 +0900
Subject: [PATCH 3/9] =?UTF-8?q?enhance(client):=20=E3=82=AB=E3=82=B9?=
 =?UTF-8?q?=E3=82=BF=E3=83=A0=E7=B5=B5=E6=96=87=E5=AD=97=E4=B8=80=E8=A6=A7?=
 =?UTF-8?q?=E3=81=AE=E3=83=91=E3=83=95=E3=82=A9=E3=83=BC=E3=83=9E=E3=83=B3?=
 =?UTF-8?q?=E3=82=B9=E3=82=92=E6=94=B9=E5=96=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 packages/frontend/src/pages/emojis.emoji.vue | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/packages/frontend/src/pages/emojis.emoji.vue b/packages/frontend/src/pages/emojis.emoji.vue
index fb3bce570c..0edc290801 100644
--- a/packages/frontend/src/pages/emojis.emoji.vue
+++ b/packages/frontend/src/pages/emojis.emoji.vue
@@ -1,6 +1,6 @@
 <template>
 <button class="zuvgdzyu _button" @click="menu">
-	<img :src="`/emoji/${emoji.name}.webp`" class="img" loading="lazy"/>
+	<img :src="emoji.url" class="img" loading="lazy"/>
 	<div class="body">
 		<div class="name _monospace">{{ emoji.name }}</div>
 		<div class="info">{{ emoji.aliases.join(' ') }}</div>
@@ -15,7 +15,12 @@ import copyToClipboard from '@/scripts/copy-to-clipboard';
 import { i18n } from '@/i18n';
 
 const props = defineProps<{
-	emoji: Record<string, unknown>; // TODO
+	emoji: {
+		name: string;
+		aliases: string[];
+		category: string;
+		url: string;
+	};
 }>();
 
 function menu(ev) {

From 683ddbef3ec147a9b5b4f1055067639ca96067ed Mon Sep 17 00:00:00 2001
From: syuilo <Syuilotan@yahoo.co.jp>
Date: Mon, 23 Jan 2023 16:33:47 +0900
Subject: [PATCH 4/9] update contributors

---
 packages/frontend/src/pages/about-misskey.vue | 65 +++++++++++++++++--
 1 file changed, 60 insertions(+), 5 deletions(-)

diff --git a/packages/frontend/src/pages/about-misskey.vue b/packages/frontend/src/pages/about-misskey.vue
index 82f4e30a45..bc63d7159a 100644
--- a/packages/frontend/src/pages/about-misskey.vue
+++ b/packages/frontend/src/pages/about-misskey.vue
@@ -40,11 +40,31 @@
 				</FormSection>
 				<FormSection>
 					<template #label>{{ i18n.ts._aboutMisskey.contributors }}</template>
-					<div class="_formLinksGrid">
-						<FormLink to="https://github.com/syuilo" external>@syuilo</FormLink>
-						<FormLink to="https://github.com/tamaina" external>@tamaina</FormLink>
-						<FormLink to="https://github.com/acid-chicken" external>@acid-chicken</FormLink>
-						<FormLink to="https://github.com/rinsuki" external>@rinsuki</FormLink>
+					<div :class="$style.contributors">
+						<a href="https://github.com/syuilo" target="_blank" :class="$style.contributor">
+							<img src="https://avatars.githubusercontent.com/u/4439005?v=4" :class="$style.contributorAvatar">
+							<span :class="$style.contributorUsername">@syuilo</span>
+						</a>
+						<a href="https://github.com/tamaina" target="_blank" :class="$style.contributor">
+							<img src="https://avatars.githubusercontent.com/u/7973572?v=4" :class="$style.contributorAvatar">
+							<span :class="$style.contributorUsername">@tamaina</span>
+						</a>
+						<a href="https://github.com/acid-chicken" target="_blank" :class="$style.contributor">
+							<img src="https://avatars.githubusercontent.com/u/20679825?v=4" :class="$style.contributorAvatar">
+							<span :class="$style.contributorUsername">@acid-chicken</span>
+						</a>
+						<a href="https://github.com/rinsuki" target="_blank" :class="$style.contributor">
+							<img src="https://avatars.githubusercontent.com/u/6533808?v=4" :class="$style.contributorAvatar">
+							<span :class="$style.contributorUsername">@rinsuki</span>
+						</a>
+						<a href="https://github.com/mei23" target="_blank" :class="$style.contributor">
+							<img src="https://avatars.githubusercontent.com/u/30769358?v=4" :class="$style.contributorAvatar">
+							<span :class="$style.contributorUsername">@mei23</span>
+						</a>
+						<a href="https://github.com/robflop" target="_blank" :class="$style.contributor">
+							<img src="https://avatars.githubusercontent.com/u/8159402?v=4" :class="$style.contributorAvatar">
+							<span :class="$style.contributorUsername">@robflop</span>
+						</a>
 					</div>
 					<template #caption><MkLink url="https://github.com/misskey-dev/misskey/graphs/contributors">{{ i18n.ts._aboutMisskey.allContributors }}</MkLink></template>
 				</FormSection>
@@ -295,3 +315,38 @@ definePageMetadata({
 	}
 }
 </style>
+
+<style lang="scss" module>
+.contributors {
+	display: grid;
+	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
+	grid-gap: 12px;
+}
+
+.contributor {
+	display: flex;
+	align-items: center;
+	padding: 12px;
+	background: var(--buttonBg);
+	border-radius: 6px;
+
+	&:hover {
+		text-decoration: none;
+		background: var(--buttonHoverBg);
+	}
+
+	&.active {
+		color: var(--accent);
+		background: var(--buttonHoverBg);
+	}
+}
+
+.contributorAvatar {
+	width: 30px;
+	border-radius: 100%;
+}
+
+.contributorUsername {
+	margin-left: 12px;
+}
+</style>

From eefebab5302aac9751128c4b24f53678ab73ff0c Mon Sep 17 00:00:00 2001
From: syuilo <Syuilotan@yahoo.co.jp>
Date: Mon, 23 Jan 2023 16:36:47 +0900
Subject: [PATCH 5/9] =?UTF-8?q?=E3=82=A2=E3=83=8B=E3=83=A1=E3=83=BC?=
 =?UTF-8?q?=E3=82=B7=E3=83=A7=E3=83=B3=E6=B8=9B=E3=82=89=E3=81=99=E3=82=AA?=
 =?UTF-8?q?=E3=83=97=E3=82=B7=E3=83=A7=E3=83=B3=E6=9C=89=E5=8A=B9=E6=99=82?=
 =?UTF-8?q?=E3=81=AF=E3=83=AA=E3=82=A2=E3=82=AF=E3=82=B7=E3=83=A7=E3=83=B3?=
 =?UTF-8?q?=E3=81=AE=E3=82=A2=E3=83=8B=E3=83=A1=E3=83=BC=E3=82=B7=E3=83=A7?=
 =?UTF-8?q?=E3=83=B3=E3=82=92=E7=84=A1=E5=8A=B9=E3=81=AB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 packages/frontend/src/components/MkReactionsViewer.reaction.vue | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/packages/frontend/src/components/MkReactionsViewer.reaction.vue b/packages/frontend/src/components/MkReactionsViewer.reaction.vue
index ec4042d18c..eed6b46594 100644
--- a/packages/frontend/src/components/MkReactionsViewer.reaction.vue
+++ b/packages/frontend/src/components/MkReactionsViewer.reaction.vue
@@ -21,6 +21,7 @@ import { useTooltip } from '@/scripts/use-tooltip';
 import { $i } from '@/account';
 import MkReactionEffect from '@/components/MkReactionEffect.vue';
 import { claimAchievement } from '@/scripts/achievements';
+import { defaultStore } from '@/store';
 
 const props = defineProps<{
 	reaction: string;
@@ -61,6 +62,7 @@ const toggleReaction = () => {
 
 const anime = () => {
 	if (document.hidden) return;
+	if (!defaultStore.state.animation) return;
 
 	const rect = buttonEl.value.getBoundingClientRect();
 	const x = rect.left + 16;

From 7028b7331b2beb56f49241fdb8e203da5b38bd20 Mon Sep 17 00:00:00 2001
From: syuilo <Syuilotan@yahoo.co.jp>
Date: Mon, 23 Jan 2023 16:40:31 +0900
Subject: [PATCH 6/9] =?UTF-8?q?=E4=BB=96=E4=BA=BA=E3=81=AE=E5=AE=9F?=
 =?UTF-8?q?=E7=B8=BE=E9=96=B2=E8=A6=A7=E6=99=82=E3=81=AF=E7=8D=B2=E5=BE=97?=
 =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E3=82=92=E8=A1=A8=E7=A4=BA=E3=81=97=E3=81=AA?=
 =?UTF-8?q?=E3=81=84=E3=82=88=E3=81=86=E3=81=AB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 packages/frontend/src/components/MkAchievements.vue | 6 ++++--
 packages/frontend/src/pages/user/achievements.vue   | 2 +-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/packages/frontend/src/components/MkAchievements.vue b/packages/frontend/src/components/MkAchievements.vue
index 64fea96354..19d04721d8 100644
--- a/packages/frontend/src/components/MkAchievements.vue
+++ b/packages/frontend/src/components/MkAchievements.vue
@@ -16,8 +16,8 @@
 						<time v-tooltip="new Date(achievement.unlockedAt).toLocaleString()">{{ new Date(achievement.unlockedAt).getFullYear() }}/{{ new Date(achievement.unlockedAt).getMonth() + 1 }}/{{ new Date(achievement.unlockedAt).getDate() }}</time>
 					</span>
 				</div>
-				<div :class="$style.description">{{ i18n.ts._achievements._types['_' + achievement.name].description }}</div>
-				<div v-if="i18n.ts._achievements._types['_' + achievement.name].flavor" :class="$style.flavor">{{ i18n.ts._achievements._types['_' + achievement.name].flavor }}</div>
+				<div :class="$style.description">{{ withDescription ? i18n.ts._achievements._types['_' + achievement.name].description : '???' }}</div>
+				<div v-if="i18n.ts._achievements._types['_' + achievement.name].flavor && withDescription" :class="$style.flavor">{{ i18n.ts._achievements._types['_' + achievement.name].flavor }}</div>
 			</div>
 		</div>
 		<template v-if="withLocked">
@@ -49,8 +49,10 @@ import { ACHIEVEMENT_TYPES, ACHIEVEMENT_BADGES, claimAchievement } from '@/scrip
 const props = withDefaults(defineProps<{
 	user: misskey.entities.User;
 	withLocked: boolean;
+	withDescription: boolean;
 }>(), {
 	withLocked: true,
+	withDescription: true,
 });
 
 let achievements = $ref();
diff --git a/packages/frontend/src/pages/user/achievements.vue b/packages/frontend/src/pages/user/achievements.vue
index eaea26db4a..615613b7fc 100644
--- a/packages/frontend/src/pages/user/achievements.vue
+++ b/packages/frontend/src/pages/user/achievements.vue
@@ -1,6 +1,6 @@
 <template>
 <MkSpacer :content-max="1200">
-	<MkAchievements :user="user" :with-locked="false"/>
+	<MkAchievements :user="user" :with-locked="false" :with-description="$i != null && (props.user.id === $i.id)"/>
 </MkSpacer>
 </template>
 

From 7b73dd2d62333725f3974e9ec041e936e37a19c9 Mon Sep 17 00:00:00 2001
From: syuilo <Syuilotan@yahoo.co.jp>
Date: Mon, 23 Jan 2023 20:07:48 +0900
Subject: [PATCH 7/9] =?UTF-8?q?enhance(server):=20onlyServer=20/=20onlyQue?=
 =?UTF-8?q?ue=20=E3=82=AA=E3=83=97=E3=82=B7=E3=83=A7=E3=83=B3=E3=82=92?=
 =?UTF-8?q?=E5=BE=A9=E6=B4=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 packages/backend/src/boot/common.ts | 35 +++++++++++++++++++++++++++++
 packages/backend/src/boot/master.ts | 33 ++++++++-------------------
 packages/backend/src/boot/worker.ts | 23 ++++++++-----------
 3 files changed, 53 insertions(+), 38 deletions(-)
 create mode 100644 packages/backend/src/boot/common.ts

diff --git a/packages/backend/src/boot/common.ts b/packages/backend/src/boot/common.ts
new file mode 100644
index 0000000000..04aa26e652
--- /dev/null
+++ b/packages/backend/src/boot/common.ts
@@ -0,0 +1,35 @@
+import { NestFactory } from '@nestjs/core';
+import { ChartManagementService } from '@/core/chart/ChartManagementService.js';
+import { QueueProcessorService } from '@/queue/QueueProcessorService.js';
+import { NestLogger } from '@/NestLogger.js';
+import { QueueProcessorModule } from '@/queue/QueueProcessorModule.js';
+import { JanitorService } from '@/daemons/JanitorService.js';
+import { QueueStatsService } from '@/daemons/QueueStatsService.js';
+import { ServerStatsService } from '@/daemons/ServerStatsService.js';
+import { ServerService } from '@/server/ServerService.js';
+import { MainModule } from '@/MainModule.js';
+
+export async function server() {
+	const app = await NestFactory.createApplicationContext(MainModule, {
+		logger: new NestLogger(),
+	});
+	app.enableShutdownHooks();
+
+	const serverService = app.get(ServerService);
+	serverService.launch();
+
+	app.get(ChartManagementService).start();
+	app.get(JanitorService).start();
+	app.get(QueueStatsService).start();
+	app.get(ServerStatsService).start();
+}
+
+export async function jobQueue() {
+	const jobQueue = await NestFactory.createApplicationContext(QueueProcessorModule, {
+		logger: new NestLogger(),
+	});
+	jobQueue.enableShutdownHooks();
+
+	jobQueue.get(QueueProcessorService).start();
+	jobQueue.get(ChartManagementService).start();
+}
diff --git a/packages/backend/src/boot/master.ts b/packages/backend/src/boot/master.ts
index 93cb3131ba..f5d936fadf 100644
--- a/packages/backend/src/boot/master.ts
+++ b/packages/backend/src/boot/master.ts
@@ -6,21 +6,12 @@ import cluster from 'node:cluster';
 import chalk from 'chalk';
 import chalkTemplate from 'chalk-template';
 import semver from 'semver';
-import { NestFactory } from '@nestjs/core';
 import Logger from '@/logger.js';
 import { loadConfig } from '@/config.js';
 import type { Config } from '@/config.js';
-import { lessThan } from '@/misc/prelude/array.js';
 import { showMachineInfo } from '@/misc/show-machine-info.js';
-import { DaemonModule } from '@/daemons/DaemonModule.js';
-import { JanitorService } from '@/daemons/JanitorService.js';
-import { QueueStatsService } from '@/daemons/QueueStatsService.js';
-import { ServerStatsService } from '@/daemons/ServerStatsService.js';
-import { NestLogger } from '@/NestLogger.js';
-import { ChartManagementService } from '@/core/chart/ChartManagementService.js';
-import { ServerService } from '@/server/ServerService.js';
-import { MainModule } from '@/MainModule.js';
-import { envOption } from '../env.js';
+import { envOption } from '@/env.js';
+import { jobQueue, server } from './common.js';
 
 const _filename = fileURLToPath(import.meta.url);
 const _dirname = dirname(_filename);
@@ -73,14 +64,13 @@ export async function masterMain() {
 		process.exit(1);
 	}
 
-	const app = await NestFactory.createApplicationContext(MainModule, {
-		logger: new NestLogger(),
-	});
-	app.enableShutdownHooks();
-
-	// start server
-	const serverService = app.get(ServerService);
-	serverService.launch();
+	if (envOption.onlyServer) {
+		await server();
+	} else if (envOption.onlyQueue) {
+		await jobQueue();
+	} else {
+		await server();
+	}
 
 	bootLogger.succ('Misskey initialized');
 
@@ -89,11 +79,6 @@ export async function masterMain() {
 	}
 
 	bootLogger.succ(`Now listening on port ${config.port} on ${config.url}`, null, true);
-
-	app.get(ChartManagementService).start();
-	app.get(JanitorService).start();
-	app.get(QueueStatsService).start();
-	app.get(ServerStatsService).start();
 }
 
 function showEnvironment(): void {
diff --git a/packages/backend/src/boot/worker.ts b/packages/backend/src/boot/worker.ts
index e0574643b7..ab75aaa572 100644
--- a/packages/backend/src/boot/worker.ts
+++ b/packages/backend/src/boot/worker.ts
@@ -1,23 +1,18 @@
 import cluster from 'node:cluster';
-import { NestFactory } from '@nestjs/core';
-import { ChartManagementService } from '@/core/chart/ChartManagementService.js';
-import { QueueProcessorService } from '@/queue/QueueProcessorService.js';
-import { NestLogger } from '@/NestLogger.js';
-import { QueueProcessorModule } from '@/queue/QueueProcessorModule.js';
+import { envOption } from '@/env.js';
+import { jobQueue, server } from './common.js';
 
 /**
  * Init worker process
  */
 export async function workerMain() {
-	const jobQueue = await NestFactory.createApplicationContext(QueueProcessorModule, {
-		logger: new NestLogger(),
-	});
-	jobQueue.enableShutdownHooks();
-
-	// start job queue
-	jobQueue.get(QueueProcessorService).start();
-
-	jobQueue.get(ChartManagementService).start();
+	if (envOption.onlyServer) {
+		await server();
+	} else if (envOption.onlyQueue) {
+		await jobQueue();
+	} else {
+		await jobQueue();
+	}
 
 	if (cluster.isWorker) {
 		// Send a 'ready' message to parent process

From 083fa53d9c901de91e1b312833f0fd96795baf4d Mon Sep 17 00:00:00 2001
From: syuilo <Syuilotan@yahoo.co.jp>
Date: Mon, 23 Jan 2023 20:13:18 +0900
Subject: [PATCH 8/9] update deps

---
 CHANGELOG.md                  |  4 ++++
 packages/backend/package.json |  8 +++----
 pnpm-lock.yaml                | 42 +++++++++++++++++------------------
 3 files changed, 29 insertions(+), 25 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 61f7367c4e..df0d05afee 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,10 @@ You should also include the user name that made the change.
 ## 13.x.x (unreleased)
 
 ### Improvements
+- onlyServer / onlyQueue オプションを復活
+- 他人の実績閲覧時は獲得条件を表示しないように
+- アニメーション減らすオプション有効時はリアクションのアニメーションを無効に
+- カスタム絵文字一覧のパフォーマンスを改善
 
 ### Bugfixes
 - Aiscript: button is not defined
diff --git a/packages/backend/package.json b/packages/backend/package.json
index be9012021f..565de4310d 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -23,9 +23,9 @@
 		"@tensorflow/tfjs-node": "4.1.0"
 	},
 	"dependencies": {
-		"@bull-board/api": "^4.10.2",
-		"@bull-board/fastify": "^4.10.2",
-		"@bull-board/ui": "^4.10.2",
+		"@bull-board/api": "^4.11.0",
+		"@bull-board/fastify": "^4.11.0",
+		"@bull-board/ui": "^4.11.0",
 		"@discordapp/twemoji": "14.0.2",
 		"@fastify/accepts": "4.1.0",
 		"@fastify/cookie": "^8.3.0",
@@ -120,7 +120,7 @@
 		"typeorm": "0.3.11",
 		"typescript": "4.9.4",
 		"ulid": "2.3.0",
-		"undici": "^5.15.1",
+		"undici": "^5.16.0",
 		"unzipper": "0.10.11",
 		"uuid": "9.0.0",
 		"vary": "1.1.2",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 13b709bb24..2551c4fd78 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -48,9 +48,9 @@ importers:
 
   packages/backend:
     specifiers:
-      '@bull-board/api': ^4.10.2
-      '@bull-board/fastify': ^4.10.2
-      '@bull-board/ui': ^4.10.2
+      '@bull-board/api': ^4.11.0
+      '@bull-board/fastify': ^4.11.0
+      '@bull-board/ui': ^4.11.0
       '@discordapp/twemoji': 14.0.2
       '@fastify/accepts': 4.1.0
       '@fastify/cookie': ^8.3.0
@@ -202,7 +202,7 @@ importers:
       typeorm: 0.3.11
       typescript: 4.9.4
       ulid: 2.3.0
-      undici: ^5.15.1
+      undici: ^5.16.0
       unzipper: 0.10.11
       uuid: 9.0.0
       vary: 1.1.2
@@ -211,9 +211,9 @@ importers:
       ws: 8.12.0
       xev: 3.0.2
     dependencies:
-      '@bull-board/api': 4.10.2
-      '@bull-board/fastify': 4.10.2
-      '@bull-board/ui': 4.10.2
+      '@bull-board/api': 4.11.0
+      '@bull-board/fastify': 4.11.0
+      '@bull-board/ui': 4.11.0
       '@discordapp/twemoji': 14.0.2
       '@fastify/accepts': 4.1.0
       '@fastify/cookie': 8.3.0
@@ -308,7 +308,7 @@ importers:
       typeorm: 0.3.11_ioredis@4.28.5+pg@8.8.0
       typescript: 4.9.4
       ulid: 2.3.0
-      undici: 5.15.1
+      undici: 5.16.0
       unzipper: 0.10.11
       uuid: 9.0.0
       vary: 1.1.2
@@ -915,17 +915,17 @@ packages:
     resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
     dev: true
 
-  /@bull-board/api/4.10.2:
-    resolution: {integrity: sha512-lRHo0A7hsz71aOx1ZN0SmLLWfSuvKdL6EZ4imlgo5SuXGozybvlRc5KPIJU2/E1w5meoUGi+nFezBwp1gT/SMw==}
+  /@bull-board/api/4.11.0:
+    resolution: {integrity: sha512-qFnG63s3BkaslsNnXYagEUcdeK9SijZTJ+I4vMU+OiZt9VlKh01X1KjNlqjF9guvWcjk+Rg8UOMm0fWwM6PK6g==}
     dependencies:
       redis-info: 3.1.0
     dev: false
 
-  /@bull-board/fastify/4.10.2:
-    resolution: {integrity: sha512-yp/TlfyfMBgR6vibyCUBOTKn2BFlBSLxkJxzlvIcMDs2Vl3PMXMs4YoCr2o3m+dXxSNzpTfomxAc5XQfJdp0VQ==}
+  /@bull-board/fastify/4.11.0:
+    resolution: {integrity: sha512-G4sAFVx5kGT5T/F2gL91RjZ2+YrMHNrLWoVo/QfHMcZe3RoOP4PpbOLgLC/O67KYn3JK6t8ysGyyP035OSJ2HA==}
     dependencies:
-      '@bull-board/api': 4.10.2
-      '@bull-board/ui': 4.10.2
+      '@bull-board/api': 4.11.0
+      '@bull-board/ui': 4.11.0
       '@fastify/static': 6.6.1
       '@fastify/view': 7.4.0
       ejs: 3.1.8
@@ -933,10 +933,10 @@ packages:
       - supports-color
     dev: false
 
-  /@bull-board/ui/4.10.2:
-    resolution: {integrity: sha512-vaHGojG5D3xjnaed3nwOaLy4Y06RgDJdYRaFR5E06SjZ0vOvjVYGD6s4cykK512Aw/ElFhKDPwzhf8BvpwAtDQ==}
+  /@bull-board/ui/4.11.0:
+    resolution: {integrity: sha512-/Yb7x/3tWxysA2jRDQ89xEPnscvfGQdf4MmDRzWH5lDkVmL8b1HvZAQxLrHcxwB6y16oorQTf/1KbRZl0rJDHg==}
     dependencies:
-      '@bull-board/api': 4.10.2
+      '@bull-board/api': 4.11.0
     dev: false
 
   /@chainsafe/is-ip/2.0.1:
@@ -1077,7 +1077,7 @@ packages:
     dependencies:
       ky: 0.30.0
       ky-universal: 0.10.1_ky@0.30.0
-      undici: 5.15.1
+      undici: 5.16.0
     transitivePeerDependencies:
       - web-streams-polyfill
     dev: false
@@ -1402,7 +1402,7 @@ packages:
       fastify-plugin: 4.5.0
       pump: 3.0.0
       tiny-lru: 10.0.1
-      undici: 5.15.1
+      undici: 5.16.0
     dev: false
 
   /@fastify/send/1.0.0:
@@ -13541,8 +13541,8 @@ packages:
       undertaker-registry: 1.0.1
     dev: false
 
-  /undici/5.15.1:
-    resolution: {integrity: sha512-XLk8g0WAngdvFqTI+VKfBtM4YWXgdxkf1WezC771Es0Dd+Pm1KmNx8t93WTC+Hh9tnghmVxkclU1HN+j+CvIUA==}
+  /undici/5.16.0:
+    resolution: {integrity: sha512-KWBOXNv6VX+oJQhchXieUznEmnJMqgXMbs0xxH2t8q/FUAWSJvOSr/rMaZKnX5RIVq7JDn0JbP4BOnKG2SGXLQ==}
     engines: {node: '>=12.18'}
     dependencies:
       busboy: 1.6.0

From e6eae558d3ad6d456e68864242beb123216331ec Mon Sep 17 00:00:00 2001
From: syuilo <Syuilotan@yahoo.co.jp>
Date: Mon, 23 Jan 2023 20:13:38 +0900
Subject: [PATCH 9/9] 13.2.0

---
 CHANGELOG.md | 2 +-
 package.json | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index df0d05afee..9fd48fcbdb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,7 +9,7 @@
 You should also include the user name that made the change.
 -->
 
-## 13.x.x (unreleased)
+## 13.2.0 (2021/01/23)
 
 ### Improvements
 - onlyServer / onlyQueue オプションを復活
diff --git a/package.json b/package.json
index be5b86669f..279d3949c7 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
 	"name": "misskey",
-	"version": "13.1.8",
+	"version": "13.2.0",
 	"codename": "nasubi",
 	"repository": {
 		"type": "git",