From b10074e939d22f7aae41137ddf6f0c8fd7bdd7b1 Mon Sep 17 00:00:00 2001
From: syuilo <4439005+syuilo@users.noreply.github.com>
Date: Wed, 17 Dec 2025 12:27:55 +0900
Subject: [PATCH 1/8] enhance(frontend): add deck tour
---
CHANGELOG.md | 1 +
locales/ja-JP.yml | 9 ++++++
packages/frontend/src/tips.ts | 1 +
packages/frontend/src/ui/deck.vue | 48 ++++++++++++++++++++++++-----
packages/i18n/src/autogen/locale.ts | 30 ++++++++++++++++++
5 files changed, 82 insertions(+), 7 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 17aff08eab..5800477c42 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@ v2025.12.0で行われた「configの`trustProxy`のデフォルト値を`false`
- 依存関係の更新
### Client
+- Enhance: デッキのUI説明を追加
- Fix: バージョン表記のないPlayが正しく動作しない問題を修正
バージョン表記のないものは v0.x 系として実行されます。v1.x 系で動作させたい場合は必ずバージョン表記を含めてください。
diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index 8e4a52b68d..643095bc52 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -2890,6 +2890,15 @@ _deck:
usedAsMinWidthWhenFlexible: "「幅を自動調整」が有効の場合、これが幅の最小値となります"
flexible: "幅を自動調整"
enableSyncBetweenDevicesForProfiles: "プロファイル情報のデバイス間同期を有効にする"
+ showHowToUse: "UIの説明を見る"
+
+ _howToUse:
+ addColumn_title: "カラム追加"
+ addColumn_description: "カラムの種類を選んで追加できます。"
+ settings_title: "UI設定"
+ settings_description: "デッキUIの詳細設定を行えます。"
+ switchProfile_title: "プロファイル切り替え"
+ switchProfile_description: "UIのレイアウトをプロファイルとして保存し、いつでも切り替えられるようにできます。"
_columns:
main: "メイン"
diff --git a/packages/frontend/src/tips.ts b/packages/frontend/src/tips.ts
index 8a58e2aa63..6ee7130ee9 100644
--- a/packages/frontend/src/tips.ts
+++ b/packages/frontend/src/tips.ts
@@ -12,6 +12,7 @@ export const TIPS = [
'clips',
'userLists',
'postForm',
+ 'deck',
'tl.home',
'tl.local',
'tl.social',
diff --git a/packages/frontend/src/ui/deck.vue b/packages/frontend/src/ui/deck.vue
index 0941c25467..1a2a1fd99a 100644
--- a/packages/frontend/src/ui/deck.vue
+++ b/packages/frontend/src/ui/deck.vue
@@ -38,36 +38,39 @@ SPDX-License-Identifier: AGPL-3.0-only
@headerWheel="onWheel"
/>
-
+
{{ i18n.ts._deck.introduction }}
{{ i18n.ts._deck.introduction2 }}
+
+
+
@@ -96,6 +99,7 @@ import { $i } from '@/i.js';
import { i18n } from '@/i18n.js';
import { deviceKind } from '@/utility/device-kind.js';
import { prefer } from '@/preferences.js';
+import { store } from '@/store.js';
import XMainColumn from '@/ui/deck/main-column.vue';
import XTlColumn from '@/ui/deck/tl-column.vue';
import XAntennaColumn from '@/ui/deck/antenna-column.vue';
@@ -107,10 +111,13 @@ import XMentionsColumn from '@/ui/deck/mentions-column.vue';
import XDirectColumn from '@/ui/deck/direct-column.vue';
import XRoleTimelineColumn from '@/ui/deck/role-timeline-column.vue';
import XChatColumn from '@/ui/deck/chat-column.vue';
+import MkInfo from '@/components/MkInfo.vue';
import { mainRouter } from '@/router.js';
import { columns, layout, columnTypes, switchProfileMenu, addColumn as addColumnToStore, deleteProfile as deleteProfile_ } from '@/deck.js';
import { shouldSuggestRestoreBackup } from '@/preferences/utility.js';
import { shouldSuggestReload } from '@/utility/reload-suggest.js';
+import { startTour } from '@/utility/tour.js';
+import { closeTip } from '@/tips.js';
const XStatusBars = defineAsyncComponent(() => import('@/ui/_common_/statusbars.vue'));
const XAnnouncements = defineAsyncComponent(() => import('@/ui/_common_/announcements.vue'));
@@ -163,6 +170,9 @@ function showSettings() {
}
const columnsEl = useTemplateRef('columnsEl');
+const addColumnButtonEl = useTemplateRef('addColumnButtonEl');
+const settingsButtonEl = useTemplateRef('settingsButtonEl');
+const swicthProfileButtonEl = useTemplateRef('swicthProfileButtonEl');
const addColumn = async (ev) => {
const { canceled, result: column } = await os.select({
@@ -218,6 +228,30 @@ async function deleteProfile() {
os.success();
}
+function showTour() {
+ if (addColumnButtonEl.value == null ||
+ settingsButtonEl.value == null ||
+ swicthProfileButtonEl.value == null) {
+ return;
+ }
+
+ startTour([{
+ element: addColumnButtonEl.value,
+ title: i18n.ts._deck._howToUse.addColumn_title,
+ description: i18n.ts._deck._howToUse.addColumn_description,
+ }, {
+ element: settingsButtonEl.value,
+ title: i18n.ts._deck._howToUse.settings_title,
+ description: i18n.ts._deck._howToUse.settings_description,
+ }, {
+ element: swicthProfileButtonEl.value,
+ title: i18n.ts._deck._howToUse.switchProfile_title,
+ description: i18n.ts._deck._howToUse.switchProfile_description,
+ }]).then(() => {
+ closeTip('deck');
+ });
+}
+
window.document.documentElement.style.overflowY = 'hidden';
window.document.documentElement.style.scrollBehavior = 'auto';
diff --git a/packages/i18n/src/autogen/locale.ts b/packages/i18n/src/autogen/locale.ts
index 8f94aab555..55833b0cfc 100644
--- a/packages/i18n/src/autogen/locale.ts
+++ b/packages/i18n/src/autogen/locale.ts
@@ -10936,6 +10936,36 @@ export interface Locale extends ILocale {
* プロファイル情報のデバイス間同期を有効にする
*/
"enableSyncBetweenDevicesForProfiles": string;
+ /**
+ * UIの説明を見る
+ */
+ "showHowToUse": string;
+ "_howToUse": {
+ /**
+ * カラム追加
+ */
+ "addColumn_title": string;
+ /**
+ * カラムの種類を選んで追加できます。
+ */
+ "addColumn_description": string;
+ /**
+ * UI設定
+ */
+ "settings_title": string;
+ /**
+ * デッキUIの詳細設定を行えます。
+ */
+ "settings_description": string;
+ /**
+ * プロファイル切り替え
+ */
+ "switchProfile_title": string;
+ /**
+ * UIのレイアウトをプロファイルとして保存し、いつでも切り替えられるようにできます。
+ */
+ "switchProfile_description": string;
+ };
"_columns": {
/**
* メイン
From 7ef0c96758974496fedf2ce66bab7257d359f7ff Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Wed, 17 Dec 2025 03:31:55 +0000
Subject: [PATCH 2/8] Bump version to 2025.12.2-beta.2
---
package.json | 2 +-
packages/misskey-js/package.json | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/package.json b/package.json
index 337a4223a2..42377ca622 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "misskey",
- "version": "2025.12.2-beta.1",
+ "version": "2025.12.2-beta.2",
"codename": "nasubi",
"repository": {
"type": "git",
diff --git a/packages/misskey-js/package.json b/packages/misskey-js/package.json
index 68609f15d8..cd3cfd11e5 100644
--- a/packages/misskey-js/package.json
+++ b/packages/misskey-js/package.json
@@ -1,7 +1,7 @@
{
"type": "module",
"name": "misskey-js",
- "version": "2025.12.2-beta.1",
+ "version": "2025.12.2-beta.2",
"description": "Misskey SDK for JavaScript",
"license": "MIT",
"main": "./built/index.js",
From 834e8b4c24c6a37901c3720da523513b68f93244 Mon Sep 17 00:00:00 2001
From: syuilo <4439005+syuilo@users.noreply.github.com>
Date: Thu, 18 Dec 2025 14:55:16 +0900
Subject: [PATCH 3/8] =?UTF-8?q?fix(frontend):=20=E3=83=87=E3=83=83?=
=?UTF-8?q?=E3=82=ADUI=E3=81=A7=E3=83=A1=E3=83=8B=E3=83=A5=E3=83=BC?=
=?UTF-8?q?=E4=BD=8D=E7=BD=AE=E3=82=92=E4=B8=8B=E3=81=AB=E3=81=97=E3=81=A6?=
=?UTF-8?q?=E3=81=84=E3=82=8B=E3=81=A8=E3=83=97=E3=83=AD=E3=83=95=E3=82=A1?=
=?UTF-8?q?=E3=82=A4=E3=83=AB=E5=89=8A=E9=99=A4=E3=83=9C=E3=82=BF=E3=83=B3?=
=?UTF-8?q?=E3=81=8C=E8=A1=A8=E7=A4=BA=E3=81=95=E3=82=8C=E3=81=AA=E3=81=84?=
=?UTF-8?q?=E3=81=AE=E3=82=92=E4=BF=AE=E6=AD=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
CHANGELOG.md | 1 +
packages/frontend/src/ui/deck.vue | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5800477c42..3c2a0bb8a2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,7 @@ v2025.12.0で行われた「configの`trustProxy`のデフォルト値を`false`
- Enhance: デッキのUI説明を追加
- Fix: バージョン表記のないPlayが正しく動作しない問題を修正
バージョン表記のないものは v0.x 系として実行されます。v1.x 系で動作させたい場合は必ずバージョン表記を含めてください。
+- Fix: デッキUIでメニュー位置を下にしているとプロファイル削除ボタンが表示されないのを修正
## 2025.12.1
diff --git a/packages/frontend/src/ui/deck.vue b/packages/frontend/src/ui/deck.vue
index 1a2a1fd99a..99c57d1f7a 100644
--- a/packages/frontend/src/ui/deck.vue
+++ b/packages/frontend/src/ui/deck.vue
@@ -379,7 +379,7 @@ window.document.documentElement.style.scrollBehavior = 'auto';
}
.bottomMenuButton {
- display: block;
+ display: inline-block;
height: 100%;
aspect-ratio: 1;
}
From f48af7f73b84c7108147e39e4338a8d776575fb1 Mon Sep 17 00:00:00 2001
From: syuilo <4439005+syuilo@users.noreply.github.com>
Date: Thu, 18 Dec 2025 14:55:19 +0900
Subject: [PATCH 4/8] =?UTF-8?q?=F0=9F=8E=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
packages/frontend/src/ui/deck.vue | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/packages/frontend/src/ui/deck.vue b/packages/frontend/src/ui/deck.vue
index 99c57d1f7a..484b7f277a 100644
--- a/packages/frontend/src/ui/deck.vue
+++ b/packages/frontend/src/ui/deck.vue
@@ -63,14 +63,14 @@ SPDX-License-Identifier: AGPL-3.0-only
From 46e6dd99d1759cf0eb3fa5f2bd5c04fe71ce8fa2 Mon Sep 17 00:00:00 2001
From: syuilo <4439005+syuilo@users.noreply.github.com>
Date: Thu, 18 Dec 2025 15:15:07 +0900
Subject: [PATCH 5/8] chore: remove beta label from some features
---
packages/frontend/src/pages/admin/performance.vue | 2 +-
packages/frontend/src/pages/settings/privacy.vue | 4 ++--
packages/frontend/src/pages/settings/profile.vue | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/packages/frontend/src/pages/admin/performance.vue b/packages/frontend/src/pages/admin/performance.vue
index c5f3c2d4f0..3ce8e05982 100644
--- a/packages/frontend/src/pages/admin/performance.vue
+++ b/packages/frontend/src/pages/admin/performance.vue
@@ -122,7 +122,7 @@ SPDX-License-Identifier: AGPL-3.0-only
- Misskey® Reactions Boost Technology™ (RBT){{ i18n.ts.beta }}
+ Misskey® Reactions Boost Technology™ (RBT)
Enabled
Disabled
diff --git a/packages/frontend/src/pages/settings/privacy.vue b/packages/frontend/src/pages/settings/privacy.vue
index c2e0b3fe41..edc71e5156 100644
--- a/packages/frontend/src/pages/settings/privacy.vue
+++ b/packages/frontend/src/pages/settings/privacy.vue
@@ -90,7 +90,7 @@ SPDX-License-Identifier: AGPL-3.0-only
- {{ i18n.ts.lockdown }}{{ i18n.ts.beta }}
+ {{ i18n.ts.lockdown }}
@@ -213,9 +213,9 @@ SPDX-License-Identifier: AGPL-3.0-only